Remove codec setting members in VideoProcessorIntegrationTest. Use settings in CodecConfigPars directly instead.
BUG=webrtc:6634 Review-Url: https://codereview.webrtc.org/2707763005 Cr-Commit-Position: refs/heads/master@{#16764}
This commit is contained in:
@ -144,31 +144,38 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
virtual ~VideoProcessorIntegrationTest() = default;
|
virtual ~VideoProcessorIntegrationTest() = default;
|
||||||
|
|
||||||
void SetUpCodecConfig(const CodecConfigPars& process) {
|
void SetUpCodecConfig(const CodecConfigPars& process) {
|
||||||
if (hw_codec_) {
|
if (process.hw_codec) {
|
||||||
#if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED)
|
#if defined(WEBRTC_VIDEOPROCESSOR_INTEGRATIONTEST_HW_CODECS_ENABLED)
|
||||||
#if defined(WEBRTC_ANDROID)
|
#if defined(WEBRTC_ANDROID)
|
||||||
// In general, external codecs should be destroyed by the factories that
|
// In general, external codecs should be destroyed by the factories that
|
||||||
// allocated them. For the particular case of the Android
|
// allocated them. For the particular case of the Android
|
||||||
// MediaCodecVideo{En,De}coderFactory's, however, it turns out that it is
|
// MediaCodecVideo{En,De}coderFactory's, however, it turns out that it is
|
||||||
// fine for the std::unique_ptr to destroy the owned codec directly.
|
// fine for the std::unique_ptr to destroy the owned codec directly.
|
||||||
if (codec_type_ == kVideoCodecH264) {
|
switch (process.codec_type) {
|
||||||
|
case kVideoCodecH264:
|
||||||
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
||||||
cricket::VideoCodec(cricket::kH264CodecName)));
|
cricket::VideoCodec(cricket::kH264CodecName)));
|
||||||
decoder_.reset(
|
decoder_.reset(
|
||||||
external_decoder_factory_->CreateVideoDecoder(kVideoCodecH264));
|
external_decoder_factory_->CreateVideoDecoder(kVideoCodecH264));
|
||||||
} else if (codec_type_ == kVideoCodecVP8) {
|
break;
|
||||||
|
case kVideoCodecVP8:
|
||||||
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
||||||
cricket::VideoCodec(cricket::kVp8CodecName)));
|
cricket::VideoCodec(cricket::kVp8CodecName)));
|
||||||
decoder_.reset(
|
decoder_.reset(
|
||||||
external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP8));
|
external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP8));
|
||||||
} else if (codec_type_ == kVideoCodecVP9) {
|
break;
|
||||||
|
case kVideoCodecVP9:
|
||||||
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
encoder_.reset(external_encoder_factory_->CreateVideoEncoder(
|
||||||
cricket::VideoCodec(cricket::kVp9CodecName)));
|
cricket::VideoCodec(cricket::kVp9CodecName)));
|
||||||
decoder_.reset(
|
decoder_.reset(
|
||||||
external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP9));
|
external_decoder_factory_->CreateVideoDecoder(kVideoCodecVP9));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RTC_NOTREACHED();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
#elif defined(WEBRTC_IOS)
|
#elif defined(WEBRTC_IOS)
|
||||||
RTC_DCHECK_EQ(kVideoCodecH264, codec_type_)
|
RTC_DCHECK_EQ(kVideoCodecH264, process.codec_type)
|
||||||
<< "iOS HW codecs only support H264.";
|
<< "iOS HW codecs only support H264.";
|
||||||
encoder_.reset(new H264VideoToolboxEncoder(
|
encoder_.reset(new H264VideoToolboxEncoder(
|
||||||
cricket::VideoCodec(cricket::kH264CodecName)));
|
cricket::VideoCodec(cricket::kH264CodecName)));
|
||||||
@ -181,20 +188,27 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
RTC_DCHECK(decoder_) << "HW decoder not successfully created.";
|
RTC_DCHECK(decoder_) << "HW decoder not successfully created.";
|
||||||
} else {
|
} else {
|
||||||
// SW codecs.
|
// SW codecs.
|
||||||
if (codec_type_ == kVideoCodecH264) {
|
switch (process.codec_type) {
|
||||||
encoder_.reset(
|
case kVideoCodecH264:
|
||||||
H264Encoder::Create(cricket::VideoCodec(cricket::kH264CodecName)));
|
encoder_.reset(H264Encoder::Create(
|
||||||
|
cricket::VideoCodec(cricket::kH264CodecName)));
|
||||||
decoder_.reset(H264Decoder::Create());
|
decoder_.reset(H264Decoder::Create());
|
||||||
} else if (codec_type_ == kVideoCodecVP8) {
|
break;
|
||||||
|
case kVideoCodecVP8:
|
||||||
encoder_.reset(VP8Encoder::Create());
|
encoder_.reset(VP8Encoder::Create());
|
||||||
decoder_.reset(VP8Decoder::Create());
|
decoder_.reset(VP8Decoder::Create());
|
||||||
} else if (codec_type_ == kVideoCodecVP9) {
|
break;
|
||||||
|
case kVideoCodecVP9:
|
||||||
encoder_.reset(VP9Encoder::Create());
|
encoder_.reset(VP9Encoder::Create());
|
||||||
decoder_.reset(VP9Decoder::Create());
|
decoder_.reset(VP9Decoder::Create());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
RTC_NOTREACHED();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoCodingModule::Codec(codec_type_, &codec_settings_);
|
VideoCodingModule::Codec(process.codec_type, &codec_settings_);
|
||||||
|
|
||||||
// Configure input filename.
|
// Configure input filename.
|
||||||
config_.input_filename = test::ResourcePath(process.filename, "yuv");
|
config_.input_filename = test::ResourcePath(process.filename, "yuv");
|
||||||
@ -208,7 +222,7 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
config_.verbose = process.verbose_logging;
|
config_.verbose = process.verbose_logging;
|
||||||
config_.use_single_core = process.use_single_core;
|
config_.use_single_core = process.use_single_core;
|
||||||
// Key frame interval and packet loss are set for each test.
|
// Key frame interval and packet loss are set for each test.
|
||||||
config_.keyframe_interval = key_frame_interval_;
|
config_.keyframe_interval = process.key_frame_interval;
|
||||||
config_.networking_config.packet_loss_probability = packet_loss_;
|
config_.networking_config.packet_loss_probability = packet_loss_;
|
||||||
|
|
||||||
// Configure codec settings.
|
// Configure codec settings.
|
||||||
@ -220,26 +234,31 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
// These features may be set depending on the test.
|
// These features may be set depending on the test.
|
||||||
switch (config_.codec_settings->codecType) {
|
switch (config_.codec_settings->codecType) {
|
||||||
case kVideoCodecH264:
|
case kVideoCodecH264:
|
||||||
config_.codec_settings->H264()->frameDroppingOn = frame_dropper_on_;
|
config_.codec_settings->H264()->frameDroppingOn =
|
||||||
|
process.frame_dropper_on;
|
||||||
config_.codec_settings->H264()->keyFrameInterval =
|
config_.codec_settings->H264()->keyFrameInterval =
|
||||||
kBaseKeyFrameInterval;
|
kBaseKeyFrameInterval;
|
||||||
break;
|
break;
|
||||||
case kVideoCodecVP8:
|
case kVideoCodecVP8:
|
||||||
config_.codec_settings->VP8()->errorConcealmentOn =
|
config_.codec_settings->VP8()->errorConcealmentOn =
|
||||||
error_concealment_on_;
|
process.error_concealment_on;
|
||||||
config_.codec_settings->VP8()->denoisingOn = denoising_on_;
|
config_.codec_settings->VP8()->denoisingOn = process.denoising_on;
|
||||||
config_.codec_settings->VP8()->numberOfTemporalLayers =
|
config_.codec_settings->VP8()->numberOfTemporalLayers =
|
||||||
num_temporal_layers_;
|
num_temporal_layers_;
|
||||||
config_.codec_settings->VP8()->frameDroppingOn = frame_dropper_on_;
|
config_.codec_settings->VP8()->frameDroppingOn =
|
||||||
config_.codec_settings->VP8()->automaticResizeOn = spatial_resize_on_;
|
process.frame_dropper_on;
|
||||||
|
config_.codec_settings->VP8()->automaticResizeOn =
|
||||||
|
process.spatial_resize_on;
|
||||||
config_.codec_settings->VP8()->keyFrameInterval = kBaseKeyFrameInterval;
|
config_.codec_settings->VP8()->keyFrameInterval = kBaseKeyFrameInterval;
|
||||||
break;
|
break;
|
||||||
case kVideoCodecVP9:
|
case kVideoCodecVP9:
|
||||||
config_.codec_settings->VP9()->denoisingOn = denoising_on_;
|
config_.codec_settings->VP9()->denoisingOn = process.denoising_on;
|
||||||
config_.codec_settings->VP9()->numberOfTemporalLayers =
|
config_.codec_settings->VP9()->numberOfTemporalLayers =
|
||||||
num_temporal_layers_;
|
num_temporal_layers_;
|
||||||
config_.codec_settings->VP9()->frameDroppingOn = frame_dropper_on_;
|
config_.codec_settings->VP9()->frameDroppingOn =
|
||||||
config_.codec_settings->VP9()->automaticResizeOn = spatial_resize_on_;
|
process.frame_dropper_on;
|
||||||
|
config_.codec_settings->VP9()->automaticResizeOn =
|
||||||
|
process.spatial_resize_on;
|
||||||
config_.codec_settings->VP9()->keyFrameInterval = kBaseKeyFrameInterval;
|
config_.codec_settings->VP9()->keyFrameInterval = kBaseKeyFrameInterval;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -446,16 +465,9 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
CodecConfigPars process,
|
CodecConfigPars process,
|
||||||
RateControlMetrics* rc_metrics) {
|
RateControlMetrics* rc_metrics) {
|
||||||
// Codec/config settings.
|
// Codec/config settings.
|
||||||
codec_type_ = process.codec_type;
|
|
||||||
hw_codec_ = process.hw_codec;
|
|
||||||
start_bitrate_ = rate_profile.target_bit_rate[0];
|
start_bitrate_ = rate_profile.target_bit_rate[0];
|
||||||
packet_loss_ = process.packet_loss;
|
packet_loss_ = process.packet_loss;
|
||||||
key_frame_interval_ = process.key_frame_interval;
|
|
||||||
num_temporal_layers_ = process.num_temporal_layers;
|
num_temporal_layers_ = process.num_temporal_layers;
|
||||||
error_concealment_on_ = process.error_concealment_on;
|
|
||||||
denoising_on_ = process.denoising_on;
|
|
||||||
frame_dropper_on_ = process.frame_dropper_on;
|
|
||||||
spatial_resize_on_ = process.spatial_resize_on;
|
|
||||||
SetUpCodecConfig(process);
|
SetUpCodecConfig(process);
|
||||||
// Update the layers and the codec with the initial rates.
|
// Update the layers and the codec with the initial rates.
|
||||||
bit_rate_ = rate_profile.target_bit_rate[0];
|
bit_rate_ = rate_profile.target_bit_rate[0];
|
||||||
@ -678,15 +690,8 @@ class VideoProcessorIntegrationTest : public testing::Test {
|
|||||||
float start_bitrate_;
|
float start_bitrate_;
|
||||||
|
|
||||||
// Codec and network settings.
|
// Codec and network settings.
|
||||||
VideoCodecType codec_type_;
|
|
||||||
bool hw_codec_;
|
|
||||||
float packet_loss_;
|
float packet_loss_;
|
||||||
int num_temporal_layers_;
|
int num_temporal_layers_;
|
||||||
int key_frame_interval_;
|
|
||||||
bool error_concealment_on_;
|
|
||||||
bool denoising_on_;
|
|
||||||
bool frame_dropper_on_;
|
|
||||||
bool spatial_resize_on_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace test
|
} // namespace test
|
||||||
|
Reference in New Issue
Block a user