commit 704e01bf9fe136a9f3e5f9b87d4bb137a4bdc848
parent 7e23c7c18013e4aecb5ec7c1987b4b0261be49b6
Author: Landry Breuil <landry@openbsd.org>
Date: Mon, 24 Nov 2025 15:38:13 +0000
Bug 1962139 - Adapt the macros/defines for function detection in ffmpeg8 r=media-playback-reviewers,alwu
avcodec_close() is the only function that was removed from the API
Differential Revision: https://phabricator.services.mozilla.com/D272253
Diffstat:
1 file changed, 87 insertions(+), 60 deletions(-)
diff --git a/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp b/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp
@@ -80,6 +80,7 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC_59 = 1 << 6,
AV_FUNC_60 = 1 << 7,
AV_FUNC_61 = 1 << 8,
+ AV_FUNC_62 = 1 << 9,
AV_FUNC_AVUTIL_53 = AV_FUNC_53 | AV_FUNC_AVUTIL_MASK,
AV_FUNC_AVUTIL_54 = AV_FUNC_54 | AV_FUNC_AVUTIL_MASK,
AV_FUNC_AVUTIL_55 = AV_FUNC_55 | AV_FUNC_AVUTIL_MASK,
@@ -89,9 +90,10 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC_AVUTIL_59 = AV_FUNC_59 | AV_FUNC_AVUTIL_MASK,
AV_FUNC_AVUTIL_60 = AV_FUNC_60 | AV_FUNC_AVUTIL_MASK,
AV_FUNC_AVUTIL_61 = AV_FUNC_61 | AV_FUNC_AVUTIL_MASK,
+ AV_FUNC_AVUTIL_62 = AV_FUNC_62 | AV_FUNC_AVUTIL_MASK,
AV_FUNC_AVCODEC_ALL = AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 |
AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
- AV_FUNC_61,
+ AV_FUNC_61 | AV_FUNC_62,
AV_FUNC_AVUTIL_ALL = AV_FUNC_AVCODEC_ALL | AV_FUNC_AVUTIL_MASK
};
@@ -123,6 +125,9 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
case 61:
version = AV_FUNC_61;
break;
+ case 62:
+ version = AV_FUNC_62;
+ break;
default:
FFMPEGV_LOG("Unknown avcodec version: %d", macro);
Unlink();
@@ -163,17 +168,20 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC(av_lockmgr_register, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 |
AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58)
AV_FUNC(avcodec_alloc_context3, AV_FUNC_AVCODEC_ALL)
- AV_FUNC(avcodec_close, AV_FUNC_AVCODEC_ALL)
+ AV_FUNC(avcodec_close, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 |
+ AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
+ AV_FUNC_61)
+
AV_FUNC(avcodec_decode_audio4, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 |
AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58)
AV_FUNC(avcodec_decode_video2, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 |
AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58)
AV_FUNC(avcodec_find_decoder, AV_FUNC_AVCODEC_ALL)
AV_FUNC(avcodec_find_decoder_by_name,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC(avcodec_find_encoder, AV_FUNC_AVCODEC_ALL)
AV_FUNC(avcodec_find_encoder_by_name,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC(avcodec_flush_buffers, AV_FUNC_AVCODEC_ALL)
AV_FUNC(avcodec_open2, AV_FUNC_AVCODEC_ALL)
AV_FUNC(avcodec_register_all, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 |
@@ -188,21 +196,22 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC(avcodec_get_frame_defaults, (AV_FUNC_53 | AV_FUNC_54))
AV_FUNC(avcodec_free_frame, AV_FUNC_54)
AV_FUNC(avcodec_send_packet,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC(avcodec_receive_packet,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC(avcodec_send_frame, AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC(avcodec_send_frame,
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC(avcodec_receive_frame,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC(avcodec_default_get_buffer2,
(AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 |
- AV_FUNC_60 | AV_FUNC_61))
- AV_FUNC(av_packet_alloc,
- (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61))
- AV_FUNC(av_packet_unref,
- (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61))
- AV_FUNC(av_packet_free,
- (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61))
+ AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62))
+ AV_FUNC(av_packet_alloc, (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
+ AV_FUNC_61 | AV_FUNC_62))
+ AV_FUNC(av_packet_unref, (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
+ AV_FUNC_61 | AV_FUNC_62))
+ AV_FUNC(av_packet_free, (AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
+ AV_FUNC_61 | AV_FUNC_62))
AV_FUNC(avcodec_descriptor_get, AV_FUNC_AVCODEC_ALL)
AV_FUNC(av_log_set_callback, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_log_set_level, AV_FUNC_AVUTIL_ALL)
@@ -211,41 +220,43 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC(av_frame_alloc,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_frame_clone,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_frame_free,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_frame_unref,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_frame_get_buffer,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_frame_make_writable,
(AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61))
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62))
AV_FUNC(av_image_check_size, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_image_get_buffer_size, AV_FUNC_AVUTIL_ALL)
AV_FUNC_OPTION(av_channel_layout_default,
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION(av_channel_layout_from_mask,
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
- AV_FUNC_OPTION(av_channel_layout_copy, AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62)
+ AV_FUNC_OPTION(av_channel_layout_copy,
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION(av_buffer_get_opaque,
(AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58 |
- AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61))
- AV_FUNC(
- av_buffer_create,
- (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
- AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 | AV_FUNC_61))
+ AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62))
+ AV_FUNC(av_buffer_create,
+ (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
+ AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
+ AV_FUNC_61 | AV_FUNC_62))
AV_FUNC_OPTION(av_frame_get_colorspace,
AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58)
@@ -253,58 +264,74 @@ FFmpegLibWrapper::LinkResult FFmpegLibWrapper::Link() {
AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
AV_FUNC_AVUTIL_58)
AV_FUNC(av_strerror, AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
AV_FUNC(av_get_sample_fmt_name, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_dict_set, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_dict_free, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_opt_set, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_opt_set_double, AV_FUNC_AVUTIL_ALL)
AV_FUNC(av_opt_set_int, AV_FUNC_AVUTIL_ALL)
- AV_FUNC(avcodec_free_context,
- AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(avcodec_get_hw_config,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_codec_is_decoder,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_codec_is_encoder,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_codec_iterate,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC(avcodec_free_context, AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 |
+ AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(avcodec_get_hw_config, AV_FUNC_58 | AV_FUNC_59 |
+ AV_FUNC_60 | AV_FUNC_61 |
+ AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(av_codec_is_decoder, AV_FUNC_58 | AV_FUNC_59 |
+ AV_FUNC_60 | AV_FUNC_61 |
+ AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(av_codec_is_encoder, AV_FUNC_58 | AV_FUNC_59 |
+ AV_FUNC_60 | AV_FUNC_61 |
+ AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(av_codec_iterate, AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 |
+ AV_FUNC_61 | AV_FUNC_62)
AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_init,
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_alloc,
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
- AV_FUNC_OPTION_SILENT(av_buffer_ref, AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
+ AV_FUNC_OPTION_SILENT(
+ av_buffer_ref, AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60 |
+ AV_FUNC_AVUTIL_61 | AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION_SILENT(av_buffer_unref, AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
AV_FUNC_AVUTIL_60 |
- AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION_SILENT(av_hwframe_ctx_alloc,
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
AV_FUNC_OPTION_SILENT(av_hwframe_ctx_init,
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
#ifdef MOZ_WIDGET_GTK
- AV_FUNC_OPTION_SILENT(av_hwdevice_hwconfig_alloc,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_hwdevice_get_hwframe_constraints,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_hwframe_constraints_free,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_hwframe_transfer_get_formats,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
- AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_create_derived,
- AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_OPTION_SILENT(av_hwdevice_hwconfig_alloc, AV_FUNC_58 | AV_FUNC_59 |
+ AV_FUNC_60 |
+ AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(
+ av_hwdevice_get_hwframe_constraints,
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(
+ av_hwframe_constraints_free,
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(
+ av_hwframe_transfer_get_formats,
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
+ AV_FUNC_OPTION_SILENT(
+ av_hwdevice_ctx_create_derived,
+ AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60 | AV_FUNC_61 | AV_FUNC_62)
AV_FUNC_OPTION_SILENT(avcodec_get_name, AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 |
- AV_FUNC_60 | AV_FUNC_61)
+ AV_FUNC_60 | AV_FUNC_61 |
+ AV_FUNC_62)
AV_FUNC_OPTION_SILENT(av_get_pix_fmt_string,
AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 |
- AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61)
+ AV_FUNC_AVUTIL_60 | AV_FUNC_AVUTIL_61 |
+ AV_FUNC_AVUTIL_62)
#endif
AV_FUNC_OPTION(av_tx_init, AV_FUNC_AVUTIL_ALL)