OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_VT_VIDEO_DECODE_ACCELERATOR_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_VT_VIDEO_DECODE_ACCELERATOR_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_VT_VIDEO_DECODE_ACCELERATOR_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_VT_VIDEO_DECODE_ACCELERATOR_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 namespace content { | 28 namespace content { |
29 | 29 |
30 // VideoToolbox.framework implementation of the VideoDecodeAccelerator | 30 // VideoToolbox.framework implementation of the VideoDecodeAccelerator |
31 // interface for Mac OS X (currently limited to 10.9+). | 31 // interface for Mac OS X (currently limited to 10.9+). |
32 class VTVideoDecodeAccelerator | 32 class VTVideoDecodeAccelerator |
33 : public media::VideoDecodeAccelerator, | 33 : public media::VideoDecodeAccelerator, |
34 public base::NonThreadSafe { | 34 public base::NonThreadSafe { |
35 public: | 35 public: |
36 explicit VTVideoDecodeAccelerator(CGLContextObj cgl_context); | 36 explicit VTVideoDecodeAccelerator(CGLContextObj cgl_context); |
37 virtual ~VTVideoDecodeAccelerator(); | 37 ~VTVideoDecodeAccelerator() override; |
38 | 38 |
39 // VideoDecodeAccelerator implementation. | 39 // VideoDecodeAccelerator implementation. |
40 virtual bool Initialize( | 40 bool Initialize(media::VideoCodecProfile profile, Client* client) override; |
41 media::VideoCodecProfile profile, | 41 void Decode(const media::BitstreamBuffer& bitstream) override; |
42 Client* client) override; | 42 void AssignPictureBuffers( |
43 virtual void Decode(const media::BitstreamBuffer& bitstream) override; | |
44 virtual void AssignPictureBuffers( | |
45 const std::vector<media::PictureBuffer>& pictures) override; | 43 const std::vector<media::PictureBuffer>& pictures) override; |
46 virtual void ReusePictureBuffer(int32_t picture_id) override; | 44 void ReusePictureBuffer(int32_t picture_id) override; |
47 virtual void Flush() override; | 45 void Flush() override; |
48 virtual void Reset() override; | 46 void Reset() override; |
49 virtual void Destroy() override; | 47 void Destroy() override; |
50 virtual bool CanDecodeOnIOThread() override; | 48 bool CanDecodeOnIOThread() override; |
51 | 49 |
52 // Called by OutputThunk() when VideoToolbox finishes decoding a frame. | 50 // Called by OutputThunk() when VideoToolbox finishes decoding a frame. |
53 void Output( | 51 void Output( |
54 int32_t bitstream_id, | 52 int32_t bitstream_id, |
55 OSStatus status, | 53 OSStatus status, |
56 CVImageBufferRef image_buffer); | 54 CVImageBufferRef image_buffer); |
57 | 55 |
58 private: | 56 private: |
59 struct DecodedFrame { | 57 struct DecodedFrame { |
60 DecodedFrame(int32_t bitstream_id, CVImageBufferRef image_buffer); | 58 DecodedFrame(int32_t bitstream_id, CVImageBufferRef image_buffer); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 // Declared last to ensure that all decoder thread tasks complete before any | 158 // Declared last to ensure that all decoder thread tasks complete before any |
161 // state is destructed. | 159 // state is destructed. |
162 base::Thread decoder_thread_; | 160 base::Thread decoder_thread_; |
163 | 161 |
164 DISALLOW_COPY_AND_ASSIGN(VTVideoDecodeAccelerator); | 162 DISALLOW_COPY_AND_ASSIGN(VTVideoDecodeAccelerator); |
165 }; | 163 }; |
166 | 164 |
167 } // namespace content | 165 } // namespace content |
168 | 166 |
169 #endif // CONTENT_COMMON_GPU_MEDIA_VT_VIDEO_DECODE_ACCELERATOR_H_ | 167 #endif // CONTENT_COMMON_GPU_MEDIA_VT_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |