OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ |
7 | 7 |
8 #include <d3d9.h> | 8 #include <d3d9.h> |
9 // Work around bug in this header by disabling the relevant warning for it. | 9 // Work around bug in this header by disabling the relevant warning for it. |
10 // https://connect.microsoft.com/VisualStudio/feedback/details/911260/dxva2api-h
-in-win8-sdk-triggers-c4201-with-w4 | 10 // https://connect.microsoft.com/VisualStudio/feedback/details/911260/dxva2api-h
-in-win8-sdk-triggers-c4201-with-w4 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 kUninitialized, // un-initialized. | 43 kUninitialized, // un-initialized. |
44 kNormal, // normal playing state. | 44 kNormal, // normal playing state. |
45 kResetting, // upon received Reset(), before ResetDone() | 45 kResetting, // upon received Reset(), before ResetDone() |
46 kStopped, // upon output EOS received. | 46 kStopped, // upon output EOS received. |
47 kFlushing, // upon flush request received. | 47 kFlushing, // upon flush request received. |
48 }; | 48 }; |
49 | 49 |
50 // Does not take ownership of |client| which must outlive |*this|. | 50 // Does not take ownership of |client| which must outlive |*this|. |
51 explicit DXVAVideoDecodeAccelerator( | 51 explicit DXVAVideoDecodeAccelerator( |
52 const base::Callback<bool(void)>& make_context_current); | 52 const base::Callback<bool(void)>& make_context_current); |
53 virtual ~DXVAVideoDecodeAccelerator(); | 53 ~DXVAVideoDecodeAccelerator() override; |
54 | 54 |
55 // media::VideoDecodeAccelerator implementation. | 55 // media::VideoDecodeAccelerator implementation. |
56 virtual bool Initialize(media::VideoCodecProfile profile, | 56 bool Initialize(media::VideoCodecProfile profile, |
57 Client* client) override; | 57 Client* client) override; |
58 virtual void Decode(const media::BitstreamBuffer& bitstream_buffer) override; | 58 void Decode(const media::BitstreamBuffer& bitstream_buffer) override; |
59 virtual void AssignPictureBuffers( | 59 void AssignPictureBuffers( |
60 const std::vector<media::PictureBuffer>& buffers) override; | 60 const std::vector<media::PictureBuffer>& buffers) override; |
61 virtual void ReusePictureBuffer(int32 picture_buffer_id) override; | 61 void ReusePictureBuffer(int32 picture_buffer_id) override; |
62 virtual void Flush() override; | 62 void Flush() override; |
63 virtual void Reset() override; | 63 void Reset() override; |
64 virtual void Destroy() override; | 64 void Destroy() override; |
65 virtual bool CanDecodeOnIOThread() override; | 65 bool CanDecodeOnIOThread() override; |
66 GLenum GetSurfaceInternalFormat() const override; | 66 GLenum GetSurfaceInternalFormat() const override; |
67 | 67 |
68 private: | 68 private: |
69 typedef void* EGLConfig; | 69 typedef void* EGLConfig; |
70 typedef void* EGLSurface; | 70 typedef void* EGLSurface; |
71 | 71 |
72 // Creates and initializes an instance of the D3D device and the | 72 // Creates and initializes an instance of the D3D device and the |
73 // corresponding device manager. The device manager instance is eventually | 73 // corresponding device manager. The device manager instance is eventually |
74 // passed to the IMFTransform interface implemented by the decoder. | 74 // passed to the IMFTransform interface implemented by the decoder. |
75 bool CreateD3DDevManager(); | 75 bool CreateD3DDevManager(); |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 const base::WeakPtr<DXVAVideoDecodeAccelerator> weak_ptr_; | 303 const base::WeakPtr<DXVAVideoDecodeAccelerator> weak_ptr_; |
304 | 304 |
305 // Set to true if we are in the context of a Flush operation. Used to prevent | 305 // Set to true if we are in the context of a Flush operation. Used to prevent |
306 // multiple flush done notifications being sent out. | 306 // multiple flush done notifications being sent out. |
307 bool pending_flush_; | 307 bool pending_flush_; |
308 }; | 308 }; |
309 | 309 |
310 } // namespace content | 310 } // namespace content |
311 | 311 |
312 #endif // CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ | 312 #endif // CONTENT_COMMON_GPU_MEDIA_DXVA_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |