Replace AV1X with AV1

* Replace "AV1X" with "AV1";
* Keep mapping of "AV1X" payload name to kVideoCodecAv1 to not break
support of injectable "AV1X".

Bug: webrtc:13166
Change-Id: I9a50481209209f3857bbf28f4ed529ee6972377e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231560
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34987}
diff --git a/api/video_codecs/video_codec.cc b/api/video_codecs/video_codec.cc
index d05eb45..e96a63a 100644
--- a/api/video_codecs/video_codec.cc
+++ b/api/video_codecs/video_codec.cc
@@ -21,9 +21,9 @@
 namespace {
 constexpr char kPayloadNameVp8[] = "VP8";
 constexpr char kPayloadNameVp9[] = "VP9";
-// TODO(bugs.webrtc.org/11042): Rename to AV1 when rtp payload format for av1 is
-// frozen.
-constexpr char kPayloadNameAv1[] = "AV1X";
+constexpr char kPayloadNameAv1[] = "AV1";
+// TODO(bugs.webrtc.org/13166): Delete after all dependent projects updated.
+constexpr char kPayloadNameAv1x[] = "AV1X";
 constexpr char kPayloadNameH264[] = "H264";
 constexpr char kPayloadNameGeneric[] = "Generic";
 constexpr char kPayloadNameMultiplex[] = "Multiplex";
@@ -128,7 +128,8 @@
     return kVideoCodecVP8;
   if (absl::EqualsIgnoreCase(name, kPayloadNameVp9))
     return kVideoCodecVP9;
-  if (absl::EqualsIgnoreCase(name, kPayloadNameAv1))
+  if (absl::EqualsIgnoreCase(name, kPayloadNameAv1) ||
+      absl::EqualsIgnoreCase(name, kPayloadNameAv1x))
     return kVideoCodecAV1;
   if (absl::EqualsIgnoreCase(name, kPayloadNameH264))
     return kVideoCodecH264;
diff --git a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java
index c5e9059..2872d0b 100644
--- a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java
+++ b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java
@@ -96,7 +96,6 @@
   private static final String VIDEO_CODEC_H264_BASELINE = "H264 Baseline";
   private static final String VIDEO_CODEC_H264_HIGH = "H264 High";
   private static final String VIDEO_CODEC_AV1 = "AV1";
-  private static final String VIDEO_CODEC_AV1_SDP_CODEC_NAME = "AV1X";
   private static final String AUDIO_CODEC_OPUS = "opus";
   private static final String AUDIO_CODEC_ISAC = "ISAC";
   private static final String VIDEO_CODEC_PARAM_START_BITRATE = "x-google-start-bitrate";
@@ -985,7 +984,7 @@
       case VIDEO_CODEC_VP9:
         return VIDEO_CODEC_VP9;
       case VIDEO_CODEC_AV1:
-        return VIDEO_CODEC_AV1_SDP_CODEC_NAME;
+        return VIDEO_CODEC_AV1;
       case VIDEO_CODEC_H264_HIGH:
       case VIDEO_CODEC_H264_BASELINE:
         return VIDEO_CODEC_H264;
diff --git a/media/base/media_constants.cc b/media/base/media_constants.cc
index 17a8a83..4e1fd1f 100644
--- a/media/base/media_constants.cc
+++ b/media/base/media_constants.cc
@@ -99,7 +99,8 @@
 
 const char kVp8CodecName[] = "VP8";
 const char kVp9CodecName[] = "VP9";
-const char kAv1CodecName[] = "AV1X";
+const char kAv1CodecName[] = "AV1";
+const char kAv1xCodecName[] = "AV1X";
 const char kH264CodecName[] = "H264";
 
 // RFC 6184 RTP Payload Format for H.264 video
diff --git a/media/base/media_constants.h b/media/base/media_constants.h
index 1f471e7..617ba44 100644
--- a/media/base/media_constants.h
+++ b/media/base/media_constants.h
@@ -122,6 +122,8 @@
 RTC_EXPORT extern const char kVp8CodecName[];
 RTC_EXPORT extern const char kVp9CodecName[];
 RTC_EXPORT extern const char kAv1CodecName[];
+// TODO(bugs.webrtc.org/13166): Delete after all dependent projects updated.
+RTC_EXPORT extern const char kAv1xCodecName[];
 RTC_EXPORT extern const char kH264CodecName[];
 
 // RFC 6184 RTP Payload Format for H.264 video
diff --git a/media/engine/internal_decoder_factory_unittest.cc b/media/engine/internal_decoder_factory_unittest.cc
index a2a6921..9d3acee 100644
--- a/media/engine/internal_decoder_factory_unittest.cc
+++ b/media/engine/internal_decoder_factory_unittest.cc
@@ -55,11 +55,13 @@
   InternalDecoderFactory factory;
   if (kIsLibaomAv1DecoderSupported) {
     EXPECT_THAT(factory.GetSupportedFormats(),
-                Contains(Field(&SdpVideoFormat::name, "AV1X")));
-    EXPECT_TRUE(factory.CreateVideoDecoder(SdpVideoFormat("AV1X")));
+                Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName)));
+    EXPECT_TRUE(
+        factory.CreateVideoDecoder(SdpVideoFormat(cricket::kAv1CodecName)));
   } else {
-    EXPECT_THAT(factory.GetSupportedFormats(),
-                Not(Contains(Field(&SdpVideoFormat::name, "AV1X"))));
+    EXPECT_THAT(
+        factory.GetSupportedFormats(),
+        Not(Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName))));
   }
 }
 
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc
index b7c9983..dc50a8e 100644
--- a/media/engine/webrtc_video_engine.cc
+++ b/media/engine/webrtc_video_engine.cc
@@ -172,7 +172,8 @@
     VideoCodec codec(format);
     bool isCodecValidForLowerRange =
         absl::EqualsIgnoreCase(codec.name, kFlexfecCodecName) ||
-        absl::EqualsIgnoreCase(codec.name, kAv1CodecName);
+        absl::EqualsIgnoreCase(codec.name, kAv1CodecName) ||
+        absl::EqualsIgnoreCase(codec.name, kAv1xCodecName);
     bool isFecCodec = absl::EqualsIgnoreCase(codec.name, kUlpfecCodecName) ||
                       absl::EqualsIgnoreCase(codec.name, kFlexfecCodecName);
 
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index d20dc70..13b54d9 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -1025,7 +1025,7 @@
   ASSERT_EQ(flexfec_it->id, 35);
   auto av1_it = std::find_if(
       offer_codecs.begin(), offer_codecs.end(),
-      [](const cricket::Codec& codec) { return codec.name == "AV1X"; });
+      [](const cricket::Codec& codec) { return codec.name == "AV1"; });
   if (av1_it != offer_codecs.end()) {
     ASSERT_NE(av1_it->id, 35);
   }
diff --git a/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java b/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java
index f2cde8f..9cd4aa2 100644
--- a/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java
+++ b/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java
@@ -94,7 +94,7 @@
       return null;
     }
 
-    VideoCodecMimeType type = VideoCodecMimeType.fromSdpCodecName(input.getName());
+    VideoCodecMimeType type = VideoCodecMimeType.valueOf(input.getName());
     MediaCodecInfo info = findCodecForType(type);
 
     if (info == null) {
@@ -142,7 +142,7 @@
              VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
       MediaCodecInfo codec = findCodecForType(type);
       if (codec != null) {
-        String name = type.toSdpCodecName();
+        String name = type.name();
         // TODO(sakal): Always add H264 HP once WebRTC correctly removes codecs that are not
         // supported by the decoder.
         if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
diff --git a/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java b/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
index e767aee..ebcf204 100644
--- a/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
+++ b/sdk/android/api/org/webrtc/SoftwareVideoDecoderFactory.java
@@ -21,14 +21,14 @@
   public VideoDecoder createDecoder(VideoCodecInfo codecInfo) {
     String codecName = codecInfo.getName();
 
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.toSdpCodecName())) {
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.name())) {
       return new LibvpxVp8Decoder();
     }
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.toSdpCodecName())
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.name())
         && LibvpxVp9Decoder.nativeIsSupported()) {
       return new LibvpxVp9Decoder();
     }
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.toSdpCodecName())
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.name())
         && LibaomAv1Decoder.nativeIsSupported()) {
       return new LibaomAv1Decoder();
     }
@@ -44,12 +44,12 @@
   static VideoCodecInfo[] supportedCodecs() {
     List<VideoCodecInfo> codecs = new ArrayList<VideoCodecInfo>();
 
-    codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.toSdpCodecName(), new HashMap<>()));
+    codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
     if (LibvpxVp9Decoder.nativeIsSupported()) {
-      codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.toSdpCodecName(), new HashMap<>()));
+      codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
     }
     if (LibaomAv1Decoder.nativeIsSupported()) {
-      codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.toSdpCodecName(), new HashMap<>()));
+      codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
     }
 
     return codecs.toArray(new VideoCodecInfo[codecs.size()]);
diff --git a/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java b/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
index 6074be2..1e3e181 100644
--- a/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
+++ b/sdk/android/api/org/webrtc/SoftwareVideoEncoderFactory.java
@@ -21,14 +21,14 @@
   public VideoEncoder createEncoder(VideoCodecInfo codecInfo) {
     String codecName = codecInfo.getName();
 
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.toSdpCodecName())) {
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.name())) {
       return new LibvpxVp8Encoder();
     }
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.toSdpCodecName())
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.name())
         && LibvpxVp9Encoder.nativeIsSupported()) {
       return new LibvpxVp9Encoder();
     }
-    if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.toSdpCodecName())
+    if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.name())
         && LibaomAv1Encoder.nativeIsSupported()) {
       return new LibaomAv1Encoder();
     }
@@ -44,12 +44,12 @@
   static VideoCodecInfo[] supportedCodecs() {
     List<VideoCodecInfo> codecs = new ArrayList<VideoCodecInfo>();
 
-    codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.toSdpCodecName(), new HashMap<>()));
+    codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP8.name(), new HashMap<>()));
     if (LibvpxVp9Encoder.nativeIsSupported()) {
-      codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.toSdpCodecName(), new HashMap<>()));
+      codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
     }
     if (LibaomAv1Encoder.nativeIsSupported()) {
-      codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.toSdpCodecName(), new HashMap<>()));
+      codecs.add(new VideoCodecInfo(VideoCodecMimeType.AV1.name(), new HashMap<>()));
     }
 
     return codecs.toArray(new VideoCodecInfo[codecs.size()]);
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java b/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java
index 4ec0d94..197a5bc 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java
@@ -73,7 +73,7 @@
     assertEquals(5, videoCodecs.length);
     assertEquals("VP8", videoCodecs[0].name);
     assertEquals("VP9", videoCodecs[1].name);
-    assertEquals("AV1X", videoCodecs[2].name);
+    assertEquals("AV1", videoCodecs[2].name);
     assertEquals("H264", videoCodecs[3].name);
     assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
     assertEquals("H264", videoCodecs[4].name);
@@ -89,7 +89,7 @@
     assertEquals(4, videoCodecs.length);
     assertEquals("VP8", videoCodecs[0].name);
     assertEquals("VP9", videoCodecs[1].name);
-    assertEquals("AV1X", videoCodecs[2].name);
+    assertEquals("AV1", videoCodecs[2].name);
     assertEquals("H264", videoCodecs[3].name);
     assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
   }
@@ -103,7 +103,7 @@
     assertEquals(5, videoCodecs.length);
     assertEquals("VP8", videoCodecs[0].name);
     assertEquals("VP9", videoCodecs[1].name);
-    assertEquals("AV1X", videoCodecs[2].name);
+    assertEquals("AV1", videoCodecs[2].name);
     assertEquals("H264", videoCodecs[3].name);
     assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
     assertEquals("H264", videoCodecs[4].name);
diff --git a/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java b/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
index 9410c4c..4ee8b1a 100644
--- a/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
+++ b/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
@@ -46,7 +46,7 @@
   @Nullable
   @Override
   public VideoDecoder createDecoder(VideoCodecInfo codecType) {
-    VideoCodecMimeType type = VideoCodecMimeType.fromSdpCodecName(codecType.getName());
+    VideoCodecMimeType type = VideoCodecMimeType.valueOf(codecType.getName());
     MediaCodecInfo info = findCodecForType(type);
 
     if (info == null) {
@@ -68,7 +68,7 @@
              VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
       MediaCodecInfo codec = findCodecForType(type);
       if (codec != null) {
-        String name = type.toSdpCodecName();
+        String name = type.name();
         if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
           supportedCodecInfos.add(new VideoCodecInfo(
               name, MediaCodecUtils.getCodecProperties(type, /* highProfile= */ true)));
@@ -110,7 +110,6 @@
 
   // Returns true if the given MediaCodecInfo indicates a supported encoder for the given type.
   private boolean isSupportedCodec(MediaCodecInfo info, VideoCodecMimeType type) {
-    String name = info.getName();
     if (!MediaCodecUtils.codecSupportsType(info, type)) {
       return false;
     }
diff --git a/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java b/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
index 93a9286..26a0309 100644
--- a/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
+++ b/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
@@ -26,12 +26,4 @@
   String mimeType() {
     return mimeType;
   }
-
-  static VideoCodecMimeType fromSdpCodecName(String codecName) {
-    return codecName.equals("AV1X") ? AV1 : valueOf(codecName);
-  }
-
-  String toSdpCodecName() {
-    return this == AV1 ? "AV1X" : name();
-  }
 }