aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/mediacodec_wrapper.c
diff options
context:
space:
mode:
authorSamuel Mira <samuel.mira@qt.io>2023-04-25 19:37:05 +0300
committerZhao Zhili <zhilizhao@tencent.com>2023-05-17 19:19:51 +0800
commitacd37fd5667ae1f0ed988ed45d7af3a41d766d80 (patch)
tree78950c75a037b10e6a9f0f4c7952f00d331db54e /libavcodec/mediacodec_wrapper.c
parent6b2ae90411ce8f6f90269655bf912355121c0749 (diff)
downloadffmpeg-acd37fd5667ae1f0ed988ed45d7af3a41d766d80.tar.gz
avcodec/mediacodec: Add AV1 encoder
Connected FFmpeg to Mediacodec AV1 encoder Signed-off-by: Samuel Mira <samuel.mira@qt.io> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavcodec/mediacodec_wrapper.c')
-rw-r--r--libavcodec/mediacodec_wrapper.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/libavcodec/mediacodec_wrapper.c b/libavcodec/mediacodec_wrapper.c
index 1c29bb7406..eb69ad7eaf 100644
--- a/libavcodec/mediacodec_wrapper.c
+++ b/libavcodec/mediacodec_wrapper.c
@@ -345,6 +345,12 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx)
static const int MPEG4ProfileAdvancedScalable = 0x4000;
static const int MPEG4ProfileAdvancedSimple = 0x8000;
+
+ static const int AV1ProfileMain8 = 0x1;
+ static const int AV1ProfileMain10 = 0x2;
+ static const int AV1ProfileMain10HDR10 = 0x1000;
+ static const int AV1ProfileMain10HDR10Plus = 0x2000;
+
// Unused yet.
(void)AVCProfileConstrainedHigh;
(void)HEVCProfileMain10HDR10;
@@ -353,6 +359,9 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx)
(void)VP9Profile3HDR;
(void)VP9Profile2HDR10Plus;
(void)VP9Profile3HDR10Plus;
+ (void)AV1ProfileMain10;
+ (void)AV1ProfileMain10HDR10;
+ (void)AV1ProfileMain10HDR10Plus;
if (avctx->codec_id == AV_CODEC_ID_H264) {
switch(avctx->profile) {
@@ -436,6 +445,16 @@ int ff_AMediaCodecProfile_getProfileFromAVCodecContext(AVCodecContext *avctx)
default:
break;
}
+ } else if(avctx->codec_id == AV_CODEC_ID_AV1) {
+ switch (avctx->profile)
+ {
+ case FF_PROFILE_AV1_MAIN:
+ return AV1ProfileMain8;
+ case FF_PROFILE_AV1_HIGH:
+ case FF_PROFILE_AV1_PROFESSIONAL:
+ default:
+ break;
+ }
}
return -1;