You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/mediacodecdec: add AV1 decoding support
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
		
							
								
								
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -3156,6 +3156,8 @@ nvenc_deps_any="libdl LoadLibrary" | ||||
| aac_mf_encoder_deps="mediafoundation" | ||||
| ac3_mf_encoder_deps="mediafoundation" | ||||
| av1_cuvid_decoder_deps="cuvid CUVIDAV1PICPARAMS" | ||||
| av1_mediacodec_decoder_deps="mediacodec" | ||||
| av1_mediacodec_decoder_extralibs="-landroid" | ||||
| av1_nvenc_encoder_deps="nvenc NV_ENC_PIC_PARAMS_AV1" | ||||
| av1_nvenc_encoder_select="atsc_a53" | ||||
| h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m" | ||||
|   | ||||
| @@ -249,6 +249,7 @@ OBJS-$(CONFIG_AURA_DECODER)            += cyuv.o | ||||
| OBJS-$(CONFIG_AURA2_DECODER)           += aura.o | ||||
| OBJS-$(CONFIG_AV1_DECODER)             += av1dec.o | ||||
| OBJS-$(CONFIG_AV1_CUVID_DECODER)       += cuviddec.o | ||||
| OBJS-$(CONFIG_AV1_MEDIACODEC_DECODER)  += mediacodecdec.o | ||||
| OBJS-$(CONFIG_AV1_NVENC_ENCODER)       += nvenc_av1.o nvenc.o | ||||
| OBJS-$(CONFIG_AV1_QSV_ENCODER)         += qsvenc_av1.o | ||||
| OBJS-$(CONFIG_AVRN_DECODER)            += avrndec.o | ||||
|   | ||||
| @@ -828,6 +828,7 @@ extern const FFCodec ff_libaom_av1_decoder; | ||||
| /* hwaccel hooks only, so prefer external decoders */ | ||||
| extern const FFCodec ff_av1_decoder; | ||||
| extern const FFCodec ff_av1_cuvid_decoder; | ||||
| extern const FFCodec ff_av1_mediacodec_decoder; | ||||
| extern const FFCodec ff_av1_nvenc_encoder; | ||||
| extern const FFCodec ff_av1_qsv_decoder; | ||||
| extern const FFCodec ff_av1_qsv_encoder; | ||||
|   | ||||
| @@ -289,7 +289,8 @@ done: | ||||
| #if CONFIG_MPEG2_MEDIACODEC_DECODER || \ | ||||
|     CONFIG_MPEG4_MEDIACODEC_DECODER || \ | ||||
|     CONFIG_VP8_MEDIACODEC_DECODER   || \ | ||||
|     CONFIG_VP9_MEDIACODEC_DECODER | ||||
|     CONFIG_VP9_MEDIACODEC_DECODER   || \ | ||||
|     CONFIG_AV1_MEDIACODEC_DECODER | ||||
| static int common_set_extradata(AVCodecContext *avctx, FFAMediaFormat *format) | ||||
| { | ||||
|     int ret = 0; | ||||
| @@ -323,6 +324,15 @@ static av_cold int mediacodec_decode_init(AVCodecContext *avctx) | ||||
|     } | ||||
|  | ||||
|     switch (avctx->codec_id) { | ||||
| #if CONFIG_AV1_MEDIACODEC_DECODER | ||||
|     case AV_CODEC_ID_AV1: | ||||
|         codec_mime = "video/av01"; | ||||
|  | ||||
|         ret = common_set_extradata(avctx, format); | ||||
|         if (ret < 0) | ||||
|             goto done; | ||||
|         break; | ||||
| #endif | ||||
| #if CONFIG_H264_MEDIACODEC_DECODER | ||||
|     case AV_CODEC_ID_H264: | ||||
|         codec_mime = "video/avc"; | ||||
| @@ -591,3 +601,7 @@ DECLARE_MEDIACODEC_VDEC(vp8, "VP8", AV_CODEC_ID_VP8, NULL) | ||||
| #if CONFIG_VP9_MEDIACODEC_DECODER | ||||
| DECLARE_MEDIACODEC_VDEC(vp9, "VP9", AV_CODEC_ID_VP9, NULL) | ||||
| #endif | ||||
|  | ||||
| #if CONFIG_AV1_MEDIACODEC_DECODER | ||||
| DECLARE_MEDIACODEC_VDEC(av1, "AV1", AV_CODEC_ID_AV1, NULL) | ||||
| #endif | ||||
|   | ||||
| @@ -29,8 +29,8 @@ | ||||
|  | ||||
| #include "version_major.h" | ||||
|  | ||||
| #define LIBAVCODEC_VERSION_MINOR  55 | ||||
| #define LIBAVCODEC_VERSION_MICRO 103 | ||||
| #define LIBAVCODEC_VERSION_MINOR  56 | ||||
| #define LIBAVCODEC_VERSION_MICRO 100 | ||||
|  | ||||
| #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
|                                                LIBAVCODEC_VERSION_MINOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user