diff options
Diffstat (limited to 'D139698.diff')
-rw-r--r-- | D139698.diff | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/D139698.diff b/D139698.diff new file mode 100644 index 0000000..7bf7af9 --- /dev/null +++ b/D139698.diff @@ -0,0 +1,191 @@ +diff --git a/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp b/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp +--- a/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp ++++ b/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp +@@ -64,14 +64,16 @@ + AV_FUNC_56 = 1 << 3, + AV_FUNC_57 = 1 << 4, + AV_FUNC_58 = 1 << 5, ++ AV_FUNC_59 = 1 << 6, + 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, + AV_FUNC_AVUTIL_56 = AV_FUNC_56 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_57 = AV_FUNC_57 | AV_FUNC_AVUTIL_MASK, + AV_FUNC_AVUTIL_58 = AV_FUNC_58 | AV_FUNC_AVUTIL_MASK, ++ AV_FUNC_AVUTIL_59 = AV_FUNC_59 | 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_57 | AV_FUNC_58 | AV_FUNC_59, + AV_FUNC_AVUTIL_ALL = AV_FUNC_AVCODEC_ALL | AV_FUNC_AVUTIL_MASK + }; + +@@ -94,6 +96,9 @@ + case 58: + version = AV_FUNC_58; + break; ++ case 59: ++ version = AV_FUNC_59; ++ break; + default: + FFMPEG_LOG("Unknown avcodec version"); + Unlink(); +@@ -128,15 +133,19 @@ + : LinkResult::MissingLibAVFunction; \ + } + +- AV_FUNC(av_lockmgr_register, AV_FUNC_AVCODEC_ALL) ++ 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_decode_audio4, AV_FUNC_AVCODEC_ALL) +- AV_FUNC(avcodec_decode_video2, AV_FUNC_AVCODEC_ALL) ++ 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_flush_buffers, AV_FUNC_AVCODEC_ALL) + AV_FUNC(avcodec_open2, AV_FUNC_AVCODEC_ALL) +- AV_FUNC(avcodec_register_all, AV_FUNC_AVCODEC_ALL) ++ AV_FUNC(avcodec_register_all, AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | ++ AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58) + AV_FUNC(av_init_packet, AV_FUNC_AVCODEC_ALL) + AV_FUNC(av_parser_init, AV_FUNC_AVCODEC_ALL) + AV_FUNC(av_parser_close, AV_FUNC_AVCODEC_ALL) +@@ -145,49 +154,56 @@ + AV_FUNC(avcodec_alloc_frame, (AV_FUNC_53 | AV_FUNC_54)) + 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(avcodec_receive_frame, AV_FUNC_58) ++ AV_FUNC(avcodec_send_packet, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC(avcodec_receive_frame, AV_FUNC_58 | AV_FUNC_59) + AV_FUNC(avcodec_default_get_buffer2, +- (AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58)) ++ (AV_FUNC_55 | AV_FUNC_56 | AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59)) + AV_FUNC_OPTION(av_rdft_init, AV_FUNC_AVCODEC_ALL) + AV_FUNC_OPTION(av_rdft_calc, AV_FUNC_AVCODEC_ALL) + AV_FUNC_OPTION(av_rdft_end, AV_FUNC_AVCODEC_ALL) + AV_FUNC(av_log_set_level, AV_FUNC_AVUTIL_ALL) + AV_FUNC(av_malloc, AV_FUNC_AVUTIL_ALL) + AV_FUNC(av_freep, AV_FUNC_AVUTIL_ALL) +- AV_FUNC(av_frame_alloc, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | +- AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) +- AV_FUNC(av_frame_free, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | +- AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) +- AV_FUNC(av_frame_unref, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | +- AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) ++ 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(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(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(av_image_check_size, AV_FUNC_AVUTIL_ALL) + AV_FUNC(av_image_get_buffer_size, AV_FUNC_AVUTIL_ALL) +- AV_FUNC_OPTION(av_buffer_get_opaque, +- (AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) +- AV_FUNC(av_buffer_create, (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | +- AV_FUNC_AVUTIL_57 | AV_FUNC_AVUTIL_58)) ++ 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(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_OPTION(av_frame_get_colorspace, AV_FUNC_AVUTIL_ALL) + AV_FUNC_OPTION(av_frame_get_color_range, AV_FUNC_AVUTIL_ALL) + + #ifdef MOZ_WAYLAND +- AV_FUNC_OPTION_SILENT(avcodec_get_hw_config, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_codec_iterate, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_codec_is_decoder, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_init, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_alloc, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwdevice_hwconfig_alloc, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwdevice_get_hwframe_constraints, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwframe_constraints_free, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_buffer_ref, AV_FUNC_AVUTIL_58) +- AV_FUNC_OPTION_SILENT(av_buffer_unref, AV_FUNC_AVUTIL_58) +- AV_FUNC_OPTION_SILENT(av_hwframe_transfer_get_formats, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_create_derived, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_hwframe_ctx_alloc, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_dict_set, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_dict_free, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(avcodec_get_name, AV_FUNC_58) +- AV_FUNC_OPTION_SILENT(av_get_pix_fmt_string, AV_FUNC_AVUTIL_58) ++ AV_FUNC_OPTION_SILENT(avcodec_get_hw_config, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_codec_iterate, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_codec_is_decoder, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_init, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_alloc, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwdevice_hwconfig_alloc, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwdevice_get_hwframe_constraints, ++ AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwframe_constraints_free, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_buffer_ref, AV_FUNC_AVUTIL_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_buffer_unref, AV_FUNC_AVUTIL_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwframe_transfer_get_formats, ++ AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwdevice_ctx_create_derived, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_hwframe_ctx_alloc, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_dict_set, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_dict_free, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(avcodec_get_name, AV_FUNC_58 | AV_FUNC_59) ++ AV_FUNC_OPTION_SILENT(av_get_pix_fmt_string, ++ AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59) + #endif + #undef AV_FUNC + #undef AV_FUNC_OPTION +@@ -219,7 +235,9 @@ + # undef VAD_FUNC_OPTION_SILENT + #endif + +- avcodec_register_all(); ++ if (avcodec_register_all) { ++ avcodec_register_all(); ++ } + if (MOZ_LOG_TEST(sPDMLog, LogLevel::Debug)) { + av_log_set_level(AV_LOG_DEBUG); + } else if (MOZ_LOG_TEST(sPDMLog, LogLevel::Info)) { +diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp +--- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp ++++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp +@@ -27,6 +27,7 @@ + static const char* sLibs[] = { + // clang-format off + #if defined(XP_DARWIN) ++ "libavcodec.59.dylib", + "libavcodec.58.dylib", + "libavcodec.57.dylib", + "libavcodec.56.dylib", +@@ -34,6 +35,7 @@ + "libavcodec.54.dylib", + "libavcodec.53.dylib", + #else ++ "libavcodec.so.59", + "libavcodec.so.58", + "libavcodec-ffmpeg.so.58", + "libavcodec-ffmpeg.so.57", +@@ -76,7 +78,6 @@ + sLinkStatusLibraryName = lib; + return true; + case FFmpegLibWrapper::LinkResult::NoProvidedLib: +- MOZ_ASSERT_UNREACHABLE("Incorrectly-setup sLibAV"); + break; + case FFmpegLibWrapper::LinkResult::NoAVCodecVersion: + if (sLinkStatus > LinkStatus_INVALID_CANDIDATE) { +@@ -152,6 +153,9 @@ + case 58: + module = FFmpegDecoderModule<58>::Create(&sLibAV); + break; ++ case 59: ++ module = FFmpegDecoderModule<59>::Create(&sLibAV); ++ break; + default: + module = nullptr; + } + |