From 8b37a1bc306c1d5a3cc92e9dc04fb95d5d9a0298 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 26 Apr 2018 16:49:15 -0500 Subject: [ffvpx] Update ffvp9/ffvp8 to 3.4.2-release Structure of code was slightly modified so that it should be no longer necessary to re-generate the config_*.h files, greatly simplifying the resync process in the future. --- media/ffvpx/README_MCP | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 media/ffvpx/README_MCP (limited to 'media/ffvpx/README_MCP') diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP new file mode 100644 index 000000000..784e19da5 --- /dev/null +++ b/media/ffvpx/README_MCP @@ -0,0 +1,42 @@ +This directory contains files used in goanna builds from FFmpeg +(http://ffmpeg.org). The current files are from FFmpeg as of +Release 3.4.2 +All source files match their path from the library's source archive. + +Currently, we only use the vp8 and vp9 portion of the library, and only on x86 +based platforms. If this changes, configuration files will most likely +need to be updated. + +AVX2 must be disabled on Linux 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-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-parser=flac --enable-asm --enable-yasm + +config*: +replace: /HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d + +config_darwin32.h: +add to configure command: --disable-asm --disable-yasm --cc='clang -m32' + +config_unix32.h: +add to configure command: --disable-asm --disable-yasm --cc='clang -m32' +replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0/ and s/HAVE_MEMALIGN 1/HAVE_MEMALIGN 0/ and s/HAVE_POSIX_MEMALIGN 1/HAVE_POSIX_MEMALIGN 0/ + + +config_unix64.h/config_unix64.asm: +replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0 + +config_win32/64.h/asm: +add to configure command: --toolchain=msvc + +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) 0" config.h > ~/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) 0" config.asm > ~/Work/Mozilla/mozilla-central/media/ffvpx/defaults_disabled.asm + +All new decoders/muxers/encoders/... should be added in the list of dummy functions found in libavcodec/dummy_funcs.c +otherwise linkage will fail on Windows. On other platforms they are optimised out and aren't necessary. + +To update the source tree, the files listed in FILES should typically be able to be copied as-is from ffmpeg tree. +Compilation will reveal if any files are missing. -- cgit v1.2.3 From 044b501241ad4e4b482301eb6d36fc3b172f954b Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 26 Apr 2018 16:54:31 -0500 Subject: [ffvpx] Re-enable assembly optimized code It was inadvertently disabled in 8b37a1bc306c1d5a3cc92e9dc04fb95d5d9a0298. --- media/ffvpx/README_MCP | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'media/ffvpx/README_MCP') diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP index 784e19da5..dc099b033 100644 --- a/media/ffvpx/README_MCP +++ b/media/ffvpx/README_MCP @@ -7,12 +7,12 @@ Currently, we only use the vp8 and vp9 portion of the library, and only on x86 based platforms. If this changes, configuration files will most likely need to be updated. -AVX2 must be disabled on Linux due to the use of yasm 1.1 on the build bots. +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-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-parser=flac --enable-asm --enable-yasm +./configure --disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm config*: replace: /HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d @@ -21,7 +21,7 @@ config_darwin32.h: add to configure command: --disable-asm --disable-yasm --cc='clang -m32' config_unix32.h: -add to configure command: --disable-asm --disable-yasm --cc='clang -m32' +add to configure command: --disable-asm --disable-x86asm --cc='clang -m32' replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0/ and s/HAVE_MEMALIGN 1/HAVE_MEMALIGN 0/ and s/HAVE_POSIX_MEMALIGN 1/HAVE_POSIX_MEMALIGN 0/ -- cgit v1.2.3 From 622f0610e1021335060988497a8eb6bc42630909 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 26 Apr 2018 16:55:30 -0500 Subject: [ffvpx] Re-generate config_*.{h,asm} files --- media/ffvpx/README_MCP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'media/ffvpx/README_MCP') diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP index dc099b033..de1fdc264 100644 --- a/media/ffvpx/README_MCP +++ b/media/ffvpx/README_MCP @@ -25,7 +25,7 @@ add to configure command: --disable-asm --disable-x86asm --cc='clang -m32' replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0/ and s/HAVE_MEMALIGN 1/HAVE_MEMALIGN 0/ and s/HAVE_POSIX_MEMALIGN 1/HAVE_POSIX_MEMALIGN 0/ -config_unix64.h/config_unix64.asm: +config_unix32.h/config_unix64.h/config_unix64.asm: replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0 config_win32/64.h/asm: -- cgit v1.2.3 From b2f89250be2ae4ff4dc509209d996f515d737881 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 26 Apr 2018 16:56:17 -0500 Subject: [ffvpx] Update resync documentation --- media/ffvpx/README_MCP | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'media/ffvpx/README_MCP') diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP index de1fdc264..4555e08da 100644 --- a/media/ffvpx/README_MCP +++ b/media/ffvpx/README_MCP @@ -37,6 +37,12 @@ $ grep -E ".*_(INDEV|OUTDEV|DECODER|ENCODER|DEMUXER|MUXER|PARSER|FILTER|HWACCEL| All new decoders/muxers/encoders/... should be added in the list of dummy functions found in libavcodec/dummy_funcs.c otherwise linkage will fail on Windows. On other platforms they are optimised out and aren't necessary. - -To update the source tree, the files listed in FILES should typically be able to be copied as-is from ffmpeg tree. +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 diff $REV_LASTSYNC HEAD >> patch.diff; done +Then apply patch.diff on the ffvpx tree. Compilation will reveal if any files are missing. -- cgit v1.2.3