diff options
Diffstat (limited to 'media-video/ffmpeg-chromium/files')
3 files changed, 104 insertions, 0 deletions
diff --git a/media-video/ffmpeg-chromium/files/chromium.patch b/media-video/ffmpeg-chromium/files/chromium.patch new file mode 100644 index 0000000..e24ea84 --- /dev/null +++ b/media-video/ffmpeg-chromium/files/chromium.patch @@ -0,0 +1,41 @@ +Allow libffmpeg to be built for Chromium-based browsers +https://patchwork.ffmpeg.org/patch/4500/ + +NOTE: This patch lacks the Makefile include line. We append it +manually instead to make patching across different versions easier. + +diff --git a/ffbuild/libffmpeg.mak b/ffbuild/libffmpeg.mak +new file mode 100644 +index 0000000..992cf3c +--- /dev/null ++++ b/ffbuild/libffmpeg.mak +@@ -0,0 +1,27 @@ ++LIBFFMPEG = $(SLIBPREF)ffmpeg$(SLIBSUF) ++LIBFFMPEG_LINK = $(LD) -shared -Wl,-soname,$(LIBFFMPEG) -Wl,-Bsymbolic -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--gc-sections $(LDFLAGS) $(LDLIBFLAGS) -o $(LIBFFMPEG) ++ ++ifeq ($(CONFIG_SHARED),yes) ++LIBFFMPEG_DEPS = libavcodec/$(SLIBPREF)avcodec$(SLIBSUF) libavformat/$(SLIBPREF)avformat$(SLIBSUF) libavutil/$(SLIBPREF)avutil$(SLIBSUF) ++else ++LIBFFMPEG_DEPS = libavcodec/$(LIBPREF)avcodec$(LIBSUF) libavformat/$(LIBPREF)avformat$(LIBSUF) libavutil/$(LIBPREF)avutil$(LIBSUF) ++endif ++ ++$(LIBFFMPEG): $(LIBFFMPEG_DEPS) ++ifeq ($(CONFIG_SHARED),yes) ++ $(LIBFFMPEG_LINK) -Wl,--no-as-needed -lavcodec -lavformat -lavutil ++else ++ $(LIBFFMPEG_LINK) -Wl,--whole-archive $^ -Wl,--no-whole-archive $(EXTRALIBS-avcodec) $(EXTRALIBS-avformat) $(EXTRALIBS-avutil) ++endif ++ ++libffmpeg: $(LIBFFMPEG) ++ ++install-libffmpeg: $(LIBFFMPEG) ++ $(Q)mkdir -p "$(SHLIBDIR)/chromium" ++ $(INSTALL) -m 755 $< "$(SHLIBDIR)/chromium/$<.$(SLOT)" ++ $(STRIP) "$(SHLIBDIR)/chromium/$<.$(SLOT)" ++ ++uninstall-libffmpeg: ++ $(RM) "$(SHLIBDIR)/chromium/$(LIBFFMPEG).$(SLOT)" ++ ++.PHONY: libffmpeg install-libffmpeg uninstall-libffmpeg +-- +2.13.1 diff --git a/media-video/ffmpeg-chromium/files/ffmpeg-chromium-100.patch b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-100.patch new file mode 100644 index 0000000..e0aa000 --- /dev/null +++ b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-100.patch @@ -0,0 +1,27 @@ +diff -Naur a/configure b/configure +--- a/configure 2022-03-22 10:20:35.000000000 +0000 ++++ b/configure 2022-03-23 09:17:18.914615584 +0000 +@@ -6600,15 +6600,14 @@ + { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } + enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" + enabled libopenvino && require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engine_c_api +-# Chromium uses a built in copy of libopus that is not visible to pkg-config. +-# enabled libopus && { +-# enabled libopus_decoder && { +-# require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create +-# } +-# enabled libopus_encoder && { +-# require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create +-# } +-# } ++enabled libopus && { ++ enabled libopus_decoder && { ++ require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create ++ } ++ enabled libopus_encoder && { ++ require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create ++ } ++} + enabled libplacebo && require_pkg_config libplacebo "libplacebo >= 4.192.0" libplacebo/vulkan.h pl_vulkan_create + enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new + enabled librabbitmq && require_pkg_config librabbitmq "librabbitmq >= 0.7.1" amqp.h amqp_new_connection diff --git a/media-video/ffmpeg-chromium/files/ffmpeg-chromium-vk-headers.patch b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-vk-headers.patch new file mode 100644 index 0000000..f3c3c01 --- /dev/null +++ b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-vk-headers.patch @@ -0,0 +1,36 @@ +From eb0455d64690eed0068e5cb202f72ecdf899837c Mon Sep 17 00:00:00 2001 +From: Lynne <dev@lynne.ee> +Date: Sun, 25 Dec 2022 01:03:30 +0100 +Subject: [PATCH] hwcontext_vulkan: remove optional encode/decode extensions + from the list + +They're not currently used, so they don't need to be there. +Vulkan stabilized the decode extensions less than a week ago, and their +name prefixes were changed from EXT to KHR. It's a bit too soon to be +depending on it, so rather than bumping, just remove these for now. +--- + libavutil/hwcontext_vulkan.c | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c +index f1db1c7291..2a9b5f4aac 100644 +--- a/libavutil/hwcontext_vulkan.c ++++ b/libavutil/hwcontext_vulkan.c +@@ -358,14 +358,6 @@ static const VulkanOptExtension optional_device_exts[] = { + { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_MEMORY }, + { VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_SEM }, + #endif +- +- /* Video encoding/decoding */ +- { VK_KHR_VIDEO_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, +- { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, +- { VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, +- { VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, +- { VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, +- { VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, + }; + + /* Converts return values to strings */ +-- +2.39.1 + |
