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

Unified Diff: webrtc/modules/video_coding/codecs/test/videoprocessor.cc

Issue 2709123004: Step #0: Minor cleanups in VideoProcessor. (Closed)
Patch Set: asapersson comments 1 Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/videoprocessor.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/video_coding/codecs/test/videoprocessor.cc
diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
index d6d2c0ca6368889c637aab9f917d3440ff0c04b4..9cda6922b4ba250eccf3dd8d0d67f18a1ced1a42 100644
--- a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
@@ -31,6 +31,19 @@ namespace test {
namespace {
const int k90khzTimestampFrameDiff = 3000; // Assuming 30 fps.
+
+std::unique_ptr<VideoBitrateAllocator> CreateBitrateAllocator(
+ const TestConfig& config) {
+ std::unique_ptr<TemporalLayersFactory> tl_factory;
+ if (config.codec_settings->codecType == VideoCodecType::kVideoCodecVP8) {
+ tl_factory.reset(new TemporalLayersFactory());
+ config.codec_settings->VP8()->tl_factory = tl_factory.get();
+ }
+ return std::unique_ptr<VideoBitrateAllocator>(
+ VideoCodecInitializer::CreateBitrateAllocator(*config.codec_settings,
+ std::move(tl_factory)));
+}
+
} // namespace
const char* ExcludeFrameTypesToStr(ExcludeFrameTypes e) {
@@ -74,11 +87,13 @@ VideoProcessorImpl::VideoProcessorImpl(webrtc::VideoEncoder* encoder,
FrameWriter* decoded_frame_writer)
: encoder_(encoder),
decoder_(decoder),
- analysis_frame_reader_(analysis_frame_reader),
- analysis_frame_writer_(analysis_frame_writer),
+ bitrate_allocator_(CreateBitrateAllocator(config)),
+ encode_callback_(new VideoProcessorEncodeCompleteCallback(this)),
+ decode_callback_(new VideoProcessorDecodeCompleteCallback(this)),
packet_manipulator_(packet_manipulator),
config_(config),
- stats_(stats),
+ analysis_frame_reader_(analysis_frame_reader),
+ analysis_frame_writer_(analysis_frame_writer),
source_frame_writer_(source_frame_writer),
encoded_frame_writer_(encoded_frame_writer),
decoded_frame_writer_(decoded_frame_writer),
@@ -88,25 +103,19 @@ VideoProcessorImpl::VideoProcessorImpl(webrtc::VideoEncoder* encoder,
encoded_frame_size_(0),
encoded_frame_type_(kVideoFrameKey),
prev_time_stamp_(0),
- num_dropped_frames_(0),
- num_spatial_resizes_(0),
last_encoder_frame_width_(0),
last_encoder_frame_height_(0),
+ stats_(stats),
+ num_dropped_frames_(0),
+ num_spatial_resizes_(0),
bit_rate_factor_(0.0),
encode_start_ns_(0),
decode_start_ns_(0) {
- std::unique_ptr<TemporalLayersFactory> tl_factory;
- if (config_.codec_settings->codecType == VideoCodecType::kVideoCodecVP8) {
- tl_factory.reset(new TemporalLayersFactory());
- config.codec_settings->VP8()->tl_factory = tl_factory.get();
- }
- bitrate_allocator_ = VideoCodecInitializer::CreateBitrateAllocator(
- *config.codec_settings, std::move(tl_factory));
RTC_DCHECK(encoder);
RTC_DCHECK(decoder);
+ RTC_DCHECK(packet_manipulator);
RTC_DCHECK(analysis_frame_reader);
RTC_DCHECK(analysis_frame_writer);
- RTC_DCHECK(packet_manipulator);
RTC_DCHECK(stats);
}
@@ -124,8 +133,6 @@ bool VideoProcessorImpl::Init() {
last_encoder_frame_height_ = config_.codec_settings->height;
// Setup required callbacks for the encoder/decoder.
- encode_callback_.reset(new VideoProcessorEncodeCompleteCallback(this));
- decode_callback_.reset(new VideoProcessorDecodeCompleteCallback(this));
RTC_CHECK_EQ(encoder_->RegisterEncodeCompleteCallback(encode_callback_.get()),
WEBRTC_VIDEO_CODEC_OK)
<< "Failed to register encode complete callback";
@@ -133,7 +140,7 @@ bool VideoProcessorImpl::Init() {
WEBRTC_VIDEO_CODEC_OK)
<< "Failed to register decode complete callback";
- // Init the encoder and decoder.
+ // Initialize the encoder and decoder.
uint32_t num_cores =
config_.use_single_core ? 1 : CpuInfo::DetectNumberOfCores();
RTC_CHECK_EQ(
@@ -322,8 +329,8 @@ void VideoProcessorImpl::FrameEncoded(
// Simulate packet loss.
bool exclude_this_frame = false;
- // Only keyframes can be excluded.
if (encoded_image._frameType == kVideoFrameKey) {
+ // Only keyframes can be excluded.
switch (config_.exclude_frame_types) {
case kExcludeOnlyFirstKeyFrame:
if (!first_key_frame_has_been_excluded_) {
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/videoprocessor.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698