Add kPayloadTypeGeneric to CallTest and use it in VideoQualityTest.

- Add CallTest::kPayloadTypeGeneric
- Allow for unrecognized codec names in VideoQualityTest.
  Generic packetization is implicitly enabled for these codecs.

Tested: autoninja -C out/Debug && out/Debug/video_loopback
Bug: webrtc:10738
Change-Id: I57001be997db2f0eed9197eb40801b5ad936d222
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141864
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28270}
This commit is contained in:
Rasmus Brandt
2019-06-13 16:28:14 +02:00
committed by Commit Bot
parent 5740afa0a4
commit 5894b6aad4
2 changed files with 13 additions and 3 deletions

View File

@ -59,7 +59,8 @@ class CallTest : public ::testing::Test {
kPayloadTypeH264 = 122, kPayloadTypeH264 = 122,
kPayloadTypeVP8 = 123, kPayloadTypeVP8 = 123,
kPayloadTypeVP9 = 124, kPayloadTypeVP9 = 124,
kFakeVideoSendPayloadType = 125, kPayloadTypeGeneric = 125,
kFakeVideoSendPayloadType = 126,
}; };
static const uint32_t kSendRtxSsrcs[kNumSsrcs]; static const uint32_t kSendRtxSsrcs[kNumSsrcs];
static const uint32_t kVideoSendSsrcs[kNumSsrcs]; static const uint32_t kVideoSendSsrcs[kNumSsrcs];

View File

@ -383,9 +383,12 @@ VideoQualityTest::VideoQualityTest(
payload_type_map_.end()); payload_type_map_.end());
RTC_DCHECK(payload_type_map_.find(kPayloadTypeVP9) == RTC_DCHECK(payload_type_map_.find(kPayloadTypeVP9) ==
payload_type_map_.end()); payload_type_map_.end());
RTC_DCHECK(payload_type_map_.find(kPayloadTypeGeneric) ==
payload_type_map_.end());
payload_type_map_[kPayloadTypeH264] = webrtc::MediaType::VIDEO; payload_type_map_[kPayloadTypeH264] = webrtc::MediaType::VIDEO;
payload_type_map_[kPayloadTypeVP8] = webrtc::MediaType::VIDEO; payload_type_map_[kPayloadTypeVP8] = webrtc::MediaType::VIDEO;
payload_type_map_[kPayloadTypeVP9] = webrtc::MediaType::VIDEO; payload_type_map_[kPayloadTypeVP9] = webrtc::MediaType::VIDEO;
payload_type_map_[kPayloadTypeGeneric] = webrtc::MediaType::VIDEO;
fec_controller_factory_ = fec_controller_factory_ =
std::move(injection_components_->fec_controller_factory); std::move(injection_components_->fec_controller_factory);
@ -716,6 +719,7 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
size_t num_video_substreams = params_.ss[0].streams.size(); size_t num_video_substreams = params_.ss[0].streams.size();
RTC_CHECK(num_video_streams_ > 0); RTC_CHECK(num_video_streams_ > 0);
video_encoder_configs_.resize(num_video_streams_); video_encoder_configs_.resize(num_video_streams_);
std::string generic_codec_name;
for (size_t video_idx = 0; video_idx < num_video_streams_; ++video_idx) { for (size_t video_idx = 0; video_idx < num_video_streams_; ++video_idx) {
video_send_configs_.push_back(VideoSendStream::Config(send_transport)); video_send_configs_.push_back(VideoSendStream::Config(send_transport));
video_encoder_configs_.push_back(VideoEncoderConfig()); video_encoder_configs_.push_back(VideoEncoderConfig());
@ -737,8 +741,13 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
} else if (params_.video[video_idx].codec == "FakeCodec") { } else if (params_.video[video_idx].codec == "FakeCodec") {
payload_type = kFakeVideoSendPayloadType; payload_type = kFakeVideoSendPayloadType;
} else { } else {
RTC_NOTREACHED() << "Codec not supported!"; RTC_CHECK(generic_codec_name.empty() ||
return; generic_codec_name == params_.video[video_idx].codec)
<< "Supplying multiple generic codecs is unsupported.";
RTC_LOG(LS_INFO) << "Treating codec " << params_.video[video_idx].codec
<< " as generic.";
payload_type = kPayloadTypeGeneric;
generic_codec_name = params_.video[video_idx].codec;
} }
video_send_configs_[video_idx].encoder_settings.encoder_factory = video_send_configs_[video_idx].encoder_settings.encoder_factory =
(video_idx == 0) ? &video_encoder_factory_with_analyzer_ (video_idx == 0) ? &video_encoder_factory_with_analyzer_