OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 // Tears down callbacks and releases the encoder and decoder. | 152 // Tears down callbacks and releases the encoder and decoder. |
153 void Release(); | 153 void Release(); |
154 | 154 |
155 // Processes a single frame. The frames must be processed in order, and the | 155 // Processes a single frame. The frames must be processed in order, and the |
156 // VideoProcessor must be initialized first. | 156 // VideoProcessor must be initialized first. |
157 void ProcessFrame(int frame_number); | 157 void ProcessFrame(int frame_number); |
158 | 158 |
159 // Updates the encoder with target rates. Must be called at least once. | 159 // Updates the encoder with target rates. Must be called at least once. |
160 void SetRates(int bitrate_kbps, int framerate_fps); | 160 void SetRates(int bitrate_kbps, int framerate_fps); |
161 | 161 |
162 | |
163 // TODO(brandtr): Get rid of these functions by moving the corresponding QP | |
164 // fields to the Stats object. | |
165 int GetQpFromEncoder(int frame_number) const; | |
166 int GetQpFromBitstream(int frame_number) const; | |
167 | |
168 | |
169 // Return the number of dropped frames. | 162 // Return the number of dropped frames. |
170 int NumberDroppedFrames(); | 163 int NumberDroppedFrames(); |
171 | 164 |
172 // Return the number of spatial resizes. | 165 // Return the number of spatial resizes. |
173 int NumberSpatialResizes(); | 166 int NumberSpatialResizes(); |
174 | 167 |
175 private: | 168 private: |
176 // Container that holds per-frame information that needs to be stored between | 169 // Container that holds per-frame information that needs to be stored between |
177 // calls to Encode and Decode, as well as the corresponding callbacks. It is | 170 // calls to Encode and Decode, as well as the corresponding callbacks. It is |
178 // not directly used for statistics -- for that, test::FrameStatistic is used. | 171 // not directly used for statistics -- for that, test::FrameStatistic is used. |
179 // TODO(brandtr): Get rid of this struct and use the Stats class instead. | 172 // TODO(brandtr): Get rid of this struct and use the Stats class instead. |
180 struct FrameInfo { | 173 struct FrameInfo { |
181 int64_t encode_start_ns = 0; | 174 int64_t encode_start_ns = 0; |
182 int64_t decode_start_ns = 0; | 175 int64_t decode_start_ns = 0; |
183 int qp_encoder = 0; | |
184 int qp_bitstream = 0; | |
185 int decoded_width = 0; | 176 int decoded_width = 0; |
186 int decoded_height = 0; | 177 int decoded_height = 0; |
187 size_t manipulated_length = 0; | 178 size_t manipulated_length = 0; |
188 }; | 179 }; |
189 | 180 |
190 class VideoProcessorEncodeCompleteCallback | 181 class VideoProcessorEncodeCompleteCallback |
191 : public webrtc::EncodedImageCallback { | 182 : public webrtc::EncodedImageCallback { |
192 public: | 183 public: |
193 explicit VideoProcessorEncodeCompleteCallback( | 184 explicit VideoProcessorEncodeCompleteCallback( |
194 VideoProcessor* video_processor) | 185 VideoProcessor* video_processor) |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 | 329 |
339 rtc::SequencedTaskChecker sequence_checker_; | 330 rtc::SequencedTaskChecker sequence_checker_; |
340 | 331 |
341 RTC_DISALLOW_COPY_AND_ASSIGN(VideoProcessor); | 332 RTC_DISALLOW_COPY_AND_ASSIGN(VideoProcessor); |
342 }; | 333 }; |
343 | 334 |
344 } // namespace test | 335 } // namespace test |
345 } // namespace webrtc | 336 } // namespace webrtc |
346 | 337 |
347 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_ | 338 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_ |
OLD | NEW |