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,
kPayloadTypeVP8 = 123,
kPayloadTypeVP9 = 124,
kFakeVideoSendPayloadType = 125,
kPayloadTypeGeneric = 125,
kFakeVideoSendPayloadType = 126,
};
static const uint32_t kSendRtxSsrcs[kNumSsrcs];
static const uint32_t kVideoSendSsrcs[kNumSsrcs];

View File

@ -383,9 +383,12 @@ VideoQualityTest::VideoQualityTest(
payload_type_map_.end());
RTC_DCHECK(payload_type_map_.find(kPayloadTypeVP9) ==
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_[kPayloadTypeVP8] = webrtc::MediaType::VIDEO;
payload_type_map_[kPayloadTypeVP9] = webrtc::MediaType::VIDEO;
payload_type_map_[kPayloadTypeGeneric] = webrtc::MediaType::VIDEO;
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();
RTC_CHECK(num_video_streams_ > 0);
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) {
video_send_configs_.push_back(VideoSendStream::Config(send_transport));
video_encoder_configs_.push_back(VideoEncoderConfig());
@ -737,8 +741,13 @@ void VideoQualityTest::SetupVideo(Transport* send_transport,
} else if (params_.video[video_idx].codec == "FakeCodec") {
payload_type = kFakeVideoSendPayloadType;
} else {
RTC_NOTREACHED() << "Codec not supported!";
return;
RTC_CHECK(generic_codec_name.empty() ||
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_idx == 0) ? &video_encoder_factory_with_analyzer_