diff options
author | Anton Fedchin <afedchin@ruswizards.com> | 2016-04-24 23:29:38 +0300 |
---|---|---|
committer | Anton Fedchin <afedchin@ruswizards.com> | 2016-04-24 23:29:38 +0300 |
commit | 49e0ddebe5945685929501c1740a5540fb64029b (patch) | |
tree | 177359818355c8aba6ec0714c9242d6e9e17d3d3 | |
parent | 39542765368b2f913f49d0a6e4fe91e159b2df74 (diff) |
[dxva] cosmetics.
-rw-r--r-- | xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.h | 73 |
2 files changed, 40 insertions, 35 deletions
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp index 2b959135f3..f8730c5abf 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.cpp @@ -671,7 +671,7 @@ bool CSurfaceContext::HasRefs() } //----------------------------------------------------------------------------- -// DXVA RednerPictures +// DXVA RenderPictures //----------------------------------------------------------------------------- CRenderPicture::CRenderPicture(CSurfaceContext *context) diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.h b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.h index 5cf14ae6e6..ab756f74c1 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.h +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DXVA.h @@ -72,6 +72,7 @@ public: CRenderPicture(CSurfaceContext *context); ~CRenderPicture(); ID3D11View* view; + protected: CSurfaceContext *surface_context; }; @@ -87,6 +88,7 @@ public: bool CreateDecoder(D3D11_VIDEO_DECODER_DESC *format, const D3D11_VIDEO_DECODER_CONFIG *config, ID3D11VideoDecoder **decoder, ID3D11VideoContext **context); void Release(CDecoder *decoder); ID3D11VideoContext* GetVideoContext() { return m_vcontext; } + private: CDXVAContext(); void Close(); @@ -94,8 +96,10 @@ private: void DestroyContext(); void QueryCaps(); bool IsValidDecoder(CDecoder *decoder); + static CDXVAContext *m_context; static CCriticalSection m_section; + ID3D11VideoContext* m_vcontext; ID3D11VideoDevice* m_service; int m_refCount; @@ -112,23 +116,26 @@ class CDecoder public: CDecoder(); ~CDecoder(); - virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces); - virtual int Decode (AVCodecContext* avctx, AVFrame* frame); - virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); - virtual int Check (AVCodecContext* avctx); - virtual void Close(); - virtual const std::string Name() { return "d3d11va"; } - virtual unsigned GetAllowedReferences(); - virtual long Release(); - bool OpenDecoder(); - int GetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); - void RelBuffer(uint8_t *data); + // IHardwareDecoder overrides + bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces) override; + int Decode(AVCodecContext* avctx, AVFrame* frame) override; + bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) override; + int Check(AVCodecContext* avctx) override; + const std::string Name() override { return "d3d11va"; } + unsigned GetAllowedReferences() override; - static bool Supports(enum AVPixelFormat fmt); + // IDVDResourceCounted overrides + long Release() override; + bool OpenDecoder(); + int GetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); + void RelBuffer(uint8_t *data); + void Close(); void CloseDXVADecoder(); + static bool Supports(enum AVPixelFormat fmt); + protected: enum EDeviceState { DXVA_OPEN @@ -136,28 +143,26 @@ protected: , DXVA_LOST } m_state; - virtual void OnCreateDevice() {} - virtual void OnDestroyDevice() { CSingleLock lock(m_section); m_state = DXVA_LOST; m_event.Reset(); } - virtual void OnLostDevice() { CSingleLock lock(m_section); m_state = DXVA_LOST; m_event.Reset(); } - virtual void OnResetDevice() { CSingleLock lock(m_section); m_state = DXVA_RESET; m_event.Set(); } - - ID3D11VideoDecoder* m_decoder; - ID3D11VideoContext* m_vcontext; - HANDLE m_device; - D3D11_VIDEO_DECODER_DESC m_format; - int m_refs; - CRenderPicture *m_presentPicture; - - struct AVD3D11VAContext* m_context; - - CSurfaceContext* m_surface_context; - CDXVAContext* m_dxva_context; - AVCodecContext* m_avctx; - - unsigned int m_shared; - unsigned int m_surface_alignment; - CCriticalSection m_section; - CEvent m_event; + // ID3DResource overrides + void OnCreateDevice() override {} + void OnDestroyDevice() override { CSingleLock lock(m_section); m_state = DXVA_LOST; m_event.Reset(); } + void OnLostDevice() override { CSingleLock lock(m_section); m_state = DXVA_LOST; m_event.Reset(); } + void OnResetDevice() override { CSingleLock lock(m_section); m_state = DXVA_RESET; m_event.Set(); } + + int m_refs; + HANDLE m_device; + ID3D11VideoDecoder *m_decoder; + ID3D11VideoContext *m_vcontext; + D3D11_VIDEO_DECODER_DESC m_format; + CRenderPicture *m_presentPicture; + struct AVD3D11VAContext *m_context; + CSurfaceContext *m_surface_context; + CDXVAContext *m_dxva_context; + AVCodecContext *m_avctx; + unsigned int m_shared; + unsigned int m_surface_alignment; + CCriticalSection m_section; + CEvent m_event; }; }; |