commit 28720f05016d6f5967ef55d53d61d348139e4cd9
parent 654d670b05e501f7772fea1a4ac7732445406a66
Author: Andrew Osmond <aosmond@gmail.com>
Date: Tue, 23 Dec 2025 23:03:05 +0000
Bug 2005011 - Part 8. Expose MediaCodec encoder configurations on ffvpx. r=media-playback-reviewers,padenot
This was missed in the initial integration and was breaking WebRTC.
Differential Revision: https://phabricator.services.mozilla.com/D275726
Diffstat:
4 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/media/ffvpx/config_components_audio_only.h b/media/ffvpx/config_components_audio_only.h
@@ -607,6 +607,7 @@
#define CONFIG_APNG_ENCODER 0
#define CONFIG_ASV1_ENCODER 0
#define CONFIG_ASV2_ENCODER 0
+#define CONFIG_AV1_MEDIACODEC_ENCODER 0
#define CONFIG_AVRP_ENCODER 0
#define CONFIG_AVUI_ENCODER 0
#define CONFIG_AYUV_ENCODER 0
@@ -813,6 +814,7 @@
#define CONFIG_H263_V4L2M2M_ENCODER 0
#define CONFIG_LIBOPENH264_ENCODER 0
#define CONFIG_H264_AMF_ENCODER 0
+#define CONFIG_H264_MEDIACODEC_ENCODER 0
#define CONFIG_H264_MF_ENCODER 0
#define CONFIG_H264_NVENC_ENCODER 0
#define CONFIG_H264_OMX_ENCODER 0
@@ -821,6 +823,7 @@
#define CONFIG_H264_VAAPI_ENCODER 0
#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0
#define CONFIG_HEVC_AMF_ENCODER 0
+#define CONFIG_HEVC_MEDIACODEC_ENCODER 0
#define CONFIG_HEVC_MF_ENCODER 0
#define CONFIG_HEVC_NVENC_ENCODER 0
#define CONFIG_HEVC_QSV_ENCODER 0
@@ -834,10 +837,13 @@
#define CONFIG_MPEG2_QSV_ENCODER 0
#define CONFIG_MPEG2_VAAPI_ENCODER 0
#define CONFIG_MPEG4_OMX_ENCODER 0
+#define CONFIG_MPEG4_MEDIACODEC_ENCODER 0
#define CONFIG_MPEG4_V4L2M2M_ENCODER 0
#define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0
+#define CONFIG_VP8_MEDIACODEC_ENCODER 0
#define CONFIG_VP8_V4L2M2M_ENCODER 0
#define CONFIG_VP8_VAAPI_ENCODER 0
+#define CONFIG_VP9_MEDIACODEC_ENCODER 0
#define CONFIG_VP9_VAAPI_ENCODER 0
#define CONFIG_VP9_QSV_ENCODER 0
#define CONFIG_AV1_D3D11VA_HWACCEL 0
diff --git a/media/ffvpx/config_components_audio_video.h b/media/ffvpx/config_components_audio_video.h
@@ -660,6 +660,7 @@
#define CONFIG_MPEG1VIDEO_ENCODER 0
#define CONFIG_MPEG2VIDEO_ENCODER 0
#define CONFIG_MPEG4_ENCODER 0
+#define CONFIG_MPEG4_MEDIACODEC_ENCODER 0
#define CONFIG_MSMPEG4V2_ENCODER 0
#define CONFIG_MSMPEG4V3_ENCODER 0
#define CONFIG_MSVIDEO1_ENCODER 0
@@ -834,6 +835,7 @@
#define CONFIG_AAC_MF_ENCODER 0
#define CONFIG_AC3_MF_ENCODER 0
#define CONFIG_H263_V4L2M2M_ENCODER 0
+#define CONFIG_AV1_MEDIACODEC_ENCODER 0
#define CONFIG_AV1_NVENC_ENCODER 0
#define CONFIG_AV1_QSV_ENCODER 0
#define CONFIG_AV1_AMF_ENCODER 0
@@ -863,8 +865,10 @@
#define CONFIG_MPEG4_OMX_ENCODER 0
#define CONFIG_MPEG4_V4L2M2M_ENCODER 0
#define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0
+#define CONFIG_VP8_MEDIACODEC_ENCODER 0
#define CONFIG_VP8_V4L2M2M_ENCODER 0
#define CONFIG_VP8_VAAPI_ENCODER 0
+#define CONFIG_VP9_MEDIACODEC_ENCODER 0
#define CONFIG_VP9_VAAPI_ENCODER 0
#define CONFIG_VP9_QSV_ENCODER 0
#define CONFIG_VNULL_ENCODER 0
diff --git a/media/ffvpx/config_override.h b/media/ffvpx/config_override.h
@@ -76,8 +76,10 @@
#undef CONFIG_VP9_MEDIACODEC_DECODER
#undef CONFIG_AV1_MEDIACODEC_DECODER
#undef CONFIG_H264_MEDIACODEC_ENCODER
+#undef CONFIG_HEVC_MEDIACODEC_ENCODER
#undef CONFIG_VP8_MEDIACODEC_ENCODER
#undef CONFIG_VP9_MEDIACODEC_ENCODER
+#undef CONFIG_AV1_MEDIACODEC_ENCODER
#if defined (MOZ_WIDGET_ANDROID) && !defined(MOZ_FFVPX_AUDIOONLY)
#define CONFIG_H264_MEDIACODEC_DECODER 1
@@ -86,8 +88,10 @@
#define CONFIG_VP9_MEDIACODEC_DECODER 1
#define CONFIG_AV1_MEDIACODEC_DECODER 1
#define CONFIG_H264_MEDIACODEC_ENCODER 1
+ #define CONFIG_HEVC_MEDIACODEC_ENCODER 1
#define CONFIG_VP8_MEDIACODEC_ENCODER 1
#define CONFIG_VP9_MEDIACODEC_ENCODER 1
+ #define CONFIG_AV1_MEDIACODEC_ENCODER 1
#else
#define CONFIG_H264_MEDIACODEC_DECODER 0
#define CONFIG_HEVC_MEDIACODEC_DECODER 0
@@ -95,8 +99,10 @@
#define CONFIG_VP9_MEDIACODEC_DECODER 0
#define CONFIG_AV1_MEDIACODEC_DECODER 0
#define CONFIG_H264_MEDIACODEC_ENCODER 0
+ #define CONFIG_HEVC_MEDIACODEC_ENCODER 0
#define CONFIG_VP8_MEDIACODEC_ENCODER 0
#define CONFIG_VP9_MEDIACODEC_ENCODER 0
+ #define CONFIG_AV1_MEDIACODEC_ENCODER 0
#endif
#define CONFIG_H264_MEDIACODEC_DECODER_EXTRADATA 0
diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_list.c
@@ -83,4 +83,19 @@ static const FFCodec * const codec_list[] = {
#if CONFIG_HEVC_MEDIACODEC_DECODER
&ff_hevc_mediacodec_decoder,
#endif
+#if CONFIG_AV1_MEDIACODEC_ENCODER
+ &ff_av1_mediacodec_encoder,
+#endif
+#if CONFIG_VP8_MEDIACODEC_ENCODER
+ &ff_vp8_mediacodec_encoder,
+#endif
+#if CONFIG_VP9_MEDIACODEC_ENCODER
+ &ff_vp9_mediacodec_encoder,
+#endif
+#if CONFIG_H264_MEDIACODEC_ENCODER
+ &ff_h264_mediacodec_encoder,
+#endif
+#if CONFIG_HEVC_MEDIACODEC_ENCODER
+ &ff_hevc_mediacodec_encoder,
+#endif
NULL };