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();