Introduce "well-known" SdpVideoFormat codecs
describing video codecs with their parameters as static members of SdpVideoFormat:
static const SdpVideoFormat VP8();
static const SdpVideoFormat H264();
static const SdpVideoFormat VP9Profile0();
static const SdpVideoFormat VP9Profile1();
static const SdpVideoFormat VP9Profile2();
static const SdpVideoFormat VP9Profile3();
static const SdpVideoFormat AV1Profile0();
static const SdpVideoFormat AV1Profile1();
This removes the need to craft instances of these by hand.
BUG=webrtc:15703
Change-Id: I2171e08b48ec98f18424f53f3b5d6d148130532e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337441
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41833}
diff --git a/api/video_codecs/sdp_video_format.cc b/api/video_codecs/sdp_video_format.cc
index 08dfed4..7921064 100644
--- a/api/video_codecs/sdp_video_format.cc
+++ b/api/video_codecs/sdp_video_format.cc
@@ -192,6 +192,60 @@
a.scalability_modes == b.scalability_modes;
}
+const SdpVideoFormat SdpVideoFormat::VP8() {
+ return SdpVideoFormat(cricket::kVp8CodecName, {});
+}
+
+const SdpVideoFormat SdpVideoFormat::H264() {
+ // H264 will typically require more tweaking like setting
+ // * packetization-mode (which defaults to 0 but 1 is more common)
+ // * level-asymmetry-allowed (which defaults to 0 but 1 is more common)
+ // * profile-level-id of which there are many.
+ return SdpVideoFormat(cricket::kH264CodecName, {});
+}
+
+const SdpVideoFormat SdpVideoFormat::VP9Profile0() {
+ return SdpVideoFormat(
+ cricket::kVp9CodecName,
+ {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile0)}});
+}
+
+const SdpVideoFormat SdpVideoFormat::VP9Profile1() {
+ return SdpVideoFormat(
+ cricket::kVp9CodecName,
+ {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile1)}});
+}
+
+const SdpVideoFormat SdpVideoFormat::VP9Profile2() {
+ return SdpVideoFormat(
+ cricket::kVp9CodecName,
+ {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile2)}});
+}
+
+const SdpVideoFormat SdpVideoFormat::VP9Profile3() {
+ return SdpVideoFormat(
+ cricket::kVp9CodecName,
+ {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile3)}});
+}
+
+const SdpVideoFormat SdpVideoFormat::AV1Profile0() {
+ // https://aomediacodec.github.io/av1-rtp-spec/#72-sdp-parameters
+ return SdpVideoFormat(cricket::kAv1CodecName,
+ {{cricket::kAv1FmtpProfile,
+ AV1ProfileToString(AV1Profile::kProfile0).data()},
+ {cricket::kAv1FmtpLevelIdx, "5"},
+ {cricket::kAv1FmtpTier, "0"}});
+}
+
+const SdpVideoFormat SdpVideoFormat::AV1Profile1() {
+ // https://aomediacodec.github.io/av1-rtp-spec/#72-sdp-parameters
+ return SdpVideoFormat(cricket::kAv1CodecName,
+ {{cricket::kAv1FmtpProfile,
+ AV1ProfileToString(AV1Profile::kProfile1).data()},
+ {cricket::kAv1FmtpLevelIdx, "5"},
+ {cricket::kAv1FmtpTier, "0"}});
+}
+
absl::optional<SdpVideoFormat> FuzzyMatchSdpVideoFormat(
rtc::ArrayView<const SdpVideoFormat> supported_formats,
const SdpVideoFormat& format) {
diff --git a/api/video_codecs/sdp_video_format.h b/api/video_codecs/sdp_video_format.h
index af9537b..b8c997e 100644
--- a/api/video_codecs/sdp_video_format.h
+++ b/api/video_codecs/sdp_video_format.h
@@ -62,6 +62,16 @@
std::string name;
CodecParameterMap parameters;
absl::InlinedVector<ScalabilityMode, kScalabilityModeCount> scalability_modes;
+
+ // Well-known video codecs and their format parameters.
+ static const SdpVideoFormat VP8();
+ static const SdpVideoFormat H264();
+ static const SdpVideoFormat VP9Profile0();
+ static const SdpVideoFormat VP9Profile1();
+ static const SdpVideoFormat VP9Profile2();
+ static const SdpVideoFormat VP9Profile3();
+ static const SdpVideoFormat AV1Profile0();
+ static const SdpVideoFormat AV1Profile1();
};
// For not so good reasons sometimes additional parameters are added to an
diff --git a/api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h b/api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h
index 2f4beda..a86a458 100644
--- a/api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h
+++ b/api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h
@@ -21,7 +21,7 @@
namespace webrtc {
struct LibvpxVp8DecoderTemplateAdapter {
static std::vector<SdpVideoFormat> SupportedFormats() {
- return {SdpVideoFormat("VP8")};
+ return {SdpVideoFormat::VP8()};
}
static std::unique_ptr<VideoDecoder> CreateDecoder(
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index e3939e1..4768960 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -1188,7 +1188,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestEncodeFramerate(&encoder_factory, "VP8",
@@ -1200,7 +1200,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestEncodeFramerate(&encoder_factory, "VP8",
diff --git a/media/engine/internal_decoder_factory.cc b/media/engine/internal_decoder_factory.cc
index d79cbf2..33fed92 100644
--- a/media/engine/internal_decoder_factory.cc
+++ b/media/engine/internal_decoder_factory.cc
@@ -44,18 +44,15 @@
std::vector<SdpVideoFormat> InternalDecoderFactory::GetSupportedFormats()
const {
std::vector<SdpVideoFormat> formats;
- formats.push_back(SdpVideoFormat(cricket::kVp8CodecName));
+ formats.push_back(SdpVideoFormat::VP8());
for (const SdpVideoFormat& format : SupportedVP9DecoderCodecs())
formats.push_back(format);
for (const SdpVideoFormat& h264_format : SupportedH264DecoderCodecs())
formats.push_back(h264_format);
if (kDav1dIsIncluded) {
- formats.push_back(SdpVideoFormat(cricket::kAv1CodecName));
- formats.push_back(
- SdpVideoFormat(cricket::kAv1CodecName,
- {{cricket::kAv1FmtpProfile,
- AV1ProfileToString(AV1Profile::kProfile1).data()}}));
+ formats.push_back(SdpVideoFormat::AV1Profile0());
+ formats.push_back(SdpVideoFormat::AV1Profile1());
}
return formats;
diff --git a/media/engine/internal_decoder_factory_unittest.cc b/media/engine/internal_decoder_factory_unittest.cc
index 7debe73..2793367 100644
--- a/media/engine/internal_decoder_factory_unittest.cc
+++ b/media/engine/internal_decoder_factory_unittest.cc
@@ -61,27 +61,23 @@
const Environment env = CreateEnvironment();
InternalDecoderFactory factory;
std::unique_ptr<VideoDecoder> decoder =
- factory.Create(env, SdpVideoFormat(cricket::kVp8CodecName));
+ factory.Create(env, SdpVideoFormat::VP8());
EXPECT_TRUE(decoder);
}
TEST(InternalDecoderFactoryTest, Vp9Profile0) {
const Environment env = CreateEnvironment();
InternalDecoderFactory factory;
- std::unique_ptr<VideoDecoder> decoder = factory.Create(
- env, SdpVideoFormat(cricket::kVp9CodecName,
- {{kVP9FmtpProfileId,
- VP9ProfileToString(VP9Profile::kProfile0)}}));
+ std::unique_ptr<VideoDecoder> decoder =
+ factory.Create(env, SdpVideoFormat::VP9Profile0());
EXPECT_EQ(static_cast<bool>(decoder), kVp9Enabled);
}
TEST(InternalDecoderFactoryTest, Vp9Profile1) {
const Environment env = CreateEnvironment();
InternalDecoderFactory factory;
- std::unique_ptr<VideoDecoder> decoder = factory.Create(
- env, SdpVideoFormat(cricket::kVp9CodecName,
- {{kVP9FmtpProfileId,
- VP9ProfileToString(VP9Profile::kProfile1)}}));
+ std::unique_ptr<VideoDecoder> decoder =
+ factory.Create(env, SdpVideoFormat::VP9Profile1());
EXPECT_EQ(static_cast<bool>(decoder), kVp9Enabled);
}
@@ -89,7 +85,7 @@
const Environment env = CreateEnvironment();
InternalDecoderFactory factory;
std::unique_ptr<VideoDecoder> decoder =
- factory.Create(env, SdpVideoFormat(cricket::kH264CodecName));
+ factory.Create(env, SdpVideoFormat::H264());
EXPECT_EQ(static_cast<bool>(decoder), kH264Enabled);
}
@@ -99,7 +95,7 @@
if (kDav1dIsIncluded) {
EXPECT_THAT(factory.GetSupportedFormats(),
Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName)));
- EXPECT_TRUE(factory.Create(env, SdpVideoFormat(cricket::kAv1CodecName)));
+ EXPECT_TRUE(factory.Create(env, SdpVideoFormat::AV1Profile0()));
} else {
EXPECT_THAT(
factory.GetSupportedFormats(),
@@ -127,53 +123,51 @@
TEST(InternalDecoderFactoryTest, Av1Profile1_Dav1dDecoderTrialEnabled) {
const Environment env = CreateEnvironment();
InternalDecoderFactory factory;
- std::unique_ptr<VideoDecoder> decoder = factory.Create(
- env,
- SdpVideoFormat(cricket::kAv1CodecName,
- {{cricket::kAv1FmtpProfile,
- AV1ProfileToString(AV1Profile::kProfile1).data()}}));
+ std::unique_ptr<VideoDecoder> decoder =
+ factory.Create(env, SdpVideoFormat::AV1Profile1());
EXPECT_EQ(static_cast<bool>(decoder), kDav1dIsIncluded);
}
TEST(InternalDecoderFactoryTest, QueryCodecSupportNoReferenceScaling) {
InternalDecoderFactory factory;
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp8CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP8(),
/*reference_scaling=*/false),
Support(kSupported));
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp9CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile0(),
/*reference_scaling=*/false),
Support(kVp9Enabled ? kSupported : kUnsupported));
- EXPECT_THAT(factory.QueryCodecSupport(
- SdpVideoFormat(cricket::kVp9CodecName,
- {{kVP9FmtpProfileId,
- VP9ProfileToString(VP9Profile::kProfile1)}}),
- /*reference_scaling=*/false),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile1(),
+ /*reference_scaling=*/false),
Support(kVp9Enabled ? kSupported : kUnsupported));
#if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY)
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kAv1CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::AV1Profile0(),
/*reference_scaling=*/false),
Support(kSupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::AV1Profile1(),
+ /*reference_scaling=*/false),
+ Support(kSupported));
+
#endif
}
TEST(InternalDecoderFactoryTest, QueryCodecSupportReferenceScaling) {
InternalDecoderFactory factory;
// VP9 and AV1 support for spatial layers.
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp9CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile0(),
/*reference_scaling=*/true),
Support(kVp9Enabled ? kSupported : kUnsupported));
#if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY)
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kAv1CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::AV1Profile0(),
/*reference_scaling=*/true),
Support(kSupported));
#endif
// Invalid config even though VP8 and H264 are supported.
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kH264CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::H264(),
/*reference_scaling=*/true),
Support(kUnsupported));
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp8CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP8(),
/*reference_scaling=*/true),
Support(kUnsupported));
}
diff --git a/media/engine/internal_encoder_factory_unittest.cc b/media/engine/internal_encoder_factory_unittest.cc
index b9ca6d8..7846bd3 100644
--- a/media/engine/internal_encoder_factory_unittest.cc
+++ b/media/engine/internal_encoder_factory_unittest.cc
@@ -48,7 +48,7 @@
TEST(InternalEncoderFactoryTest, Vp8) {
InternalEncoderFactory factory;
std::unique_ptr<VideoEncoder> encoder =
- factory.CreateVideoEncoder(SdpVideoFormat(cricket::kVp8CodecName));
+ factory.CreateVideoEncoder(SdpVideoFormat::VP8());
EXPECT_TRUE(encoder);
}
@@ -56,9 +56,7 @@
InternalEncoderFactory factory;
if (kVp9Enabled) {
std::unique_ptr<VideoEncoder> encoder =
- factory.CreateVideoEncoder(SdpVideoFormat(
- cricket::kVp9CodecName,
- {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile0)}}));
+ factory.CreateVideoEncoder(SdpVideoFormat::VP9Profile0());
EXPECT_TRUE(encoder);
} else {
EXPECT_THAT(
@@ -71,7 +69,7 @@
InternalEncoderFactory factory;
if (kH264Enabled) {
std::unique_ptr<VideoEncoder> encoder =
- factory.CreateVideoEncoder(SdpVideoFormat(cricket::kH264CodecName));
+ factory.CreateVideoEncoder(SdpVideoFormat::H264());
EXPECT_TRUE(encoder);
} else {
EXPECT_THAT(
@@ -94,25 +92,20 @@
TEST(InternalEncoderFactoryTest, QueryCodecSupportWithScalabilityMode) {
InternalEncoderFactory factory;
// VP8 and VP9 supported for singles spatial layers.
- EXPECT_THAT(
- factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp8CodecName), "L1T2"),
- Support(kSupported));
- EXPECT_THAT(
- factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp9CodecName), "L1T3"),
- Support(kVp9Enabled ? kSupported : kUnsupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP8(), "L1T2"),
+ Support(kSupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile0(), "L1T3"),
+ Support(kVp9Enabled ? kSupported : kUnsupported));
// VP9 support for spatial layers.
- EXPECT_THAT(
- factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp9CodecName), "L3T3"),
- Support(kVp9Enabled ? kSupported : kUnsupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile0(), "L3T3"),
+ Support(kVp9Enabled ? kSupported : kUnsupported));
// Invalid scalability modes even though VP8 and H264 are supported.
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kH264CodecName),
- "L2T2"),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::H264(), "L2T2"),
Support(kUnsupported));
- EXPECT_THAT(
- factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp8CodecName), "L3T3"),
- Support(kUnsupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP8(), "L3T3"),
+ Support(kUnsupported));
}
#if defined(RTC_USE_LIBAOM_AV1_ENCODER)
@@ -120,32 +113,30 @@
InternalEncoderFactory factory;
EXPECT_THAT(factory.GetSupportedFormats(),
Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName)));
- EXPECT_TRUE(
- factory.CreateVideoEncoder(SdpVideoFormat(cricket::kAv1CodecName)));
+ EXPECT_TRUE(factory.CreateVideoEncoder(SdpVideoFormat::AV1Profile0()));
}
TEST(InternalEncoderFactoryTest, QueryCodecSupportNoScalabilityModeAv1) {
InternalEncoderFactory factory;
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kAv1CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::AV1Profile0(),
/*scalability_mode=*/absl::nullopt),
Support(kSupported));
}
TEST(InternalEncoderFactoryTest, QueryCodecSupportNoScalabilityMode) {
InternalEncoderFactory factory;
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp8CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP8(),
/*scalability_mode=*/absl::nullopt),
Support(kSupported));
- EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat(cricket::kVp9CodecName),
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::VP9Profile0(),
/*scalability_mode=*/absl::nullopt),
Support(kVp9Enabled ? kSupported : kUnsupported));
}
TEST(InternalEncoderFactoryTest, QueryCodecSupportWithScalabilityModeAv1) {
InternalEncoderFactory factory;
- EXPECT_THAT(
- factory.QueryCodecSupport(SdpVideoFormat(cricket::kAv1CodecName), "L2T1"),
- Support(kSupported));
+ EXPECT_THAT(factory.QueryCodecSupport(SdpVideoFormat::AV1Profile0(), "L2T1"),
+ Support(kSupported));
}
#endif // defined(RTC_USE_LIBAOM_AV1_ENCODER)
diff --git a/media/engine/simulcast_encoder_adapter_unittest.cc b/media/engine/simulcast_encoder_adapter_unittest.cc
index 4abda03..c574929 100644
--- a/media/engine/simulcast_encoder_adapter_unittest.cc
+++ b/media/engine/simulcast_encoder_adapter_unittest.cc
@@ -58,8 +58,7 @@
std::make_unique<FunctionVideoEncoderFactory>(
[internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- internal_encoder_factory,
- SdpVideoFormat(cricket::kVp8CodecName));
+ internal_encoder_factory, SdpVideoFormat::VP8());
});
std::unique_ptr<VideoDecoderFactory> decoder_factory =
std::make_unique<FunctionVideoDecoderFactory>(
@@ -68,7 +67,7 @@
});
return CreateSimulcastTestFixture(std::move(encoder_factory),
std::move(decoder_factory),
- SdpVideoFormat(cricket::kVp8CodecName));
+ SdpVideoFormat::VP8());
}
} // namespace
@@ -355,8 +354,7 @@
std::vector<SdpVideoFormat> MockVideoEncoderFactory::GetSupportedFormats()
const {
- std::vector<SdpVideoFormat> formats = {SdpVideoFormat("VP8")};
- return formats;
+ return {SdpVideoFormat::VP8()};
}
std::unique_ptr<VideoEncoder> MockVideoEncoderFactory::CreateVideoEncoder(
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 426471c..02ba628 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -1623,7 +1623,7 @@
const std::vector<webrtc::SdpVideoFormat>
WebRtcVideoChannelEncodedFrameCallbackTest::kSdpVideoFormats = {
- webrtc::SdpVideoFormat("VP8")};
+ webrtc::SdpVideoFormat::VP8()};
TEST_F(WebRtcVideoChannelEncodedFrameCallbackTest,
SetEncodedFrameBufferFunction_DefaultStream) {
@@ -2564,9 +2564,8 @@
ASSERT_TRUE(codec);
EXPECT_EQ("VP8", codec->name);
- SendImpl()->RequestEncoderSwitch(
- webrtc::SdpVideoFormat("VP9", {{"profile-id", "1"}}),
- /*allow_default_fallback=*/false);
+ SendImpl()->RequestEncoderSwitch(webrtc::SdpVideoFormat::VP9Profile1(),
+ /*allow_default_fallback=*/false);
time_controller_.AdvanceTime(kFrameDuration);
// VP9 profile_id=1 is not available. Default fallback is not allowed. Switch
@@ -2575,9 +2574,8 @@
ASSERT_TRUE(codec);
EXPECT_EQ("VP8", codec->name);
- SendImpl()->RequestEncoderSwitch(
- webrtc::SdpVideoFormat("VP9", {{"profile-id", "0"}}),
- /*allow_default_fallback=*/false);
+ SendImpl()->RequestEncoderSwitch(webrtc::SdpVideoFormat::VP9Profile0(),
+ /*allow_default_fallback=*/false);
time_controller_.AdvanceTime(kFrameDuration);
// VP9 profile_id=0 is available. Switch encoder.
@@ -9769,7 +9767,7 @@
webrtc::MockEncoderSelector encoder_selector;
EXPECT_CALL(encoder_selector, OnAvailableBitrate)
- .WillRepeatedly(Return(webrtc::SdpVideoFormat("VP9")));
+ .WillRepeatedly(Return(webrtc::SdpVideoFormat::VP9Profile0()));
send_channel_->SetEncoderSelector(kSsrc, &encoder_selector);
time_controller_.AdvanceTime(kFrameDuration);
diff --git a/modules/video_coding/codecs/h264/h264_simulcast_unittest.cc b/modules/video_coding/codecs/h264/h264_simulcast_unittest.cc
index e191f51..65c1add 100644
--- a/modules/video_coding/codecs/h264/h264_simulcast_unittest.cc
+++ b/modules/video_coding/codecs/h264/h264_simulcast_unittest.cc
@@ -30,7 +30,7 @@
[]() { return H264Decoder::Create(); });
return CreateSimulcastTestFixture(std::move(encoder_factory),
std::move(decoder_factory),
- SdpVideoFormat("H264"));
+ SdpVideoFormat::H264());
}
} // namespace
diff --git a/modules/video_coding/codecs/test/videocodec_test_libvpx.cc b/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
index 062375b..7c6dc64 100644
--- a/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_libvpx.cc
@@ -366,7 +366,7 @@
std::unique_ptr<VideoEncoderFactory> adapted_encoder_factory =
std::make_unique<FunctionVideoEncoderFactory>([&]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat(cricket::kVp8CodecName));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
std::unique_ptr<InternalDecoderFactory> internal_decoder_factory(
new InternalDecoderFactory());
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_simulcast_test.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_simulcast_test.cc
index 3f13066..79bcb5e 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_simulcast_test.cc
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_simulcast_test.cc
@@ -32,7 +32,7 @@
});
return CreateSimulcastTestFixture(std::move(encoder_factory),
std::move(decoder_factory),
- SdpVideoFormat("VP8"));
+ SdpVideoFormat::VP8());
}
} // namespace
diff --git a/sdk/objc/unittests/objc_video_decoder_factory_tests.mm b/sdk/objc/unittests/objc_video_decoder_factory_tests.mm
index 5b2b401..33c5089 100644
--- a/sdk/objc/unittests/objc_video_decoder_factory_tests.mm
+++ b/sdk/objc/unittests/objc_video_decoder_factory_tests.mm
@@ -52,8 +52,7 @@
std::unique_ptr<webrtc::VideoDecoder> GetObjCDecoder(
id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)> factory) {
webrtc::ObjCVideoDecoderFactory decoder_factory(factory);
- return decoder_factory.Create(webrtc::CreateEnvironment(),
- webrtc::SdpVideoFormat(cricket::kH264CodecName));
+ return decoder_factory.Create(webrtc::CreateEnvironment(), webrtc::SdpVideoFormat::H264());
}
#pragma mark -
diff --git a/test/fake_vp8_encoder_unittest.cc b/test/fake_vp8_encoder_unittest.cc
index e79e8e4..c068be0 100644
--- a/test/fake_vp8_encoder_unittest.cc
+++ b/test/fake_vp8_encoder_unittest.cc
@@ -35,7 +35,7 @@
[]() { return std::make_unique<FakeVp8Decoder>(); });
return CreateSimulcastTestFixture(std::move(encoder_factory),
std::move(decoder_factory),
- SdpVideoFormat("VP8"));
+ SdpVideoFormat::VP8());
}
} // namespace
diff --git a/test/fuzzers/vp8_replay_fuzzer.cc b/test/fuzzers/vp8_replay_fuzzer.cc
index 819b962..f831ab7 100644
--- a/test/fuzzers/vp8_replay_fuzzer.cc
+++ b/test/fuzzers/vp8_replay_fuzzer.cc
@@ -22,7 +22,7 @@
VideoReceiveStreamInterface::Config vp8_config(&(stream_state->transport));
VideoReceiveStreamInterface::Decoder vp8_decoder;
- vp8_decoder.video_format = SdpVideoFormat("VP8");
+ vp8_decoder.video_format = SdpVideoFormat::VP8();
vp8_decoder.payload_type = 125;
vp8_config.decoders.push_back(std::move(vp8_decoder));
diff --git a/test/fuzzers/vp9_replay_fuzzer.cc b/test/fuzzers/vp9_replay_fuzzer.cc
index fc10d9f..6fd1b64 100644
--- a/test/fuzzers/vp9_replay_fuzzer.cc
+++ b/test/fuzzers/vp9_replay_fuzzer.cc
@@ -22,7 +22,7 @@
VideoReceiveStreamInterface::Config vp9_config(&(stream_state->transport));
VideoReceiveStreamInterface::Decoder vp9_decoder;
- vp9_decoder.video_format = SdpVideoFormat("VP9");
+ vp9_decoder.video_format = SdpVideoFormat::VP9Profile0();
vp9_decoder.payload_type = 124;
vp9_config.decoders.push_back(std::move(vp9_decoder));
diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc
index 3a6b808..6c58115 100644
--- a/test/pc/e2e/peer_connection_quality_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test.cc
@@ -567,14 +567,14 @@
peer->params().video_codecs, true, peer->params().use_ulp_fec,
peer->params().use_flex_fec,
peer->pc_factory()
- ->GetRtpSenderCapabilities(cricket::MediaType::MEDIA_TYPE_VIDEO)
+ ->GetRtpReceiverCapabilities(cricket::MediaType::MEDIA_TYPE_VIDEO)
.codecs);
std::vector<RtpCodecCapability> without_rtx_video_capabilities =
FilterVideoCodecCapabilities(
peer->params().video_codecs, false, peer->params().use_ulp_fec,
peer->params().use_flex_fec,
peer->pc_factory()
- ->GetRtpSenderCapabilities(cricket::MediaType::MEDIA_TYPE_VIDEO)
+ ->GetRtpReceiverCapabilities(cricket::MediaType::MEDIA_TYPE_VIDEO)
.codecs);
// Set codecs for transceivers
diff --git a/test/peer_scenario/peer_scenario_client.cc b/test/peer_scenario/peer_scenario_client.cc
index 2b84d15..fe0c75c 100644
--- a/test/peer_scenario/peer_scenario_client.cc
+++ b/test/peer_scenario/peer_scenario_client.cc
@@ -179,7 +179,7 @@
public:
FakeVideoEncoderFactory(Clock* clock) : clock_(clock) {}
std::vector<SdpVideoFormat> GetSupportedFormats() const override {
- return {SdpVideoFormat("VP8")};
+ return {SdpVideoFormat::VP8()};
}
std::unique_ptr<VideoEncoder> CreateVideoEncoder(
const SdpVideoFormat& format) override {
@@ -193,7 +193,7 @@
class FakeVideoDecoderFactory : public VideoDecoderFactory {
public:
std::vector<SdpVideoFormat> GetSupportedFormats() const override {
- return {SdpVideoFormat("VP8")};
+ return {SdpVideoFormat::VP8()};
}
std::unique_ptr<VideoDecoder> Create(const Environment& env,
const SdpVideoFormat& format) override {
diff --git a/test/video_codec_tester.h b/test/video_codec_tester.h
index 00b6093..1db45d2 100644
--- a/test/video_codec_tester.h
+++ b/test/video_codec_tester.h
@@ -48,7 +48,7 @@
};
struct EncodingSettings {
- SdpVideoFormat sdp_video_format = SdpVideoFormat("VP8");
+ SdpVideoFormat sdp_video_format = SdpVideoFormat::VP8();
ScalabilityMode scalability_mode = ScalabilityMode::kL1T1;
struct LayerSettings {
diff --git a/test/video_codec_tester_unittest.cc b/test/video_codec_tester_unittest.cc
index fdd7b37..8ad6558 100644
--- a/test/video_codec_tester_unittest.cc
+++ b/test/video_codec_tester_unittest.cc
@@ -652,7 +652,7 @@
decoder_settings.pacing_settings = pacing_settings;
std::vector<Frame> frames =
VideoCodecTester::RunDecodeTest(env_, &video_source, &decoder_factory,
- decoder_settings, SdpVideoFormat("VP8"))
+ decoder_settings, SdpVideoFormat::VP8())
->Slice(/*filter=*/{}, /*merge=*/false);
ASSERT_THAT(frames, SizeIs(kNumFrames));
EXPECT_NEAR((frames[1].decode_start - frames[0].decode_start).ms(),
diff --git a/video/end_to_end_tests/histogram_tests.cc b/video/end_to_end_tests/histogram_tests.cc
index 2dd9a2e..4f9f9e2 100644
--- a/video/end_to_end_tests/histogram_tests.cc
+++ b/video/end_to_end_tests/histogram_tests.cc
@@ -107,7 +107,7 @@
send_config->encoder_settings.encoder_factory = &encoder_factory_;
send_config->rtp.payload_name = "VP8";
encoder_config->codec_type = kVideoCodecVP8;
- (*receive_configs)[0].decoders[0].video_format = SdpVideoFormat("VP8");
+ (*receive_configs)[0].decoders[0].video_format = SdpVideoFormat::VP8();
(*receive_configs)[0].rtp.red_payload_type =
test::VideoTestConstants::kRedPayloadType;
(*receive_configs)[0].rtp.ulpfec_payload_type =
diff --git a/video/end_to_end_tests/retransmission_tests.cc b/video/end_to_end_tests/retransmission_tests.cc
index 10828fa..a0e404f 100644
--- a/video/end_to_end_tests/retransmission_tests.cc
+++ b/video/end_to_end_tests/retransmission_tests.cc
@@ -469,7 +469,7 @@
send_config->encoder_settings.encoder_factory = &encoder_factory_;
send_config->rtp.payload_name = "VP8";
encoder_config->codec_type = kVideoCodecVP8;
- (*receive_configs)[0].decoders[0].video_format = SdpVideoFormat("VP8");
+ (*receive_configs)[0].decoders[0].video_format = SdpVideoFormat::VP8();
}
void OnFrameGeneratorCapturerCreated(
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index 09b9118..25f0fc3 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -390,7 +390,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
SetupEncoder(&encoder_factory, "VP8");
TestPictureIdContinuousAfterReconfigure({1, 3, 3, 1, 1});
@@ -403,7 +403,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
SetupEncoder(&encoder_factory, "VP8");
TestPictureIdIncreaseAfterRecreateStreams({1, 3, 3, 1, 1});
@@ -414,7 +414,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
// Make sure that the picture id is not reset if the stream count goes
// down and then up.
diff --git a/video/video_receive_stream2_unittest.cc b/video/video_receive_stream2_unittest.cc
index 221d17b..5b1b664 100644
--- a/video/video_receive_stream2_unittest.cc
+++ b/video/video_receive_stream2_unittest.cc
@@ -238,7 +238,7 @@
config_.renderer = &fake_renderer_;
VideoReceiveStreamInterface::Decoder h264_decoder;
h264_decoder.payload_type = 99;
- h264_decoder.video_format = SdpVideoFormat("H264");
+ h264_decoder.video_format = SdpVideoFormat::H264();
h264_decoder.video_format.parameters.insert(
{"sprop-parameter-sets", "Z0IACpZTBYmI,aMljiA=="});
VideoReceiveStreamInterface::Decoder h265_decoder;
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 37acd2d..bf97d29 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -4214,7 +4214,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
@@ -4227,7 +4227,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
@@ -4240,7 +4240,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
@@ -4262,7 +4262,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
@@ -4274,7 +4274,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
@@ -4287,7 +4287,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return std::make_unique<SimulcastEncoderAdapter>(
- &internal_encoder_factory, SdpVideoFormat("VP8"));
+ &internal_encoder_factory, SdpVideoFormat::VP8());
});
TestTemporalLayers(&encoder_factory, "VP8",
diff --git a/video/video_stream_decoder_impl_unittest.cc b/video/video_stream_decoder_impl_unittest.cc
index d0cf925..6942e06 100644
--- a/video/video_stream_decoder_impl_unittest.cc
+++ b/video/video_stream_decoder_impl_unittest.cc
@@ -131,12 +131,13 @@
public:
VideoStreamDecoderImplTest()
: time_controller_(Timestamp::Seconds(0)),
- video_stream_decoder_(&callbacks_,
- &decoder_factory_,
- time_controller_.GetTaskQueueFactory(),
- {{1, std::make_pair(SdpVideoFormat("VP8"), 1)},
- {2, std::make_pair(SdpVideoFormat("AV1"), 1)}},
- &field_trials_) {
+ video_stream_decoder_(
+ &callbacks_,
+ &decoder_factory_,
+ time_controller_.GetTaskQueueFactory(),
+ {{1, std::make_pair(SdpVideoFormat::VP8(), 1)},
+ {2, std::make_pair(SdpVideoFormat::AV1Profile0(), 1)}},
+ &field_trials_) {
// Set the min playout delay to a value greater than zero to not activate
// the low-latency renderer.
video_stream_decoder_.SetMinPlayoutDelay(TimeDelta::Millis(10));