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}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
52b9e1ecfb
commit
6b19d8273b
@ -21,9 +21,9 @@ namespace webrtc {
|
|||||||
namespace {
|
namespace {
|
||||||
constexpr char kPayloadNameVp8[] = "VP8";
|
constexpr char kPayloadNameVp8[] = "VP8";
|
||||||
constexpr char kPayloadNameVp9[] = "VP9";
|
constexpr char kPayloadNameVp9[] = "VP9";
|
||||||
// TODO(bugs.webrtc.org/11042): Rename to AV1 when rtp payload format for av1 is
|
constexpr char kPayloadNameAv1[] = "AV1";
|
||||||
// frozen.
|
// TODO(bugs.webrtc.org/13166): Delete after all dependent projects updated.
|
||||||
constexpr char kPayloadNameAv1[] = "AV1X";
|
constexpr char kPayloadNameAv1x[] = "AV1X";
|
||||||
constexpr char kPayloadNameH264[] = "H264";
|
constexpr char kPayloadNameH264[] = "H264";
|
||||||
constexpr char kPayloadNameGeneric[] = "Generic";
|
constexpr char kPayloadNameGeneric[] = "Generic";
|
||||||
constexpr char kPayloadNameMultiplex[] = "Multiplex";
|
constexpr char kPayloadNameMultiplex[] = "Multiplex";
|
||||||
@ -128,7 +128,8 @@ VideoCodecType PayloadStringToCodecType(const std::string& name) {
|
|||||||
return kVideoCodecVP8;
|
return kVideoCodecVP8;
|
||||||
if (absl::EqualsIgnoreCase(name, kPayloadNameVp9))
|
if (absl::EqualsIgnoreCase(name, kPayloadNameVp9))
|
||||||
return kVideoCodecVP9;
|
return kVideoCodecVP9;
|
||||||
if (absl::EqualsIgnoreCase(name, kPayloadNameAv1))
|
if (absl::EqualsIgnoreCase(name, kPayloadNameAv1) ||
|
||||||
|
absl::EqualsIgnoreCase(name, kPayloadNameAv1x))
|
||||||
return kVideoCodecAV1;
|
return kVideoCodecAV1;
|
||||||
if (absl::EqualsIgnoreCase(name, kPayloadNameH264))
|
if (absl::EqualsIgnoreCase(name, kPayloadNameH264))
|
||||||
return kVideoCodecH264;
|
return kVideoCodecH264;
|
||||||
|
@ -96,7 +96,6 @@ public class PeerConnectionClient {
|
|||||||
private static final String VIDEO_CODEC_H264_BASELINE = "H264 Baseline";
|
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_H264_HIGH = "H264 High";
|
||||||
private static final String VIDEO_CODEC_AV1 = "AV1";
|
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_OPUS = "opus";
|
||||||
private static final String AUDIO_CODEC_ISAC = "ISAC";
|
private static final String AUDIO_CODEC_ISAC = "ISAC";
|
||||||
private static final String VIDEO_CODEC_PARAM_START_BITRATE = "x-google-start-bitrate";
|
private static final String VIDEO_CODEC_PARAM_START_BITRATE = "x-google-start-bitrate";
|
||||||
@ -985,7 +984,7 @@ public class PeerConnectionClient {
|
|||||||
case VIDEO_CODEC_VP9:
|
case VIDEO_CODEC_VP9:
|
||||||
return VIDEO_CODEC_VP9;
|
return VIDEO_CODEC_VP9;
|
||||||
case VIDEO_CODEC_AV1:
|
case VIDEO_CODEC_AV1:
|
||||||
return VIDEO_CODEC_AV1_SDP_CODEC_NAME;
|
return VIDEO_CODEC_AV1;
|
||||||
case VIDEO_CODEC_H264_HIGH:
|
case VIDEO_CODEC_H264_HIGH:
|
||||||
case VIDEO_CODEC_H264_BASELINE:
|
case VIDEO_CODEC_H264_BASELINE:
|
||||||
return VIDEO_CODEC_H264;
|
return VIDEO_CODEC_H264;
|
||||||
|
@ -99,7 +99,8 @@ const char kComfortNoiseCodecName[] = "CN";
|
|||||||
|
|
||||||
const char kVp8CodecName[] = "VP8";
|
const char kVp8CodecName[] = "VP8";
|
||||||
const char kVp9CodecName[] = "VP9";
|
const char kVp9CodecName[] = "VP9";
|
||||||
const char kAv1CodecName[] = "AV1X";
|
const char kAv1CodecName[] = "AV1";
|
||||||
|
const char kAv1xCodecName[] = "AV1X";
|
||||||
const char kH264CodecName[] = "H264";
|
const char kH264CodecName[] = "H264";
|
||||||
|
|
||||||
// RFC 6184 RTP Payload Format for H.264 video
|
// RFC 6184 RTP Payload Format for H.264 video
|
||||||
|
@ -122,6 +122,8 @@ extern const char kComfortNoiseCodecName[];
|
|||||||
RTC_EXPORT extern const char kVp8CodecName[];
|
RTC_EXPORT extern const char kVp8CodecName[];
|
||||||
RTC_EXPORT extern const char kVp9CodecName[];
|
RTC_EXPORT extern const char kVp9CodecName[];
|
||||||
RTC_EXPORT extern const char kAv1CodecName[];
|
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[];
|
RTC_EXPORT extern const char kH264CodecName[];
|
||||||
|
|
||||||
// RFC 6184 RTP Payload Format for H.264 video
|
// RFC 6184 RTP Payload Format for H.264 video
|
||||||
|
@ -55,11 +55,13 @@ TEST(InternalDecoderFactory, Av1) {
|
|||||||
InternalDecoderFactory factory;
|
InternalDecoderFactory factory;
|
||||||
if (kIsLibaomAv1DecoderSupported) {
|
if (kIsLibaomAv1DecoderSupported) {
|
||||||
EXPECT_THAT(factory.GetSupportedFormats(),
|
EXPECT_THAT(factory.GetSupportedFormats(),
|
||||||
Contains(Field(&SdpVideoFormat::name, "AV1X")));
|
Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName)));
|
||||||
EXPECT_TRUE(factory.CreateVideoDecoder(SdpVideoFormat("AV1X")));
|
EXPECT_TRUE(
|
||||||
|
factory.CreateVideoDecoder(SdpVideoFormat(cricket::kAv1CodecName)));
|
||||||
} else {
|
} else {
|
||||||
EXPECT_THAT(factory.GetSupportedFormats(),
|
EXPECT_THAT(
|
||||||
Not(Contains(Field(&SdpVideoFormat::name, "AV1X"))));
|
factory.GetSupportedFormats(),
|
||||||
|
Not(Contains(Field(&SdpVideoFormat::name, cricket::kAv1CodecName))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +172,8 @@ std::vector<VideoCodec> GetPayloadTypesAndDefaultCodecs(
|
|||||||
VideoCodec codec(format);
|
VideoCodec codec(format);
|
||||||
bool isCodecValidForLowerRange =
|
bool isCodecValidForLowerRange =
|
||||||
absl::EqualsIgnoreCase(codec.name, kFlexfecCodecName) ||
|
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) ||
|
bool isFecCodec = absl::EqualsIgnoreCase(codec.name, kUlpfecCodecName) ||
|
||||||
absl::EqualsIgnoreCase(codec.name, kFlexfecCodecName);
|
absl::EqualsIgnoreCase(codec.name, kFlexfecCodecName);
|
||||||
|
|
||||||
|
@ -1025,7 +1025,7 @@ TEST_P(PeerConnectionSignalingTest, ReceiveFlexFecReoffer) {
|
|||||||
ASSERT_EQ(flexfec_it->id, 35);
|
ASSERT_EQ(flexfec_it->id, 35);
|
||||||
auto av1_it = std::find_if(
|
auto av1_it = std::find_if(
|
||||||
offer_codecs.begin(), offer_codecs.end(),
|
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()) {
|
if (av1_it != offer_codecs.end()) {
|
||||||
ASSERT_NE(av1_it->id, 35);
|
ASSERT_NE(av1_it->id, 35);
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ public class HardwareVideoEncoderFactory implements VideoEncoderFactory {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoCodecMimeType type = VideoCodecMimeType.fromSdpCodecName(input.getName());
|
VideoCodecMimeType type = VideoCodecMimeType.valueOf(input.getName());
|
||||||
MediaCodecInfo info = findCodecForType(type);
|
MediaCodecInfo info = findCodecForType(type);
|
||||||
|
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
@ -142,7 +142,7 @@ public class HardwareVideoEncoderFactory implements VideoEncoderFactory {
|
|||||||
VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
|
VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
|
||||||
MediaCodecInfo codec = findCodecForType(type);
|
MediaCodecInfo codec = findCodecForType(type);
|
||||||
if (codec != null) {
|
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
|
// TODO(sakal): Always add H264 HP once WebRTC correctly removes codecs that are not
|
||||||
// supported by the decoder.
|
// supported by the decoder.
|
||||||
if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
|
if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
|
||||||
|
@ -21,14 +21,14 @@ public class SoftwareVideoDecoderFactory implements VideoDecoderFactory {
|
|||||||
public VideoDecoder createDecoder(VideoCodecInfo codecInfo) {
|
public VideoDecoder createDecoder(VideoCodecInfo codecInfo) {
|
||||||
String codecName = codecInfo.getName();
|
String codecName = codecInfo.getName();
|
||||||
|
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.toSdpCodecName())) {
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.name())) {
|
||||||
return new LibvpxVp8Decoder();
|
return new LibvpxVp8Decoder();
|
||||||
}
|
}
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.toSdpCodecName())
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.name())
|
||||||
&& LibvpxVp9Decoder.nativeIsSupported()) {
|
&& LibvpxVp9Decoder.nativeIsSupported()) {
|
||||||
return new LibvpxVp9Decoder();
|
return new LibvpxVp9Decoder();
|
||||||
}
|
}
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.toSdpCodecName())
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.name())
|
||||||
&& LibaomAv1Decoder.nativeIsSupported()) {
|
&& LibaomAv1Decoder.nativeIsSupported()) {
|
||||||
return new LibaomAv1Decoder();
|
return new LibaomAv1Decoder();
|
||||||
}
|
}
|
||||||
@ -44,12 +44,12 @@ public class SoftwareVideoDecoderFactory implements VideoDecoderFactory {
|
|||||||
static VideoCodecInfo[] supportedCodecs() {
|
static VideoCodecInfo[] supportedCodecs() {
|
||||||
List<VideoCodecInfo> codecs = new ArrayList<VideoCodecInfo>();
|
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()) {
|
if (LibvpxVp9Decoder.nativeIsSupported()) {
|
||||||
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.toSdpCodecName(), new HashMap<>()));
|
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
|
||||||
}
|
}
|
||||||
if (LibaomAv1Decoder.nativeIsSupported()) {
|
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()]);
|
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
|
||||||
|
@ -21,14 +21,14 @@ public class SoftwareVideoEncoderFactory implements VideoEncoderFactory {
|
|||||||
public VideoEncoder createEncoder(VideoCodecInfo codecInfo) {
|
public VideoEncoder createEncoder(VideoCodecInfo codecInfo) {
|
||||||
String codecName = codecInfo.getName();
|
String codecName = codecInfo.getName();
|
||||||
|
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.toSdpCodecName())) {
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP8.name())) {
|
||||||
return new LibvpxVp8Encoder();
|
return new LibvpxVp8Encoder();
|
||||||
}
|
}
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.toSdpCodecName())
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.VP9.name())
|
||||||
&& LibvpxVp9Encoder.nativeIsSupported()) {
|
&& LibvpxVp9Encoder.nativeIsSupported()) {
|
||||||
return new LibvpxVp9Encoder();
|
return new LibvpxVp9Encoder();
|
||||||
}
|
}
|
||||||
if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.toSdpCodecName())
|
if (codecName.equalsIgnoreCase(VideoCodecMimeType.AV1.name())
|
||||||
&& LibaomAv1Encoder.nativeIsSupported()) {
|
&& LibaomAv1Encoder.nativeIsSupported()) {
|
||||||
return new LibaomAv1Encoder();
|
return new LibaomAv1Encoder();
|
||||||
}
|
}
|
||||||
@ -44,12 +44,12 @@ public class SoftwareVideoEncoderFactory implements VideoEncoderFactory {
|
|||||||
static VideoCodecInfo[] supportedCodecs() {
|
static VideoCodecInfo[] supportedCodecs() {
|
||||||
List<VideoCodecInfo> codecs = new ArrayList<VideoCodecInfo>();
|
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()) {
|
if (LibvpxVp9Encoder.nativeIsSupported()) {
|
||||||
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.toSdpCodecName(), new HashMap<>()));
|
codecs.add(new VideoCodecInfo(VideoCodecMimeType.VP9.name(), new HashMap<>()));
|
||||||
}
|
}
|
||||||
if (LibaomAv1Encoder.nativeIsSupported()) {
|
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()]);
|
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
|
||||||
|
@ -73,7 +73,7 @@ public class DefaultVideoEncoderFactoryTest {
|
|||||||
assertEquals(5, videoCodecs.length);
|
assertEquals(5, videoCodecs.length);
|
||||||
assertEquals("VP8", videoCodecs[0].name);
|
assertEquals("VP8", videoCodecs[0].name);
|
||||||
assertEquals("VP9", videoCodecs[1].name);
|
assertEquals("VP9", videoCodecs[1].name);
|
||||||
assertEquals("AV1X", videoCodecs[2].name);
|
assertEquals("AV1", videoCodecs[2].name);
|
||||||
assertEquals("H264", videoCodecs[3].name);
|
assertEquals("H264", videoCodecs[3].name);
|
||||||
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
||||||
assertEquals("H264", videoCodecs[4].name);
|
assertEquals("H264", videoCodecs[4].name);
|
||||||
@ -89,7 +89,7 @@ public class DefaultVideoEncoderFactoryTest {
|
|||||||
assertEquals(4, videoCodecs.length);
|
assertEquals(4, videoCodecs.length);
|
||||||
assertEquals("VP8", videoCodecs[0].name);
|
assertEquals("VP8", videoCodecs[0].name);
|
||||||
assertEquals("VP9", videoCodecs[1].name);
|
assertEquals("VP9", videoCodecs[1].name);
|
||||||
assertEquals("AV1X", videoCodecs[2].name);
|
assertEquals("AV1", videoCodecs[2].name);
|
||||||
assertEquals("H264", videoCodecs[3].name);
|
assertEquals("H264", videoCodecs[3].name);
|
||||||
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
||||||
}
|
}
|
||||||
@ -103,7 +103,7 @@ public class DefaultVideoEncoderFactoryTest {
|
|||||||
assertEquals(5, videoCodecs.length);
|
assertEquals(5, videoCodecs.length);
|
||||||
assertEquals("VP8", videoCodecs[0].name);
|
assertEquals("VP8", videoCodecs[0].name);
|
||||||
assertEquals("VP9", videoCodecs[1].name);
|
assertEquals("VP9", videoCodecs[1].name);
|
||||||
assertEquals("AV1X", videoCodecs[2].name);
|
assertEquals("AV1", videoCodecs[2].name);
|
||||||
assertEquals("H264", videoCodecs[3].name);
|
assertEquals("H264", videoCodecs[3].name);
|
||||||
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
assertEquals("42e01f", videoCodecs[3].params.get("profile-level-id"));
|
||||||
assertEquals("H264", videoCodecs[4].name);
|
assertEquals("H264", videoCodecs[4].name);
|
||||||
|
@ -46,7 +46,7 @@ class MediaCodecVideoDecoderFactory implements VideoDecoderFactory {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public VideoDecoder createDecoder(VideoCodecInfo codecType) {
|
public VideoDecoder createDecoder(VideoCodecInfo codecType) {
|
||||||
VideoCodecMimeType type = VideoCodecMimeType.fromSdpCodecName(codecType.getName());
|
VideoCodecMimeType type = VideoCodecMimeType.valueOf(codecType.getName());
|
||||||
MediaCodecInfo info = findCodecForType(type);
|
MediaCodecInfo info = findCodecForType(type);
|
||||||
|
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
@ -68,7 +68,7 @@ class MediaCodecVideoDecoderFactory implements VideoDecoderFactory {
|
|||||||
VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
|
VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
|
||||||
MediaCodecInfo codec = findCodecForType(type);
|
MediaCodecInfo codec = findCodecForType(type);
|
||||||
if (codec != null) {
|
if (codec != null) {
|
||||||
String name = type.toSdpCodecName();
|
String name = type.name();
|
||||||
if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
|
if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
|
||||||
supportedCodecInfos.add(new VideoCodecInfo(
|
supportedCodecInfos.add(new VideoCodecInfo(
|
||||||
name, MediaCodecUtils.getCodecProperties(type, /* highProfile= */ true)));
|
name, MediaCodecUtils.getCodecProperties(type, /* highProfile= */ true)));
|
||||||
@ -110,7 +110,6 @@ class MediaCodecVideoDecoderFactory implements VideoDecoderFactory {
|
|||||||
|
|
||||||
// Returns true if the given MediaCodecInfo indicates a supported encoder for the given type.
|
// Returns true if the given MediaCodecInfo indicates a supported encoder for the given type.
|
||||||
private boolean isSupportedCodec(MediaCodecInfo info, VideoCodecMimeType type) {
|
private boolean isSupportedCodec(MediaCodecInfo info, VideoCodecMimeType type) {
|
||||||
String name = info.getName();
|
|
||||||
if (!MediaCodecUtils.codecSupportsType(info, type)) {
|
if (!MediaCodecUtils.codecSupportsType(info, type)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,4 @@ enum VideoCodecMimeType {
|
|||||||
String mimeType() {
|
String mimeType() {
|
||||||
return mimeType;
|
return mimeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VideoCodecMimeType fromSdpCodecName(String codecName) {
|
|
||||||
return codecName.equals("AV1X") ? AV1 : valueOf(codecName);
|
|
||||||
}
|
|
||||||
|
|
||||||
String toSdpCodecName() {
|
|
||||||
return this == AV1 ? "AV1X" : name();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user