Add VideoCodecType::kVideoCodecAV1 value
Bug: webrtc:11042
Change-Id: I3c5151c9e47679760f8f7d79270488fa8f4c7db5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159282
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29927}
diff --git a/api/video/video_codec_type.h b/api/video/video_codec_type.h
index 2e406c0..efbe3cc 100644
--- a/api/video/video_codec_type.h
+++ b/api/video/video_codec_type.h
@@ -20,6 +20,7 @@
kVideoCodecGeneric = 0,
kVideoCodecVP8,
kVideoCodecVP9,
+ kVideoCodecAV1,
kVideoCodecH264,
kVideoCodecMultiplex,
};
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index cc9712c..c71af6b 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -267,7 +267,8 @@
}
return;
case VideoCodecType::kVideoCodecVP9:
- // TODO(philipel): Implement VP9 to new generic descriptor.
+ case VideoCodecType::kVideoCodecAV1:
+ // TODO(philipel): Implement VP9 and AV1 to generic descriptor.
return;
case VideoCodecType::kVideoCodecH264:
if (codec_specific_info) {
diff --git a/modules/rtp_rtcp/source/rtp_depacketizer_av1.cc b/modules/rtp_rtcp/source/rtp_depacketizer_av1.cc
index 9383ce2..45122da 100644
--- a/modules/rtp_rtcp/source/rtp_depacketizer_av1.cc
+++ b/modules/rtp_rtcp/source/rtp_depacketizer_av1.cc
@@ -382,8 +382,7 @@
uint8_t aggregation_header;
RTC_CHECK(payload.ReadUInt8(&aggregation_header));
- // TODO(danilchap): Set AV1 codec when there is such enum value
- parsed_payload->video.codec = VideoCodecType::kVideoCodecGeneric;
+ parsed_payload->video.codec = VideoCodecType::kVideoCodecAV1;
// These are not accurate since frame may consist of several packet aligned
// chunks of obus, but should be good enough for most cases. It might produce
// frame that do not map to any real frame, but av1 decoder should be able to
diff --git a/rtc_base/experiments/min_video_bitrate_experiment.cc b/rtc_base/experiments/min_video_bitrate_experiment.cc
index c3cf937..ee62d2e 100644
--- a/rtc_base/experiments/min_video_bitrate_experiment.cc
+++ b/rtc_base/experiments/min_video_bitrate_experiment.cc
@@ -74,15 +74,17 @@
// New experiment - per-codec minimum bitrate.
webrtc::FieldTrialOptional<webrtc::DataRate> min_bitrate_vp8("vp8_br");
webrtc::FieldTrialOptional<webrtc::DataRate> min_bitrate_vp9("vp9_br");
+ webrtc::FieldTrialOptional<webrtc::DataRate> min_bitrate_av1("av1_br");
webrtc::FieldTrialOptional<webrtc::DataRate> min_bitrate_h264("h264_br");
webrtc::ParseFieldTrial(
{&enabled, &min_video_bitrate, &min_bitrate_vp8, &min_bitrate_vp9,
- &min_bitrate_h264},
+ &min_bitrate_av1, &min_bitrate_h264},
webrtc::field_trial::FindFullName(kMinVideoBitrateExperiment));
if (min_video_bitrate) {
- if (min_bitrate_vp8 || min_bitrate_vp9 || min_bitrate_h264) {
+ if (min_bitrate_vp8 || min_bitrate_vp9 || min_bitrate_av1 ||
+ min_bitrate_h264) {
// "br" is mutually-exclusive with the other configuration possibilites.
RTC_LOG(LS_WARNING) << "Self-contradictory experiment config.";
}
@@ -94,6 +96,8 @@
return min_bitrate_vp8.GetOptional();
case kVideoCodecVP9:
return min_bitrate_vp9.GetOptional();
+ case kVideoCodecAV1:
+ return min_bitrate_av1.GetOptional();
case kVideoCodecH264:
return min_bitrate_h264.GetOptional();
case kVideoCodecGeneric:
diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc
index b086a33..56e97ef 100644
--- a/test/scenario/video_stream.cc
+++ b/test/scenario/video_stream.cc
@@ -211,6 +211,7 @@
case Codec::kVideoCodecVP9:
return CreateVp9SpecificSettings(config);
case Codec::kVideoCodecGeneric:
+ case Codec::kVideoCodecAV1:
return nullptr;
case Codec::kVideoCodecMultiplex:
RTC_NOTREACHED();