Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(312)

Side by Side Diff: webrtc/modules/video_coding/codecs/test/videoprocessor.h

Issue 2741953002: Step #4: Run VideoProcessor integration test batch mode on task queue. (Closed)
Patch Set: Rebase. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 // packet loss in key non-first keyframes, which is why only the first is 125 // packet loss in key non-first keyframes, which is why only the first is
126 // excluded by default. 126 // excluded by default.
127 // Packet loss in such important frames is handled on a higher level in the 127 // Packet loss in such important frames is handled on a higher level in the
128 // Video Engine, where signaling would request a retransmit of the lost packets, 128 // Video Engine, where signaling would request a retransmit of the lost packets,
129 // since they're so important. 129 // since they're so important.
130 // 130 //
131 // Note this class is not thread safe in any way and is meant for simple testing 131 // Note this class is not thread safe in any way and is meant for simple testing
132 // purposes. 132 // purposes.
133 class VideoProcessor { 133 class VideoProcessor {
134 public: 134 public:
135 virtual ~VideoProcessor() {} 135 virtual ~VideoProcessor() = default;
136 136
137 // Performs initial calculations about frame size, sets up callbacks etc. 137 // Performs initial calculations about frame size, sets up callbacks etc.
138 // Returns false if an error has occurred, in addition to printing to stderr. 138 // Returns false if an error has occurred, in addition to printing to stderr.
139 virtual bool Init() = 0; 139 virtual bool Init() = 0;
140 140
141 virtual void DeregisterCallbacks() = 0;
142
141 // Processes a single frame. Returns true as long as there's more frames 143 // Processes a single frame. Returns true as long as there's more frames
142 // available in the source clip. 144 // available in the source clip.
143 // Frame number must be an integer >= 0. 145 // Frame number must be an integer >= 0.
144 virtual bool ProcessFrame(int frame_number) = 0; 146 virtual bool ProcessFrame(int frame_number) = 0;
145 147
146 // Updates the encoder with the target bit rate and the frame rate. 148 // Updates the encoder with the target bit rate and the frame rate.
147 virtual void SetRates(int bit_rate, int frame_rate) = 0; 149 virtual void SetRates(int bit_rate, int frame_rate) = 0;
148 150
149 // Return the size of the encoded frame in bytes. Dropped frames by the 151 // Return the size of the encoded frame in bytes. Dropped frames by the
150 // encoder are regarded as zero size. 152 // encoder are regarded as zero size.
(...skipping 14 matching lines...) Expand all
165 VideoProcessorImpl(webrtc::VideoEncoder* encoder, 167 VideoProcessorImpl(webrtc::VideoEncoder* encoder,
166 webrtc::VideoDecoder* decoder, 168 webrtc::VideoDecoder* decoder,
167 FrameReader* analysis_frame_reader, 169 FrameReader* analysis_frame_reader,
168 FrameWriter* analysis_frame_writer, 170 FrameWriter* analysis_frame_writer,
169 PacketManipulator* packet_manipulator, 171 PacketManipulator* packet_manipulator,
170 const TestConfig& config, 172 const TestConfig& config,
171 Stats* stats, 173 Stats* stats,
172 FrameWriter* source_frame_writer, 174 FrameWriter* source_frame_writer,
173 IvfFileWriter* encoded_frame_writer, 175 IvfFileWriter* encoded_frame_writer,
174 FrameWriter* decoded_frame_writer); 176 FrameWriter* decoded_frame_writer);
175 virtual ~VideoProcessorImpl(); 177 ~VideoProcessorImpl() override;
176 bool Init() override; 178 bool Init() override;
179 void DeregisterCallbacks() override;
177 bool ProcessFrame(int frame_number) override; 180 bool ProcessFrame(int frame_number) override;
178 181
179 private: 182 private:
180 // Container that holds per-frame information that needs to be stored between 183 // Container that holds per-frame information that needs to be stored between
181 // calls to Encode and Decode, as well as the corresponding callbacks. It is 184 // calls to Encode and Decode, as well as the corresponding callbacks. It is
182 // not directly used for statistics -- for that, test::FrameStatistic is used. 185 // not directly used for statistics -- for that, test::FrameStatistic is used.
183 struct FrameInfo { 186 struct FrameInfo {
184 FrameInfo() 187 FrameInfo()
185 : timestamp(0), 188 : timestamp(0),
186 encode_start_ns(0), 189 encode_start_ns(0),
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 Stats* stats_; 321 Stats* stats_;
319 int num_dropped_frames_; 322 int num_dropped_frames_;
320 int num_spatial_resizes_; 323 int num_spatial_resizes_;
321 double bit_rate_factor_; // Multiply frame length with this to get bit rate. 324 double bit_rate_factor_; // Multiply frame length with this to get bit rate.
322 }; 325 };
323 326
324 } // namespace test 327 } // namespace test
325 } // namespace webrtc 328 } // namespace webrtc
326 329
327 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_ 330 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698