1
1
#! /bin/bash
2
2
3
3
set -eo pipefail
4
- source $( dirname $0 ) /var.sh
4
+ source $( dirname " $0 " ) /var.sh
5
5
6
6
if [[ " $FFMPEG_ST " != " yes" ]]; then
7
7
mkdir -p wasm/packages/core/dist
8
+ EXPORTED_FUNCTIONS=" [_main, _proxy_main]"
8
9
EXTRA_FLAGS=(
9
10
-pthread
10
- -s USE_PTHREADS=1 # enable pthreads support
11
- -s PROXY_TO_PTHREAD=1 # detach main() from browser/UI main thread
11
+ -s USE_PTHREADS=1 # enable pthreads support
12
+ -s PROXY_TO_PTHREAD=1 # detach main() from browser/UI main thread
12
13
-o wasm/packages/core/dist/ffmpeg-core.js
14
+ -s INITIAL_MEMORY=1073741824 # 1GB
13
15
)
14
16
else
15
17
mkdir -p wasm/packages/core-st/dist
18
+ EXPORTED_FUNCTIONS=" [_main]"
16
19
EXTRA_FLAGS=(
17
20
-o wasm/packages/core-st/dist/ffmpeg-core.js
21
+ -s INITIAL_MEMORY=33554432 # 32MB
22
+ -s MAXIMUM_MEMORY=1073741824 # 1GB
23
+ -s ALLOW_MEMORY_GROWTH=1
18
24
)
19
25
fi
20
26
FLAGS=(
@@ -24,19 +30,15 @@ FLAGS=(
24
30
-Qunused-arguments
25
31
fftools/ffmpeg_opt.c fftools/ffmpeg_filter.c fftools/ffmpeg_hw.c fftools/cmdutils.c fftools/ffmpeg.c
26
32
-lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lm -lharfbuzz -lfribidi -lass -lx264 -lx265 -lvpx -lwavpack -lmp3lame -lfdk-aac -lvorbis -lvorbisenc -lvorbisfile -logg -ltheora -ltheoraenc -ltheoradec -lz -lfreetype -lopus -lwebp
27
- -s USE_SDL=2 # use SDL2
28
- -s INVOKE_RUN=0 # not to run the main() in the beginning
29
- -s EXIT_RUNTIME=1 # exit runtime after execution
30
- -s MODULARIZE=1 # use modularized version to be more flexible
31
- -s EXPORT_NAME=" createFFmpegCore" # assign export name for browser
32
- -s EXPORTED_FUNCTIONS=" [_main]" # export main and proxy_main funcs
33
- -s EXPORTED_RUNTIME_METHODS=" [FS, cwrap, ccall, setValue, writeAsciiToMemory]" # export preamble funcs
34
- # -s INITIAL_MEMORY=2146435072 # 2146435072 bytes ~= 2 GB
35
- # -s TOTAL_MEMORY=33554432
36
- -s ALLOW_MEMORY_GROWTH=1
37
- -s INITIAL_MEMORY=33554432 # 33554432 bytes = 32 MB
38
- --pre-js wasm/src/pre.js
33
+ -s USE_SDL=2 # use SDL2
34
+ -s INVOKE_RUN=0 # not to run the main() in the beginning
35
+ -s EXIT_RUNTIME=1 # exit runtime after execution
36
+ -s MODULARIZE=1 # use modularized version to be more flexible
37
+ -s EXPORT_NAME=" createFFmpegCore" # assign export name for browser
38
+ -s EXPORTED_FUNCTIONS=" $EXPORTED_FUNCTIONS " # export main and proxy_main funcs
39
+ -s EXTRA_EXPORTED_RUNTIME_METHODS=" [FS, cwrap, ccall, setValue, writeAsciiToMemory, lengthBytesUTF8, stringToUTF8, UTF8ToString]" # export preamble funcs
39
40
--post-js wasm/src/post.js
41
+ --pre-js wasm/src/pre.js
40
42
$OPTIM_FLAGS
41
43
${EXTRA_FLAGS[@]}
42
44
)
0 commit comments