summaryrefslogtreecommitdiffstats
path: root/media/ffvpx/README_MOZILLA
diff options
context:
space:
mode:
Diffstat (limited to 'media/ffvpx/README_MOZILLA')
-rw-r--r--media/ffvpx/README_MOZILLA60
1 files changed, 60 insertions, 0 deletions
diff --git a/media/ffvpx/README_MOZILLA b/media/ffvpx/README_MOZILLA
new file mode 100644
index 0000000000..1049d6da67
--- /dev/null
+++ b/media/ffvpx/README_MOZILLA
@@ -0,0 +1,60 @@
+This directory contains files used in gecko builds from FFmpeg
+(http://ffmpeg.org). The current files are from FFmpeg as of
+revision n4.2.2-1-g19bfd72126
+git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
+git checkout n4.2.2-1-g19bfd72126
+
+All source files match their path from the library's source archive.
+
+Currently, we only use the vp8, vp9, mp3, and flac portion of the library. If
+this changes, configuration files will most likely need to be updated.
+
+AVX2 must be disabled on Linux 32 bits due to the use of yasm 1.1 on the build bots.
+Once yasm is upgraded to 1.2 or later, AVX2 code could be re-enabled.
+Add --disable-avx2 to configure on those platforms.
+
+configuration files were generated as follow using the configure script:
+ ./configure --disable-all --enable-avcodec --enable-decoder=vp8,vp9,mp3,flac \
+ --enable-parser=vp8,vp9 --disable-static --enable-shared \
+ --disable-autodetect
+config*:
+replace: /HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d
+# sed -i bak -E '/HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d' config.h
+
+config_unix32.h:
+add to configure command: --disable-asm --disable-x86asm --cc='clang -m32'
+
+config_android32.h: Only mp3 and flac are enabled on this platform.
+./configure --disable-all --enable-avcodec --enable-decoder=mp3,flac \
+ --disable-static --enable-shared --disable-autodetect \
+ --enable-small --target-os=linux --arch=arm --enable-cross-compile \
+ --cc=$HOME/.mozbuild/android-ndk-r20/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang
+
+config_unix32.h/config_unix64.h/config_unix64.asm:
+replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0
+
+config_win{32|64}.{h|asm}:
+add to configure command: --toolchain=msvc
+
+config_aarch64_win64.h: You will need to install cpp (either using msys or wsl)
+./configure --disable-all --enable-avcodec --enable-decoder=vp8,vp9,mp3,flac \
+ --enable-parser=vp8,vp9 --disable-static --enable-shared \
+ --disable-autodetect --toolchain=msvc --enable-cross-compile \
+ --target-os=win32 --arch=arm64
+
+Regenerate defaults_disabled.{h,asm} with:
+$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS|BSF) 0" config.h | sort -d -u > ~/Work/Mozilla/mozilla-central/media/ffvpx/defaults_disabled.h
+$ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL|PROTOCOL|ENCODERS|DECODERS|HWACCELS|INDEVS|OUTDEVS|FILTERS|DEMUXERS|MUXERS|PROTOCOLS|BSF) 0" config.asm | sort -d -u > ~/Work/Mozilla/mozilla-central/media/ffvpx/defaults_disabled.asm
+
+The GNU comm utility is a useful tool to compare and extract only the changes.
+
+To update the source tree, perform a diff on the files listed in FILES.
+The diffs should typically apply to the ffvpx tree.
+e.g. something like this would do:
+Run in the ffmpeg original tree:
+$ for i in `cat $PATH_CENTRAL/media/ffvpx/FILES`; do git diff $REV_LASTSYNC HEAD >> patch.diff; done
+Then apply patch.diff on the ffvpx tree.
+
+Compilation will reveal if any files are missing.
+
+Apply linux-vaapi-build.patch patch to enable build VA-API support for Linux.