|
3 | 3 | set -eo pipefail
|
4 | 4 | source $(dirname $0)/var.sh
|
5 | 5 |
|
6 |
| -mkdir -p wasm/dist |
7 |
| -emmake make -j |
| 6 | +if [[ "$FFMPEG_ST" != "yes" ]]; then |
| 7 | + mkdir -p wasm/packages/core.mp4-scale/dist |
| 8 | + EXPORTED_FUNCTIONS="[_main, _proxy_main]" |
| 9 | + EXTRA_FLAGS=( |
| 10 | + -pthread |
| 11 | + -s USE_PTHREADS=1 # enable pthreads support |
| 12 | + -s PROXY_TO_PTHREAD=1 # detach main() from browser/UI main thread |
| 13 | + -o wasm/packages/core.mp4-scale/dist/ffmpeg-core.js |
| 14 | + ) |
| 15 | +else |
| 16 | + mkdir -p wasm/packages/core-st.mp4-scale/dist |
| 17 | + EXPORTED_FUNCTIONS="[_main]" |
| 18 | + EXTRA_FLAGS=( |
| 19 | + -o wasm/packages/core-st.mp4-scale/dist/ffmpeg-core.js |
| 20 | + ) |
| 21 | +fi |
| 22 | + |
8 | 23 | FLAGS=(
|
9 | 24 | -I. -I./fftools -I$BUILD_DIR/include
|
10 | 25 | -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -L$BUILD_DIR/lib
|
11 | 26 | -Wno-deprecated-declarations -Wno-pointer-sign -Wno-implicit-int-float-conversion -Wno-switch -Wno-parentheses -Qunused-arguments
|
12 |
| - -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lpostproc -lm -lx264 -pthread |
| 27 | + -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lpostproc -lm -lx264 |
13 | 28 | fftools/ffmpeg_opt.c fftools/ffmpeg_filter.c fftools/ffmpeg_hw.c fftools/cmdutils.c fftools/ffmpeg.c
|
14 |
| - -o wasm/dist/ffmpeg-core.js |
15 | 29 | -s USE_SDL=2 # use SDL2
|
16 |
| - -s USE_PTHREADS=1 # enable pthreads support |
17 |
| - -s PROXY_TO_PTHREAD=1 # detach main() from browser/UI main thread |
18 | 30 | -s INVOKE_RUN=0 # not to run the main() in the beginning
|
19 | 31 | -s EXIT_RUNTIME=1 # exit runtime after execution
|
20 | 32 | -s MODULARIZE=1 # use modularized version to be more flexible
|
21 | 33 | -s EXPORT_NAME="createFFmpegCore" # assign export name for browser
|
22 |
| - -s EXPORTED_FUNCTIONS="[_main, _proxy_main]" # export main and proxy_main funcs |
| 34 | + -s EXPORTED_FUNCTIONS="$EXPORTED_FUNCTIONS" # export main and proxy_main funcs |
23 | 35 | -s EXTRA_EXPORTED_RUNTIME_METHODS="[FS, cwrap, ccall, setValue, writeAsciiToMemory]" # export preamble funcs
|
24 | 36 | -s INITIAL_MEMORY=1073741824 # 1073741824 bytes = 1 GB
|
| 37 | + --post-js wasm/src/post.js |
| 38 | + --pre-js wasm/src/pre.js |
25 | 39 | $OPTIM_FLAGS
|
| 40 | + ${EXTRA_FLAGS[@]} |
26 | 41 | )
|
27 | 42 | echo "FFMPEG_EM_FLAGS=${FLAGS[@]}"
|
| 43 | +emmake make -j |
28 | 44 | emcc "${FLAGS[@]}"
|
0 commit comments