diff --git a/Makefile b/Makefile index d6f6e0f4..d3f36dd2 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,6 @@ LIBAVJS_VERSION_SHORT=$(LIBAVJS_VERSION_BASE).$(FFMPEG_VERSION_MAJOR) EMCC=emcc MINIFIER=node_modules/.bin/uglifyjs -m OPTFLAGS=-Oz -SIMDFLAGS=-msimd128 THRFLAGS=-pthread EFLAGS=\ --memory-init-file 0 \ @@ -50,12 +49,8 @@ dist/libav-$(LIBAVJS_VERSION)-%.js: build/libav-$(LIBAVJS_VERSION).js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.asm.js \ dist/libav-$(LIBAVJS_VERSION)-%.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.wasm.js \ - dist/libav-$(LIBAVJS_VERSION)-%.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.simd.js \ dist/libav-$(LIBAVJS_VERSION)-%.thr.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.thrsimd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thrsimd.js \ node_modules/.bin/uglifyjs mkdir -p dist sed "s/@CONFIG/$*/g ; s/@DBG//g" < $< | $(MINIFIER) > $@ @@ -282,148 +277,6 @@ dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js: build/ffmpeg-$(FFMPEG_VERSION)/build libaom $(LIBAOM_VERSION); \ fi || ( rm -f $(@) ; false ) -# wasm + simd - -dist/libav-$(LIBAVJS_VERSION)-%.simd.js: build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/libavformat/libavformat.a \ - build/exports.json pre.js build/post.js extern-post.js bindings.c - mkdir -p dist - $(EMCC) $(OPTFLAGS) $(EFLAGS) $(SIMDFLAGS) \ - -Ibuild/ffmpeg-$(FFMPEG_VERSION) -Ibuild/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*) \ - `test ! -e configs/configs/$(*)/link-flags.txt || cat configs/configs/$(*)/link-flags.txt` \ - bindings.c \ - `grep LIBAVJS_WITH_CLI configs/configs/$(*)/link-flags.txt > /dev/null 2>&1 && echo ' \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_demux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_filter.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_hw.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_mux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_mux_init.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_opt.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffprobe.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/cmdutils.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/objpool.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/opt_common.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/sync_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/thread_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/libavdevice/libavdevice.a \ - '` \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/*/lib*.a \ - `test ! -e configs/configs/$(*)/libs.txt || sed 's/@TARGET/simd/' configs/configs/$(*)/libs.txt` -o $(@) - sed 's/^\/\/.*include:.*// ; '"s/@VER/$(LIBAVJS_VERSION)/g ; s/@TARGET/simd/g ; s/@DBG//g" $(@) | cat configs/configs/$(*)/license.js - > $(@).tmp - mv $(@).tmp $(@) - if [ -e dist/libav-$(LIBAVJS_VERSION)-$(*).simd.wasm.map ] ; then \ - ./tools/adjust-sourcemap.js dist/libav-$(LIBAVJS_VERSION)-$(*).simd.wasm.map \ - ffmpeg $(FFMPEG_VERSION) \ - libvpx $(LIBVPX_VERSION) \ - libaom $(LIBAOM_VERSION); \ - fi || ( rm -f $(@) ; false ) - - -dist/libav-$(LIBAVJS_VERSION)-%.dbg.simd.js: build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/libavformat/libavformat.a \ - build/exports.json pre.js build/post.js extern-post.js bindings.c - mkdir -p dist - $(EMCC) $(OPTFLAGS) $(EFLAGS) -gsource-map $(SIMDFLAGS) \ - -Ibuild/ffmpeg-$(FFMPEG_VERSION) -Ibuild/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*) \ - `test ! -e configs/configs/$(*)/link-flags.txt || cat configs/configs/$(*)/link-flags.txt` \ - bindings.c \ - `grep LIBAVJS_WITH_CLI configs/configs/$(*)/link-flags.txt > /dev/null 2>&1 && echo ' \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_demux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_filter.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_hw.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_mux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_mux_init.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffmpeg_opt.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/ffprobe.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/cmdutils.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/objpool.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/opt_common.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/sync_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/fftools/thread_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/libavdevice/libavdevice.a \ - '` \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/*/lib*.a \ - `test ! -e configs/configs/$(*)/libs.txt || sed 's/@TARGET/simd/' configs/configs/$(*)/libs.txt` -o $(@) - sed 's/^\/\/.*include:.*// ; '"s/@VER/$(LIBAVJS_VERSION)/g ; s/@TARGET/simd/g ; s/@DBG/dbg./g" $(@) | cat configs/configs/$(*)/license.js - > $(@).tmp - mv $(@).tmp $(@) - if [ -e dist/libav-$(LIBAVJS_VERSION)-$(*).dbg.simd.wasm.map ] ; then \ - ./tools/adjust-sourcemap.js dist/libav-$(LIBAVJS_VERSION)-$(*).dbg.simd.wasm.map \ - ffmpeg $(FFMPEG_VERSION) \ - libvpx $(LIBVPX_VERSION) \ - libaom $(LIBAOM_VERSION); \ - fi || ( rm -f $(@) ; false ) - -# wasm + threads + simd - -dist/libav-$(LIBAVJS_VERSION)-%.thrsimd.js: build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/libavformat/libavformat.a \ - build/exports.json pre.js build/post.js extern-post.js bindings.c - mkdir -p dist - $(EMCC) $(OPTFLAGS) $(EFLAGS) $(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency $(SIMDFLAGS) \ - -Ibuild/ffmpeg-$(FFMPEG_VERSION) -Ibuild/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*) \ - `test ! -e configs/configs/$(*)/link-flags.txt || cat configs/configs/$(*)/link-flags.txt` \ - bindings.c \ - `grep LIBAVJS_WITH_CLI configs/configs/$(*)/link-flags.txt > /dev/null 2>&1 && echo ' \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_demux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_filter.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_hw.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_mux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_mux_init.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_opt.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffprobe.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/cmdutils.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/objpool.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/opt_common.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/sync_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/thread_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/libavdevice/libavdevice.a \ - '` \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/*/lib*.a \ - `test ! -e configs/configs/$(*)/libs.txt || sed 's/@TARGET/thrsimd/' configs/configs/$(*)/libs.txt` -o $(@) - sed 's/^\/\/.*include:.*// ; '"s/@VER/$(LIBAVJS_VERSION)/g ; s/@TARGET/thrsimd/g ; s/@DBG//g" $(@) | cat configs/configs/$(*)/license.js - > $(@).tmp - mv $(@).tmp $(@) - if [ -e dist/libav-$(LIBAVJS_VERSION)-$(*).thrsimd.wasm.map ] ; then \ - ./tools/adjust-sourcemap.js dist/libav-$(LIBAVJS_VERSION)-$(*).thrsimd.wasm.map \ - ffmpeg $(FFMPEG_VERSION) \ - libvpx $(LIBVPX_VERSION) \ - libaom $(LIBAOM_VERSION); \ - fi || ( rm -f $(@) ; false ) - - -dist/libav-$(LIBAVJS_VERSION)-%.dbg.thrsimd.js: build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/libavformat/libavformat.a \ - build/exports.json pre.js build/post.js extern-post.js bindings.c - mkdir -p dist - $(EMCC) $(OPTFLAGS) $(EFLAGS) -gsource-map $(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency $(SIMDFLAGS) \ - -Ibuild/ffmpeg-$(FFMPEG_VERSION) -Ibuild/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*) \ - `test ! -e configs/configs/$(*)/link-flags.txt || cat configs/configs/$(*)/link-flags.txt` \ - bindings.c \ - `grep LIBAVJS_WITH_CLI configs/configs/$(*)/link-flags.txt > /dev/null 2>&1 && echo ' \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_demux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_filter.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_hw.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_mux.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_mux_init.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffmpeg_opt.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/ffprobe.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/cmdutils.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/objpool.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/opt_common.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/sync_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/fftools/thread_queue.o \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/libavdevice/libavdevice.a \ - '` \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/*/lib*.a \ - `test ! -e configs/configs/$(*)/libs.txt || sed 's/@TARGET/thrsimd/' configs/configs/$(*)/libs.txt` -o $(@) - sed 's/^\/\/.*include:.*// ; '"s/@VER/$(LIBAVJS_VERSION)/g ; s/@TARGET/thrsimd/g ; s/@DBG/dbg./g" $(@) | cat configs/configs/$(*)/license.js - > $(@).tmp - mv $(@).tmp $(@) - if [ -e dist/libav-$(LIBAVJS_VERSION)-$(*).dbg.thrsimd.wasm.map ] ; then \ - ./tools/adjust-sourcemap.js dist/libav-$(LIBAVJS_VERSION)-$(*).dbg.thrsimd.wasm.map \ - ffmpeg $(FFMPEG_VERSION) \ - libvpx $(LIBVPX_VERSION) \ - libaom $(LIBAOM_VERSION); \ - fi || ( rm -f $(@) ; false ) - build/libav-$(LIBAVJS_VERSION).js: libav.in.js post.in.js funcs.json apply-funcs.js mkdir -p build dist @@ -444,14 +297,6 @@ build/inst/thr/cflags.txt: mkdir -p build/inst/thr echo $(THRFLAGS) -gsource-map > $@ -build/inst/simd/cflags.txt: - mkdir -p build/inst/simd - echo $(SIMDFLAGS) -gsource-map > $@ - -build/inst/thrsimd/cflags.txt: - mkdir -p build/inst/thrsimd - echo $(THRFLAGS) $(SIMDFLAGS) -gsource-map > $@ - RELEASE_VARIANTS=\ default default-cli opus opus-af flac flac-af wav wav-af obsolete webm \ webm-cli webm-vp9 webm-vp9-cli vp8-opus vp8-opus-avf, vp9-opus \ @@ -536,8 +381,4 @@ print-version: dist/libav-$(LIBAVJS_VERSION)-%.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.thrsimd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thrsimd.js + dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js diff --git a/Makefile.m4 b/Makefile.m4 index 01a5f033..e1a979ab 100644 --- a/Makefile.m4 +++ b/Makefile.m4 @@ -13,7 +13,6 @@ LIBAVJS_VERSION_SHORT=$(LIBAVJS_VERSION_BASE).$(FFMPEG_VERSION_MAJOR) EMCC=emcc MINIFIER=node_modules/.bin/uglifyjs -m OPTFLAGS=-Oz -SIMDFLAGS=-msimd128 THRFLAGS=-pthread EFLAGS=\ --memory-init-file 0 \ @@ -50,12 +49,8 @@ dist/libav-$(LIBAVJS_VERSION)-%.js: build/libav-$(LIBAVJS_VERSION).js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.asm.js \ dist/libav-$(LIBAVJS_VERSION)-%.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.wasm.js \ - dist/libav-$(LIBAVJS_VERSION)-%.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.simd.js \ dist/libav-$(LIBAVJS_VERSION)-%.thr.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.thrsimd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thrsimd.js \ node_modules/.bin/uglifyjs mkdir -p dist sed "s/@CONFIG/$*/g ; s/@DBG//g" < $< | $(MINIFIER) > $@ @@ -112,12 +107,6 @@ buildrule(wasm, dbg., base, [[[-gsource-map]]]) # wasm + threads buildrule(thr, [[[]]], thr, [[[$(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency]]]) buildrule(thr, dbg., thr, [[[-gsource-map $(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency]]]) -# wasm + simd -buildrule(simd, [[[]]], simd, [[[$(SIMDFLAGS)]]]) -buildrule(simd, dbg., simd, [[[-gsource-map $(SIMDFLAGS)]]]) -# wasm + threads + simd -buildrule(thrsimd, [[[]]], thrsimd, [[[$(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency $(SIMDFLAGS)]]]) -buildrule(thrsimd, dbg., thrsimd, [[[-gsource-map $(THRFLAGS) -sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency $(SIMDFLAGS)]]]) build/libav-$(LIBAVJS_VERSION).js: libav.in.js post.in.js funcs.json apply-funcs.js mkdir -p build dist @@ -138,14 +127,6 @@ build/inst/thr/cflags.txt: mkdir -p build/inst/thr echo $(THRFLAGS) -gsource-map > $@ -build/inst/simd/cflags.txt: - mkdir -p build/inst/simd - echo $(SIMDFLAGS) -gsource-map > $@ - -build/inst/thrsimd/cflags.txt: - mkdir -p build/inst/thrsimd - echo $(THRFLAGS) $(SIMDFLAGS) -gsource-map > $@ - RELEASE_VARIANTS=\ default default-cli opus opus-af flac flac-af wav wav-af obsolete webm \ webm-cli webm-vp9 webm-vp9-cli vp8-opus vp8-opus-avf, vp9-opus \ @@ -230,8 +211,4 @@ print-version: dist/libav-$(LIBAVJS_VERSION)-%.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.dbg.wasm.js \ dist/libav-$(LIBAVJS_VERSION)-%.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js \ - dist/libav-$(LIBAVJS_VERSION)-%.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.simd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.thrsimd.js \ - dist/libav-$(LIBAVJS_VERSION)-%.dbg.thrsimd.js + dist/libav-$(LIBAVJS_VERSION)-%.dbg.thr.js diff --git a/README.md b/README.md index 5052c9df..8ca12874 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,17 @@ files: ## Using libav.js -Include dist/libav-`version`-`variant`.js to use libav.js. The variants are -discussed below. - -The simplest way to use libav.js is to include it from a CDN, but this is not -recommended, as libav.js uses Web Workers by default, and Web Workers cannot be -loaded from a different origin. Nonetheless, the following is a simple example -of using libav.js from a CDN: +libav.js builds are available on +[GitHub](https://github.com/Yahweasel/libav.js/releases) and in NPM. Include +dist/libav-`version`-`variant`.js to use libav.js. The variants are discussed +below. + +The simplest way to use libav.js is to include it from a CDN. libav.js uses Web +Workers by default, and Web Workers cannot be loaded from a different origin, so +if you load it from a CDN, you must disable its own loading of workers. As such, +it's only recommended to use libav.js from a CDN if you're already *in* a +worker, and thus don't need sub-workers. Nonetheless, the following is a simple +example of using libav.js from a CDN in the browser thread: ```html @@ -110,17 +114,14 @@ are: "nowasm": false, "yesthreads": false, "nothreads": false, - "nosimd": false, "base": LibAV.base, "wasmurl": undefined, "variant": undefined } ``` -`nowasm` and `nosimd` affect what forms of code libav.js is allowed to load. By -default it will load SIMD WebAssembly if the browser supports it, non-SIMD -WebAssembly if the browser supports WebAssembly but not SIMD, and asm.js if the -browser supports no WebAssembly. These are overridable here for testing purposes -only. +`nowasm` forces libav.js to load only asm.js code, not WebAssembly code. By +default, it will determine what the browser supports and choose accordingly, so +this is overridable here for testing purposes only. The other no/yes options affect the execution mode of libav.js. libav.js can run in one of three modes: `"direct"` (synchronous), `"worker"`, or `"threads"`. @@ -148,14 +149,13 @@ separate threads as long as workers are used, regardless of the value of `yesthreads`, and thus `yesthreads` is only needed if you need concurrency *within* a libav.js instance. -libav.js automatically detects which WebAssembly features are available, so -even if you set `yesthreads` to `true` and don't set `nosimd`, a version with -neither feature may be loaded. To know which version will be loaded, call -`LibAV.target`. It will return `"asm"` if only asm.js is used, `"wasm"` for -baseline, or `"thr"`, `"simd"`, or `"thrsimd"` for versions with extensions -activated. These strings correspond to the filenames to be loaded, so you can -use them to preload and cache the large WebAssembly files. `LibAV.target` takes -the same optional argument as `LibAV.LibAV`. +libav.js automatically detects which WebAssembly features are available, so even +if you set `yesthreads` to `true`, a version without threads may be loaded. To +know which version will be loaded, call `LibAV.target`. It will return `"asm"` +if only asm.js is used, `"wasm"` for baseline, or `"thr"` for threads. These +strings correspond to the filenames to be loaded, so you can use them to preload +and cache the large WebAssembly files. `LibAV.target` takes the same optional +argument as `LibAV.LibAV`. The `base` option can be used in these options in place of `LibAV.base`, and will override `LibAV.base` if set. @@ -169,8 +169,11 @@ variant to decode the data in that file), as the frontend is otherwise the same and uses global variables. The tests used to determine which features are available are also exported, as -`LibAV.isWebAssemblySupported`, `LibAV.isThreadingSupported`, and -`LibAV.isSIMDSupported`. +`LibAV.isWebAssemblySupported` and `LibAV.isThreadingSupported`. + +NOTE: libav.js used to have a SIMD build as well. This was dropped because none +of the constituent libraries actually support WebAssembly SIMD, so it +substantially increased the size and time of builds to no benefit. ## Which files do I need? @@ -185,38 +188,25 @@ original, but it is not required. That entry file will load a target based on the environment it's loaded in and the options used to load it, as described above. The supported targets are -asm.js, plain WebAssembly, SIMD WebAssembly, threaded WebAssembly, and -threaded+SIMD WebAssembly. It is harmless to include all of them, as users will -not download all of them, only the ones they use. But, you may also include only -those you intend to use. In every case, there is a `.dbg.js` equivalent which is -only needed if you intend to use debug mode. +asm.js, plain WebAssembly, and threaded WebAssembly. It is harmless to include +all of them, as users will not download all of them, only the ones they use. +But, you may also include only those you intend to use. In every case, there is +a `.dbg.js` equivalent which is only needed if you intend to use debug mode. * asm.js: Named `libav--.asm.js`. No modern browser excludes support for WebAssembly, so this is probably not necessary. * Plain WebAssembly: Named `libav--.wasm.js` and - `libav--.wasm.wasm`. Since most browsers support SIMD, this - is actually rarely used in practice, but if you want to reduce the number of - builds, it's better to set `nosimd` and *only* use this version. - - * SIMD WebAssembly: Named `libav--.simd.js` (and - `.simd.wasm`). Used in most situations. + `libav--.wasm.wasm`. Used in most situations. * Threaded WebAssembly: Named `libav--.thr.js` (and `.thr.wasm`). Used only when threading is supported by the browser *and* `yesthreads` is set. If you don't intend to use threads (set `yesthreads`), - it is safe to exclude this. Like with unthreaded WebAssembly, most real - browsers will load the SIMD version, but you can set `nosimd` to always load - this version and thus reduce the number of files you need to distribute. - - * Threaded+SIMD WebAssembly: Named `libav--.thrsimd.js` (and - `.thrsimd.wasm`). Used in most threaded situations. + it is safe to exclude this. Used in most threaded situations. At a minimum, it is usually sufficient to include only the `.js`, `.wasm.js`, -and `.wasm.wasm` files, if you always set `nosimd`. To include SIMD support, you -must also include `.simd.js` and `.simd.wasm`. Similarly, to include threads, -you must include `.thr.js` and `.thr.wasm`, and to include both, `.thrsimd.js`, -`.thrsimd.wasm`. +and `.wasm.wasm` files. To include threads, you must also include `.thr.js` and +`.thr.wasm`. The file `libav.types.d.ts` is a TypeScript types definition file, and is only needed to compile TypeScript code with support for libav.js's types. It should @@ -347,12 +337,11 @@ The included variants are: * webcodecs, webcodecs-avf: Designed to serve as a demuxer/muxer for codecs supported by WebCodecs. Pairs well with [libavjs-webcodecs-bridge](https://github.com/Yahweasel/libavjs-webcodecs-bridge). - Includes codecs for Opus, FLAC, wav, and VP8. Includes *parsers* (but not - codecs) for AAC, VP9, AV1, H.264, and H.265. Includes the ogg, WebM, MP4, - FLAC, and wav formats. This means that it can demux files including, e.g., - H.264, but cannot decode the frames. If your WebCodecs supports H.264, you - can then use it to decode. `-avf` additionally includes audio and video - filters. + Includes codecs for Opus, FLAC, and wav. Includes *parsers* (but not codecs) + for AAC, VP8, VP9, AV1, H.264, and H.265. Includes the ogg, WebM, MP4, FLAC, + and wav formats. This means that it can demux files including, e.g., H.264, + but cannot decode the frames. If your WebCodecs supports H.264, you can then + use it to decode. `-avf` additionally includes audio and video filters. * vp8-opus, vp8-opus-avf: VP8 and Opus in WebM (or ogg). `-avf` additionally includes audio and video filters. diff --git a/configs/configs/all/deps.mk b/configs/configs/all/deps.mk index a9552588..a60b72fc 100644 --- a/configs/configs/all/deps.mk +++ b/configs/configs/all/deps.mk @@ -1,28 +1,14 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vorbis.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vorbis.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vorbis.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vorbis.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/libmp3lame.a -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/libmp3lame.a build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/libmp3lame.a -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/libmp3lame.a build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/aom.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/aom.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/openh264.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/openh264.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-all/ffbuild/config.mak: build/inst/base/lib/pkgconfig/zlib.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-all/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/zlib.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-all/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/zlib.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-all/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/zlib.pc diff --git a/configs/configs/av1-opus-avf/deps.mk b/configs/configs/av1-opus-avf/deps.mk index 7cad0f89..fbceeab4 100644 --- a/configs/configs/av1-opus-avf/deps.mk +++ b/configs/configs/av1-opus-avf/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-av1-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-av1-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-av1-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-av1-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-av1-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-av1-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/aom.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-av1-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-av1-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/aom.pc diff --git a/configs/configs/av1-opus/deps.mk b/configs/configs/av1-opus/deps.mk index 972b5b65..632c54de 100644 --- a/configs/configs/av1-opus/deps.mk +++ b/configs/configs/av1-opus/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-av1-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-av1-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-av1-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-av1-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-av1-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-av1-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/aom.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-av1-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/aom.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-av1-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/aom.pc diff --git a/configs/configs/default-cli/deps.mk b/configs/configs/default-cli/deps.mk index a5d38168..71801fcf 100644 --- a/configs/configs/default-cli/deps.mk +++ b/configs/configs/default-cli/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-default-cli/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-default-cli/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-default-cli/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-default-cli/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc diff --git a/configs/configs/default/deps.mk b/configs/configs/default/deps.mk index 3e4214b2..480cfe13 100644 --- a/configs/configs/default/deps.mk +++ b/configs/configs/default/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-default/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-default/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-default/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-default/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc diff --git a/configs/configs/extras/deps.mk b/configs/configs/extras/deps.mk index 09760070..4951f4a2 100644 --- a/configs/configs/extras/deps.mk +++ b/configs/configs/extras/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-extras/ffbuild/config.mak: build/inst/base/lib/pkgconfig/zlib.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-extras/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/zlib.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-extras/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/zlib.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-extras/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/zlib.pc diff --git a/configs/configs/h264-aac-avf/deps.mk b/configs/configs/h264-aac-avf/deps.mk index f9b77d2d..a6dccbc6 100644 --- a/configs/configs/h264-aac-avf/deps.mk +++ b/configs/configs/h264-aac-avf/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-h264-aac-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-h264-aac-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/openh264.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-h264-aac-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-h264-aac-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/openh264.pc diff --git a/configs/configs/h264-aac/deps.mk b/configs/configs/h264-aac/deps.mk index 002e2958..9096a840 100644 --- a/configs/configs/h264-aac/deps.mk +++ b/configs/configs/h264-aac/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-h264-aac/ffbuild/config.mak: build/inst/base/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-h264-aac/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/openh264.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-h264-aac/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/openh264.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-h264-aac/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/openh264.pc diff --git a/configs/configs/obsolete/deps.mk b/configs/configs/obsolete/deps.mk index d8a6dd8d..d2106562 100644 --- a/configs/configs/obsolete/deps.mk +++ b/configs/configs/obsolete/deps.mk @@ -1,12 +1,6 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-obsolete/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-obsolete/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-obsolete/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-obsolete/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-obsolete/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vorbis.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-obsolete/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vorbis.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-obsolete/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vorbis.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-obsolete/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vorbis.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-obsolete/ffbuild/config.mak: build/inst/base/lib/libmp3lame.a -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-obsolete/ffbuild/config.mak: build/inst/simd/lib/libmp3lame.a build/ffmpeg-$(FFMPEG_VERSION)/build-thr-obsolete/ffbuild/config.mak: build/inst/thr/lib/libmp3lame.a -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-obsolete/ffbuild/config.mak: build/inst/thrsimd/lib/libmp3lame.a diff --git a/configs/configs/opus-af/deps.mk b/configs/configs/opus-af/deps.mk index fe427bba..828a26f5 100644 --- a/configs/configs/opus-af/deps.mk +++ b/configs/configs/opus-af/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-opus-af/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-opus-af/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-opus-af/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-opus-af/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc diff --git a/configs/configs/opus/deps.mk b/configs/configs/opus/deps.mk index 3f6f9e75..2a2697c5 100644 --- a/configs/configs/opus/deps.mk +++ b/configs/configs/opus/deps.mk @@ -1,4 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc diff --git a/configs/configs/vp8-opus-avf/deps.mk b/configs/configs/vp8-opus-avf/deps.mk index 9944ac86..be4ce2db 100644 --- a/configs/configs/vp8-opus-avf/deps.mk +++ b/configs/configs/vp8-opus-avf/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp8-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp8-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp8-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp8-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp8-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp8-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp8-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp8-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/vp8-opus/deps.mk b/configs/configs/vp8-opus/deps.mk index b5aa4fff..7f0b78c8 100644 --- a/configs/configs/vp8-opus/deps.mk +++ b/configs/configs/vp8-opus/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp8-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp8-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp8-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp8-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp8-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp8-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp8-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp8-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/vp9-opus-avf/deps.mk b/configs/configs/vp9-opus-avf/deps.mk index 1f002251..650d0057 100644 --- a/configs/configs/vp9-opus-avf/deps.mk +++ b/configs/configs/vp9-opus-avf/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp9-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp9-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp9-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp9-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp9-opus-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp9-opus-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp9-opus-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp9-opus-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/vp9-opus/deps.mk b/configs/configs/vp9-opus/deps.mk index c8b61fd1..5f4295e2 100644 --- a/configs/configs/vp9-opus/deps.mk +++ b/configs/configs/vp9-opus/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp9-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp9-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp9-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp9-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-vp9-opus/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-vp9-opus/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-vp9-opus/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-vp9-opus/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webcodecs-avf/deps.mk b/configs/configs/webcodecs-avf/deps.mk index 213eec8e..0a7451c1 100644 --- a/configs/configs/webcodecs-avf/deps.mk +++ b/configs/configs/webcodecs-avf/deps.mk @@ -1,8 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webcodecs-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webcodecs-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webcodecs-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webcodecs-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-base-webcodecs-avf/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webcodecs-avf/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webcodecs-avf/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webcodecs-avf/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webcodecs-avf/ffmpeg-config.txt b/configs/configs/webcodecs-avf/ffmpeg-config.txt index 36365a26..6e6db687 100644 --- a/configs/configs/webcodecs-avf/ffmpeg-config.txt +++ b/configs/configs/webcodecs-avf/ffmpeg-config.txt @@ -18,12 +18,12 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-parser=aac --enable-parser=vp8 ---enable-libvpx ---enable-decoder=libvpx_vp8 ---enable-libvpx ---enable-encoder=libvpx_vp8 --enable-parser=vp9 --enable-parser=av1 --enable-parser=h264 diff --git a/configs/configs/webcodecs-avf/libs.txt b/configs/configs/webcodecs-avf/libs.txt index ef1a3d4c..0edff23f 100644 --- a/configs/configs/webcodecs-avf/libs.txt +++ b/configs/configs/webcodecs-avf/libs.txt @@ -1,2 +1 @@ build/inst/@TARGET/lib/libopus.a -build/inst/@TARGET/lib/libvpx.a diff --git a/configs/configs/webcodecs-avf/license.js b/configs/configs/webcodecs-avf/license.js index a83f41a2..928a5054 100644 --- a/configs/configs/webcodecs-avf/license.js +++ b/configs/configs/webcodecs-avf/license.js @@ -675,42 +675,6 @@ * * --- * - * libvpx: - * - * Copyright (c) 2010, The WebM Project authors. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Google, nor the WebM Project, nor the names - * of its contributors may be used to endorse or promote products - * derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * --- - * * emscripten and musl: * * Copyright (c) 2010-2023 Emscripten authors, see AUTHORS file. diff --git a/configs/configs/webcodecs/deps.mk b/configs/configs/webcodecs/deps.mk index 049c1bf1..78e885b7 100644 --- a/configs/configs/webcodecs/deps.mk +++ b/configs/configs/webcodecs/deps.mk @@ -1,8 +1,2 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webcodecs/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webcodecs/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webcodecs/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webcodecs/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-base-webcodecs/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webcodecs/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webcodecs/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webcodecs/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webcodecs/ffmpeg-config.txt b/configs/configs/webcodecs/ffmpeg-config.txt index 9250d7f2..2920d1cd 100644 --- a/configs/configs/webcodecs/ffmpeg-config.txt +++ b/configs/configs/webcodecs/ffmpeg-config.txt @@ -18,12 +18,12 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-parser=aac --enable-parser=vp8 ---enable-libvpx ---enable-decoder=libvpx_vp8 ---enable-libvpx ---enable-encoder=libvpx_vp8 --enable-parser=vp9 --enable-parser=av1 --enable-parser=h264 diff --git a/configs/configs/webcodecs/libs.txt b/configs/configs/webcodecs/libs.txt index ef1a3d4c..0edff23f 100644 --- a/configs/configs/webcodecs/libs.txt +++ b/configs/configs/webcodecs/libs.txt @@ -1,2 +1 @@ build/inst/@TARGET/lib/libopus.a -build/inst/@TARGET/lib/libvpx.a diff --git a/configs/configs/webcodecs/license.js b/configs/configs/webcodecs/license.js index a83f41a2..928a5054 100644 --- a/configs/configs/webcodecs/license.js +++ b/configs/configs/webcodecs/license.js @@ -675,42 +675,6 @@ * * --- * - * libvpx: - * - * Copyright (c) 2010, The WebM Project authors. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Google, nor the WebM Project, nor the names - * of its contributors may be used to endorse or promote products - * derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * --- - * * emscripten and musl: * * Copyright (c) 2010-2023 Emscripten authors, see AUTHORS file. diff --git a/configs/configs/webm-cli/deps.mk b/configs/configs/webm-cli/deps.mk index f83c5df9..1c39741c 100644 --- a/configs/configs/webm-cli/deps.mk +++ b/configs/configs/webm-cli/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-cli/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-cli/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-cli/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-cli/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-cli/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-cli/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-cli/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-cli/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webm-cli/ffmpeg-config.txt b/configs/configs/webm-cli/ffmpeg-config.txt index 291384fe..b87dbd3a 100644 --- a/configs/configs/webm-cli/ffmpeg-config.txt +++ b/configs/configs/webm-cli/ffmpeg-config.txt @@ -14,6 +14,10 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-filter=acompressor --enable-filter=adeclick --enable-filter=adeclip --enable-filter=aecho --enable-filter=afade --enable-filter=aformat --enable-filter=agate --enable-filter=alimiter --enable-filter=amix diff --git a/configs/configs/webm-vp9-cli/deps.mk b/configs/configs/webm-vp9-cli/deps.mk index 573af4b3..660f670e 100644 --- a/configs/configs/webm-vp9-cli/deps.mk +++ b/configs/configs/webm-vp9-cli/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-vp9-cli/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-vp9-cli/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-vp9-cli/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-vp9-cli/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-vp9-cli/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-vp9-cli/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-vp9-cli/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-vp9-cli/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webm-vp9-cli/ffmpeg-config.txt b/configs/configs/webm-vp9-cli/ffmpeg-config.txt index 2cfaf99f..47d6f3ff 100644 --- a/configs/configs/webm-vp9-cli/ffmpeg-config.txt +++ b/configs/configs/webm-vp9-cli/ffmpeg-config.txt @@ -14,6 +14,10 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-filter=acompressor --enable-filter=adeclick --enable-filter=adeclip --enable-filter=aecho --enable-filter=afade --enable-filter=aformat --enable-filter=agate --enable-filter=alimiter --enable-filter=amix diff --git a/configs/configs/webm-vp9/deps.mk b/configs/configs/webm-vp9/deps.mk index 4fac95f7..e3e60f54 100644 --- a/configs/configs/webm-vp9/deps.mk +++ b/configs/configs/webm-vp9/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-vp9/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-vp9/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-vp9/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-vp9/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm-vp9/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm-vp9/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm-vp9/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm-vp9/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webm-vp9/ffmpeg-config.txt b/configs/configs/webm-vp9/ffmpeg-config.txt index 975568c0..66ed391a 100644 --- a/configs/configs/webm-vp9/ffmpeg-config.txt +++ b/configs/configs/webm-vp9/ffmpeg-config.txt @@ -14,6 +14,10 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-filter=acompressor --enable-filter=adeclick --enable-filter=adeclip --enable-filter=aecho --enable-filter=afade --enable-filter=aformat --enable-filter=agate --enable-filter=alimiter --enable-filter=amix diff --git a/configs/configs/webm/deps.mk b/configs/configs/webm/deps.mk index eaff778f..252c531b 100644 --- a/configs/configs/webm/deps.mk +++ b/configs/configs/webm/deps.mk @@ -1,8 +1,4 @@ build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm/ffbuild/config.mak: build/inst/base/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/opus.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/opus.pc build/ffmpeg-$(FFMPEG_VERSION)/build-base-webm/ffbuild/config.mak: build/inst/base/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-webm/ffbuild/config.mak: build/inst/simd/lib/pkgconfig/vpx.pc build/ffmpeg-$(FFMPEG_VERSION)/build-thr-webm/ffbuild/config.mak: build/inst/thr/lib/pkgconfig/vpx.pc -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-webm/ffbuild/config.mak: build/inst/thrsimd/lib/pkgconfig/vpx.pc diff --git a/configs/configs/webm/ffmpeg-config.txt b/configs/configs/webm/ffmpeg-config.txt index 6a4b6fe4..61d50161 100644 --- a/configs/configs/webm/ffmpeg-config.txt +++ b/configs/configs/webm/ffmpeg-config.txt @@ -14,6 +14,10 @@ --enable-parser=flac --enable-decoder=flac --enable-encoder=flac +--enable-decoder=pcm_s16le --enable-decoder=pcm_s24le +--enable-demuxer=wav +--enable-encoder=pcm_s16le --enable-encoder=pcm_s24le +--enable-muxer=wav --enable-filter=acompressor --enable-filter=adeclick --enable-filter=adeclip --enable-filter=aecho --enable-filter=afade --enable-filter=aformat --enable-filter=agate --enable-filter=alimiter --enable-filter=amix diff --git a/configs/mkconfig.js b/configs/mkconfig.js index 554652b6..f33fe9bb 100755 --- a/configs/mkconfig.js +++ b/configs/mkconfig.js @@ -1,6 +1,6 @@ #!/usr/bin/env node /* - * Copyright (C) 2021-2023 Yahweasel + * Copyright (C) 2021-2024 Yahweasel * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted. @@ -47,7 +47,7 @@ function addFragment(out, part) { // Add any dependencies try { const deps = fs.readFileSync(`fragments/${part}/deps.txt`, "utf8").split("\n"); - for (const target of ["base", "simd", "thr", "thrsimd"]) { + for (const target of ["base", "thr"]) { for (const dep of deps) { if (!dep) continue; out["deps.mk"].write( diff --git a/configs/mkconfigs.js b/configs/mkconfigs.js index 8bf0583b..0f174bfa 100755 --- a/configs/mkconfigs.js +++ b/configs/mkconfigs.js @@ -86,8 +86,7 @@ const configsRaw = [ opus, flac, "format-wav", "parser-aac", - "libvpx", vp8, - "parser-vp9", "parser-av1", + "parser-vp8", "parser-vp9", "parser-av1", "parser-h264", "parser-hevc", "bsf-extract_extradata", diff --git a/libav.in.js b/libav.in.js index 4deb8284..77c7fede 100644 --- a/libav.in.js +++ b/libav.in.js @@ -36,12 +36,6 @@ return false; } - function isSIMDSupported() { - return isWebAssemblySupported([0x0, 0x61, 0x73, 0x6d, 0x1, 0x0, 0x0, - 0x0, 0x1, 0x5, 0x1, 0x60, 0x0, 0x1, 0x7b, 0x3, 0x2, 0x1, 0x0, 0xa, - 0xa, 0x1, 0x8, 0x0, 0x41, 0x0, 0xfd, 0xf, 0xfd, 0x62, 0xb]); - } - /* Source: Jason Miller on Twitter. Returns true if we're in an ES6 module * in a worker. */ function isModule() { @@ -66,7 +60,6 @@ // Proxy our detection functions libav.isWebAssemblySupported = isWebAssemblySupported; libav.isThreadingSupported = isThreadingSupported; - libav.isSIMDSupported = isSIMDSupported; libav.isModule = isModule; // Get the target that will load, given these options @@ -74,13 +67,12 @@ opts = opts || {}; var wasm = !opts.nowasm && isWebAssemblySupported(); var thr = opts.yesthreads && wasm && !opts.nothreads && isThreadingSupported(); - var simd = wasm && !opts.nosimd && isSIMDSupported(); if (!wasm) return "asm"; - else if (!thr && !simd) - return "wasm"; + else if (thr) + return "thr"; else - return (thr ? "thr" : "") + (simd ? "simd" : ""); + return "wasm"; } libav.target = target; libav.VER = "@VER"; diff --git a/libav.types.in.d.ts b/libav.types.in.d.ts index 98f09f48..9f7e0acc 100644 --- a/libav.types.in.d.ts +++ b/libav.types.in.d.ts @@ -543,11 +543,6 @@ export interface LibAVOpts { */ nowasm?: boolean; - /** - * Don't use WebAssembly SIMD. - */ - nosimd?: boolean; - /** * Use threads. If threads ever become reliable, this flag will disappear, * and you will need to use nothreads. diff --git a/mk/ffmpeg.mk b/mk/ffmpeg.mk index 6b8fe47d..60c8a3f2 100644 --- a/mk/ffmpeg.mk +++ b/mk/ffmpeg.mk @@ -71,57 +71,11 @@ part-install-thr-%: build/ffmpeg-$(FFMPEG_VERSION)/build-thr-%/libavformat/libav cd build/ffmpeg-$(FFMPEG_VERSION)/build-thr-$(*) ; \ $(MAKE) install prefix="$(PWD)/build/inst/thr" -# wasm + simd - -build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/ffbuild/config.mak: \ - build/ffmpeg-$(FFMPEG_VERSION)/PATCHED \ - configs/configs/%/ffmpeg-config.txt | \ - build/inst/simd/cflags.txt - mkdir -p build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*) && \ - cd build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*) && \ - emconfigure env PKG_CONFIG_PATH="$(PWD)/build/inst/simd/lib/pkgconfig" \ - ../configure $(FFMPEG_CONFIG) \ - --disable-pthreads --arch=x86_32 --disable-inline-asm --disable-x86asm \ - --optflags="$(OPTFLAGS)" \ - --extra-cflags="-I$(PWD)/build/inst/simd/include $(SIMDFLAGS)" \ - --extra-ldflags="-L$(PWD)/build/inst/simd/lib $(SIMDFLAGS)" \ - `cat ../../../configs/configs/$(*)/ffmpeg-config.txt` - sed 's/--extra-\(cflags\|ldflags\)='\''[^'\'']*'\''//g' < build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/config.h > build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/config.h.tmp - mv build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/config.h.tmp build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*)/config.h - touch $(@) - -part-install-simd-%: build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/libavformat/libavformat.a - cd build/ffmpeg-$(FFMPEG_VERSION)/build-simd-$(*) ; \ - $(MAKE) install prefix="$(PWD)/build/inst/simd" - -# wasm + threads + simd - -build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/ffbuild/config.mak: \ - build/ffmpeg-$(FFMPEG_VERSION)/PATCHED \ - configs/configs/%/ffmpeg-config.txt | \ - build/inst/thrsimd/cflags.txt - mkdir -p build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*) && \ - cd build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*) && \ - emconfigure env PKG_CONFIG_PATH="$(PWD)/build/inst/thrsimd/lib/pkgconfig" \ - ../configure $(FFMPEG_CONFIG) \ - --enable-pthreads --arch=x86_32 --disable-inline-asm --disable-x86asm --enable-cross-compile \ - --optflags="$(OPTFLAGS)" \ - --extra-cflags="-I$(PWD)/build/inst/thrsimd/include $(THRFLAGS) $(SIMDFLAGS)" \ - --extra-ldflags="-L$(PWD)/build/inst/thrsimd/lib $(THRFLAGS) $(SIMDFLAGS)" \ - `cat ../../../configs/configs/$(*)/ffmpeg-config.txt` - sed 's/--extra-\(cflags\|ldflags\)='\''[^'\'']*'\''//g' < build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/config.h > build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/config.h.tmp - mv build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/config.h.tmp build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*)/config.h - touch $(@) - -part-install-thrsimd-%: build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/libavformat/libavformat.a - cd build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-$(*) ; \ - $(MAKE) install prefix="$(PWD)/build/inst/thrsimd" - # All dependencies include configs/configs/*/deps.mk -install-%: part-install-base-% part-install-thr-% part-install-simd-% part-install-thrsimd-% +install-%: part-install-base-% part-install-thr-% true extract: build/ffmpeg-$(FFMPEG_VERSION)/PATCHED @@ -152,9 +106,5 @@ ffmpeg-release: build/ffmpeg-$(FFMPEG_VERSION)/build-base-%/ffbuild/config.mak \ build/ffmpeg-$(FFMPEG_VERSION)/build-thr-%/libavformat/libavformat.a \ build/ffmpeg-$(FFMPEG_VERSION)/build-thr-%/ffbuild/config.mak \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/libavformat/libavformat.a \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/ffbuild/config.mak \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/libavformat/libavformat.a \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/ffbuild/config.mak \ build/ffmpeg-$(FFMPEG_VERSION)/PATCHED \ build/ffmpeg-$(FFMPEG_VERSION)/configure diff --git a/mk/ffmpeg.mk.m4 b/mk/ffmpeg.mk.m4 index 9df516e8..a309fd87 100644 --- a/mk/ffmpeg.mk.m4 +++ b/mk/ffmpeg.mk.m4 @@ -50,15 +50,11 @@ part-install-$1-%: build/ffmpeg-$(FFMPEG_VERSION)/build-$1-%/libavformat/libavfo buildrule(base, [[[--disable-pthreads --arch=emscripten]]], [[[]]]) # wasm + threads buildrule(thr, [[[--enable-pthreads --arch=emscripten]]], [[[$(THRFLAGS)]]]) -# wasm + simd -buildrule(simd, [[[--disable-pthreads --arch=x86_32 --disable-inline-asm --disable-x86asm]]], [[[$(SIMDFLAGS)]]]) -# wasm + threads + simd -buildrule(thrsimd, [[[--enable-pthreads --arch=x86_32 --disable-inline-asm --disable-x86asm --enable-cross-compile]]], [[[$(THRFLAGS) $(SIMDFLAGS)]]]) # All dependencies include configs/configs/*/deps.mk -install-%: part-install-base-% part-install-thr-% part-install-simd-% part-install-thrsimd-% +install-%: part-install-base-% part-install-thr-% true extract: build/ffmpeg-$(FFMPEG_VERSION)/PATCHED @@ -89,9 +85,5 @@ ffmpeg-release: build/ffmpeg-$(FFMPEG_VERSION)/build-base-%/ffbuild/config.mak \ build/ffmpeg-$(FFMPEG_VERSION)/build-thr-%/libavformat/libavformat.a \ build/ffmpeg-$(FFMPEG_VERSION)/build-thr-%/ffbuild/config.mak \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/libavformat/libavformat.a \ - build/ffmpeg-$(FFMPEG_VERSION)/build-simd-%/ffbuild/config.mak \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/libavformat/libavformat.a \ - build/ffmpeg-$(FFMPEG_VERSION)/build-thrsimd-%/ffbuild/config.mak \ build/ffmpeg-$(FFMPEG_VERSION)/PATCHED \ build/ffmpeg-$(FFMPEG_VERSION)/configure diff --git a/mk/libaom.mk b/mk/libaom.mk index ccae502a..cd77b1ca 100644 --- a/mk/libaom.mk +++ b/mk/libaom.mk @@ -33,24 +33,6 @@ build/libaom-$(LIBAOM_VERSION)/build-base/Makefile: build/libaom-$(LIBAOM_VERSIO -DCONFIG_MULTITHREAD=0 touch $(@) - -build/libaom-$(LIBAOM_VERSION)/build-simd/Makefile: build/libaom-$(LIBAOM_VERSION)/PATCHED | build/inst/simd/cflags.txt - mkdir -p build/libaom-$(LIBAOM_VERSION)/build-simd - cd build/libaom-$(LIBAOM_VERSION)/build-simd && \ - emcmake cmake ../../libaom-$(LIBAOM_VERSION) \ - -DCMAKE_INSTALL_PREFIX="$(PWD)/build/inst/simd" \ - -DCMAKE_C_FLAGS="-Oz `cat $(PWD)/build/inst/simd/cflags.txt`" \ - -DCMAKE_CXX_FLAGS="-Oz `cat $(PWD)/build/inst/simd/cflags.txt`" \ - -DAOM_TARGET_CPU=generic \ - -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_DOCS=0 \ - -DENABLE_TESTS=0 \ - -DENABLE_EXAMPLES=0 \ - -DCONFIG_RUNTIME_CPU_DETECT=0 \ - -DCONFIG_WEBM_IO=0 \ - -DCONFIG_MULTITHREAD=0 - touch $(@) - # Threaded build/libaom-$(LIBAOM_VERSION)/build-thr/Makefile: build/libaom-$(LIBAOM_VERSION)/PATCHED | build/inst/thr/cflags.txt @@ -71,24 +53,6 @@ build/libaom-$(LIBAOM_VERSION)/build-thr/Makefile: build/libaom-$(LIBAOM_VERSION touch $(@) -build/libaom-$(LIBAOM_VERSION)/build-thrsimd/Makefile: build/libaom-$(LIBAOM_VERSION)/PATCHED | build/inst/thrsimd/cflags.txt - mkdir -p build/libaom-$(LIBAOM_VERSION)/build-thrsimd - cd build/libaom-$(LIBAOM_VERSION)/build-thrsimd && \ - emcmake cmake ../../libaom-$(LIBAOM_VERSION) \ - -DCMAKE_INSTALL_PREFIX="$(PWD)/build/inst/thrsimd" \ - -DCMAKE_C_FLAGS="-Oz `cat $(PWD)/build/inst/thrsimd/cflags.txt`" \ - -DCMAKE_CXX_FLAGS="-Oz `cat $(PWD)/build/inst/thrsimd/cflags.txt`" \ - -DAOM_TARGET_CPU=generic \ - -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_DOCS=0 \ - -DENABLE_TESTS=0 \ - -DENABLE_EXAMPLES=0 \ - -DCONFIG_RUNTIME_CPU_DETECT=0 \ - -DCONFIG_WEBM_IO=0 \ - - touch $(@) - - extract: build/libaom-$(LIBAOM_VERSION)/PATCHED build/libaom-$(LIBAOM_VERSION)/PATCHED: build/libaom-$(LIBAOM_VERSION)/CMakeLists.txt diff --git a/mk/libaom.mk.m4 b/mk/libaom.mk.m4 index 31242e08..0577e151 100644 --- a/mk/libaom.mk.m4 +++ b/mk/libaom.mk.m4 @@ -33,10 +33,8 @@ build/libaom-$(LIBAOM_VERSION)/build-$1/Makefile: build/libaom-$(LIBAOM_VERSION) # Non-threaded buildrule(base, [[[-DCONFIG_MULTITHREAD=0]]]) -buildrule(simd, [[[-DCONFIG_MULTITHREAD=0]]]) # Threaded buildrule(thr, [[[]]]) -buildrule(thrsimd, [[[]]]) extract: build/libaom-$(LIBAOM_VERSION)/PATCHED diff --git a/old-tests/libav.js b/old-tests/libav.js index f53983c4..5bacaf0b 100644 --- a/old-tests/libav.js +++ b/old-tests/libav.js @@ -3,8 +3,7 @@ const version = "4.10.6.1.1"; function load(variant = "default") { const opts = { nowasm: false, - nothreads: true, - nosimd: true + nothreads: true }; for (let ai = 2; ai < process.argv.length; ai++) { const arg = process.argv[ai]; @@ -13,16 +12,10 @@ function load(variant = "default") { else if (arg === "threads") { opts.yesthreads = true; opts.nothreads = false; - } else if (arg === "simd") - opts.nosimd = false; + } } - const target = opts.nowasm ? "asm" : ( - opts.nothreads ? ( - opts.nosimd ? "wasm" : "simd" - ) : ( - opts.nosimd ? "thr" : "thrsimd" - ) - ); + const target = opts.nowasm ? "asm" + : (opts.nothreads ? "wasm" : "thr"); const LibAV = require(`../dist/libav-${version}-${variant}.js`); LibAV.opts = opts; const actual = LibAV.target(opts); diff --git a/old-tests/test.sh b/old-tests/test.sh index 4a290710..4cadd2b6 100755 --- a/old-tests/test.sh +++ b/old-tests/test.sh @@ -5,7 +5,7 @@ do if [ -e correct/$b.txt ] then printf '%s\n' "$t" >&2 - for target in asm.js wasm simd + for target in asm.js wasm do node --experimental-wasm-threads $t $target > tmp.txt 2> /dev/null diff -u tmp.txt correct/$b.txt diff --git a/tests/node-test.js b/tests/node-test.js index cee330df..030c28dc 100755 --- a/tests/node-test.js +++ b/tests/node-test.js @@ -1,6 +1,6 @@ #!/usr/bin/env node /* - * Copyright (C) 2023 Yahweasel and contributors + * Copyright (C) 2023, 2024 Yahweasel and contributors * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted. @@ -40,7 +40,6 @@ async function main() { await harness.loadTests(require("./suite.json")); process.exit(await harness.runTests([ null, - {nosimd: true}, {nowasm: true} ]) ? 1 : 0); } diff --git a/tests/web-test.html b/tests/web-test.html index 0fb87c85..c7b045a1 100644 --- a/tests/web-test.html +++ b/tests/web-test.html @@ -1,6 +1,6 @@