aboutsummaryrefslogtreecommitdiff
path: root/sdk/android/src/java/org/webrtc
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/android/src/java/org/webrtc')
-rw-r--r--sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java2
-rw-r--r--sdk/android/src/java/org/webrtc/MediaCodecUtils.java1
-rw-r--r--sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java8
-rw-r--r--sdk/android/src/java/org/webrtc/VideoCodecMimeType.java11
4 files changed, 16 insertions, 6 deletions
diff --git a/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java b/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java
index f6d98bd14f..f116fefc83 100644
--- a/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java
+++ b/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java
@@ -169,7 +169,7 @@ class HardwareVideoEncoder implements VideoEncoder {
* intervals, and bitrateAdjuster.
*
* @param codecName the hardware codec implementation to use
- * @param codecType the type of the given video codec (eg. VP8, VP9, or H264)
+ * @param codecType the type of the given video codec (eg. VP8, VP9, H264 or AV1)
* @param surfaceColorFormat color format for surface mode or null if not available
* @param yuvColorFormat color format for bytebuffer mode
* @param keyFrameIntervalSec interval in seconds between key frames; used to initialize the codec
diff --git a/sdk/android/src/java/org/webrtc/MediaCodecUtils.java b/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
index cd43098015..b634fb34f5 100644
--- a/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
+++ b/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
@@ -91,6 +91,7 @@ class MediaCodecUtils {
switch (type) {
case VP8:
case VP9:
+ case AV1:
return new HashMap<String, String>();
case H264:
return H264Utils.getDefaultH264Params(highProfile);
diff --git a/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java b/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
index 036aca5822..5a1d63e1c5 100644
--- a/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
+++ b/sdk/android/src/java/org/webrtc/MediaCodecVideoDecoderFactory.java
@@ -46,7 +46,7 @@ class MediaCodecVideoDecoderFactory implements VideoDecoderFactory {
@Nullable
@Override
public VideoDecoder createDecoder(VideoCodecInfo codecType) {
- VideoCodecMimeType type = VideoCodecMimeType.valueOf(codecType.getName());
+ VideoCodecMimeType type = VideoCodecMimeType.fromSdpCodecName(codecType.getName());
MediaCodecInfo info = findCodecForType(type);
if (info == null) {
@@ -64,11 +64,11 @@ class MediaCodecVideoDecoderFactory implements VideoDecoderFactory {
List<VideoCodecInfo> supportedCodecInfos = new ArrayList<VideoCodecInfo>();
// Generate a list of supported codecs in order of preference:
// VP8, VP9, H264 (high profile), and H264 (baseline profile).
- for (VideoCodecMimeType type : new VideoCodecMimeType[] {
- VideoCodecMimeType.VP8, VideoCodecMimeType.VP9, VideoCodecMimeType.H264}) {
+ for (VideoCodecMimeType type : new VideoCodecMimeType[] {VideoCodecMimeType.VP8,
+ VideoCodecMimeType.VP9, VideoCodecMimeType.H264, VideoCodecMimeType.AV1}) {
MediaCodecInfo codec = findCodecForType(type);
if (codec != null) {
- String name = type.name();
+ String name = type.toSdpCodecName();
if (type == VideoCodecMimeType.H264 && isH264HighProfileSupported(codec)) {
supportedCodecInfos.add(new VideoCodecInfo(
name, MediaCodecUtils.getCodecProperties(type, /* highProfile= */ true)));
diff --git a/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java b/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
index f27a9176cf..93a9286165 100644
--- a/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
+++ b/sdk/android/src/java/org/webrtc/VideoCodecMimeType.java
@@ -14,7 +14,8 @@ package org.webrtc;
enum VideoCodecMimeType {
VP8("video/x-vnd.on2.vp8"),
VP9("video/x-vnd.on2.vp9"),
- H264("video/avc");
+ H264("video/avc"),
+ AV1("video/av01");
private final String mimeType;
@@ -25,4 +26,12 @@ enum VideoCodecMimeType {
String mimeType() {
return mimeType;
}
+
+ static VideoCodecMimeType fromSdpCodecName(String codecName) {
+ return codecName.equals("AV1X") ? AV1 : valueOf(codecName);
+ }
+
+ String toSdpCodecName() {
+ return this == AV1 ? "AV1X" : name();
+ }
}