OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ | 5 #ifndef CONTENT_COMMON_GPU_MEDIA_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ |
6 #define CONTENT_COMMON_GPU_MEDIA_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ | 6 #define CONTENT_COMMON_GPU_MEDIA_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <queue> | 9 #include <queue> |
10 #include <vector> | 10 #include <vector> |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 scoped_ptr<base::WeakPtrFactory<Client> > client_ptr_factory_; | 79 scoped_ptr<base::WeakPtrFactory<Client> > client_ptr_factory_; |
80 | 80 |
81 scoped_ptr<media::VideoCodecBridge> media_codec_; | 81 scoped_ptr<media::VideoCodecBridge> media_codec_; |
82 | 82 |
83 // Bitstream buffers waiting to be populated & returned to the client. | 83 // Bitstream buffers waiting to be populated & returned to the client. |
84 std::vector<media::BitstreamBuffer> available_bitstream_buffers_; | 84 std::vector<media::BitstreamBuffer> available_bitstream_buffers_; |
85 | 85 |
86 // Frames waiting to be passed to the codec, queued until an input buffer is | 86 // Frames waiting to be passed to the codec, queued until an input buffer is |
87 // available. Each element is a tuple of <Frame, key_frame, enqueue_time>. | 87 // available. Each element is a tuple of <Frame, key_frame, enqueue_time>. |
88 typedef std::queue< | 88 typedef std::queue< |
89 Tuple3<scoped_refptr<media::VideoFrame>, bool, base::Time> > | 89 Tuple<scoped_refptr<media::VideoFrame>, bool, base::Time>> |
90 PendingFrames; | 90 PendingFrames; |
91 PendingFrames pending_frames_; | 91 PendingFrames pending_frames_; |
92 | 92 |
93 // Repeating timer responsible for draining pending IO to the codec. | 93 // Repeating timer responsible for draining pending IO to the codec. |
94 base::RepeatingTimer<AndroidVideoEncodeAccelerator> io_timer_; | 94 base::RepeatingTimer<AndroidVideoEncodeAccelerator> io_timer_; |
95 | 95 |
96 // The difference between number of buffers queued & dequeued at the codec. | 96 // The difference between number of buffers queued & dequeued at the codec. |
97 int32 num_buffers_at_codec_; | 97 int32 num_buffers_at_codec_; |
98 | 98 |
99 // A monotonically-growing value, used as a fake timestamp just to keep things | 99 // A monotonically-growing value, used as a fake timestamp just to keep things |
100 // appearing to move forward. | 100 // appearing to move forward. |
101 base::TimeDelta fake_input_timestamp_; | 101 base::TimeDelta fake_input_timestamp_; |
102 | 102 |
103 // Number of requested output buffers and their capacity. | 103 // Number of requested output buffers and their capacity. |
104 int num_output_buffers_; // -1 until RequireBitstreamBuffers. | 104 int num_output_buffers_; // -1 until RequireBitstreamBuffers. |
105 size_t output_buffers_capacity_; // 0 until RequireBitstreamBuffers. | 105 size_t output_buffers_capacity_; // 0 until RequireBitstreamBuffers. |
106 | 106 |
107 uint32 last_set_bitrate_; // In bps. | 107 uint32 last_set_bitrate_; // In bps. |
108 | 108 |
109 DISALLOW_COPY_AND_ASSIGN(AndroidVideoEncodeAccelerator); | 109 DISALLOW_COPY_AND_ASSIGN(AndroidVideoEncodeAccelerator); |
110 }; | 110 }; |
111 | 111 |
112 } // namespace content | 112 } // namespace content |
113 | 113 |
114 #endif // CONTENT_COMMON_GPU_MEDIA_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ | 114 #endif // CONTENT_COMMON_GPU_MEDIA_ANDROID_VIDEO_ENCODE_ACCELERATOR_H_ |
OLD | NEW |