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_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <queue> | 9 #include <queue> |
10 | 10 |
(...skipping 12 matching lines...) Expand all Loading... |
23 // (http://www.freedesktop.org/wiki/Software/vaapi) for HW-accelerated | 23 // (http://www.freedesktop.org/wiki/Software/vaapi) for HW-accelerated |
24 // video encode. | 24 // video encode. |
25 class CONTENT_EXPORT VaapiVideoEncodeAccelerator | 25 class CONTENT_EXPORT VaapiVideoEncodeAccelerator |
26 : public media::VideoEncodeAccelerator { | 26 : public media::VideoEncodeAccelerator { |
27 public: | 27 public: |
28 explicit VaapiVideoEncodeAccelerator(Display* x_display); | 28 explicit VaapiVideoEncodeAccelerator(Display* x_display); |
29 virtual ~VaapiVideoEncodeAccelerator(); | 29 virtual ~VaapiVideoEncodeAccelerator(); |
30 | 30 |
31 // media::VideoEncodeAccelerator implementation. | 31 // media::VideoEncodeAccelerator implementation. |
32 virtual std::vector<media::VideoEncodeAccelerator::SupportedProfile> | 32 virtual std::vector<media::VideoEncodeAccelerator::SupportedProfile> |
33 GetSupportedProfiles() OVERRIDE; | 33 GetSupportedProfiles() override; |
34 virtual bool Initialize(media::VideoFrame::Format format, | 34 virtual bool Initialize(media::VideoFrame::Format format, |
35 const gfx::Size& input_visible_size, | 35 const gfx::Size& input_visible_size, |
36 media::VideoCodecProfile output_profile, | 36 media::VideoCodecProfile output_profile, |
37 uint32 initial_bitrate, | 37 uint32 initial_bitrate, |
38 Client* client) OVERRIDE; | 38 Client* client) override; |
39 virtual void Encode(const scoped_refptr<media::VideoFrame>& frame, | 39 virtual void Encode(const scoped_refptr<media::VideoFrame>& frame, |
40 bool force_keyframe) OVERRIDE; | 40 bool force_keyframe) override; |
41 virtual void UseOutputBitstreamBuffer( | 41 virtual void UseOutputBitstreamBuffer( |
42 const media::BitstreamBuffer& buffer) OVERRIDE; | 42 const media::BitstreamBuffer& buffer) override; |
43 virtual void RequestEncodingParametersChange(uint32 bitrate, | 43 virtual void RequestEncodingParametersChange(uint32 bitrate, |
44 uint32 framerate) OVERRIDE; | 44 uint32 framerate) override; |
45 virtual void Destroy() OVERRIDE; | 45 virtual void Destroy() override; |
46 | 46 |
47 private: | 47 private: |
48 // Reference picture list. | 48 // Reference picture list. |
49 typedef std::list<scoped_refptr<VASurface> > RefPicList; | 49 typedef std::list<scoped_refptr<VASurface> > RefPicList; |
50 | 50 |
51 // Encode job for one frame. Created when an input frame is awaiting and | 51 // Encode job for one frame. Created when an input frame is awaiting and |
52 // enough resources are available to proceed. Once the job is prepared and | 52 // enough resources are available to proceed. Once the job is prepared and |
53 // submitted to the hardware, it awaits on the submitted_encode_jobs_ queue | 53 // submitted to the hardware, it awaits on the submitted_encode_jobs_ queue |
54 // for an output bitstream buffer to become available. Once one is ready, | 54 // for an output bitstream buffer to become available. Once one is ready, |
55 // the encoded bytes are downloaded to it and job resources are released | 55 // the encoded bytes are downloaded to it and job resources are released |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 // thread (it's a member of this class). | 254 // thread (it's a member of this class). |
255 base::WeakPtr<VaapiVideoEncodeAccelerator> weak_this_; | 255 base::WeakPtr<VaapiVideoEncodeAccelerator> weak_this_; |
256 base::WeakPtrFactory<VaapiVideoEncodeAccelerator> weak_this_ptr_factory_; | 256 base::WeakPtrFactory<VaapiVideoEncodeAccelerator> weak_this_ptr_factory_; |
257 | 257 |
258 DISALLOW_COPY_AND_ASSIGN(VaapiVideoEncodeAccelerator); | 258 DISALLOW_COPY_AND_ASSIGN(VaapiVideoEncodeAccelerator); |
259 }; | 259 }; |
260 | 260 |
261 } // namespace content | 261 } // namespace content |
262 | 262 |
263 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ | 263 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_VIDEO_ENCODE_ACCELERATOR_H_ |
OLD | NEW |