Hi, it's amazing for emscripten build c/c++ program to wasm, and run at a 
website !

Recently, I try to emcc build ffprobe.bc to ffprobe.wasm, there output two 
file : ffprobe.js and ffprobe.wasm

the ffprobe.js is a bridge to fetch and compile ffprobe.wasm, and run it by 
WebAssembly Api at browsers Web Worker

I use emcc --pre-js --post-js to set my custom change in ffprobe.js

emcc \
  -s EXIT_RUNTIME=0 \
  -s ENVIRONMENT=worker \
  -s WASM=1 \
  --pre-js pre.js \
  --post-js post.js \
  -o ffprobe.js \
  ffprobe.bc && \

My Question Below:

If I wrapped the compiled code by a function, and work it on Web Worker, it 
works good.

But when run the function multiple, fetch and init ffprobe.wasm will call 
multiple. (its slow...)

I try to find a way to just re run the compiled binary.

So I change the code,to re run() multiple,below is what I do at my Web 
Worker onmessage function :

self.onmessage = function (e) {
    - set noIntialRun: true
    - set Module['calledRun'] = false
    - set shouldRunNow = true
    - call Module['run'](e.data.arguments)
}

> -------------------------------------------------------------- <

The result is

    - if i just call arguments = ["-version"], it works well at any times I 
call the function
    - if i do the FS usage,like arguments = ["-v", "error", 
"-select_streams", "v:0", "-show_entries", "stream=width,height", "-of", 
"csv=s=x:p=0", "/my_data/test_1.flv"],this output the video metainfo width 
and height. it works well at first call, and the second time , stderr: Argument 
'/my_data/test2.flv' provided as input filename, but '/my_data/test1.flv' 
was already specified.

    The error reason is:
       when call run(arguments) at the second time, the arguments have 
double length (the old args concat the new args), just like "ffprobe 
-version -version" ("-version -version" command can work well. but the FS 
usage double length will throw the error -- same behavior at terminal when 
ffprobe double -i file) 

is there a way to "RESET arguments" ?
can someone help me ... thx all !

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/be85ecb3-2b97-419d-b0ea-0f6f3414beae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to