xiph / aomanalyzer

AV1 / VP9 Bitstream Analyzer
MIT License
223 stars 46 forks source link

Failed to load java script decoder from AOM analyzer #55

Open shihuade opened 6 years ago

shihuade commented 6 years ago

following the build instruction from build step in step 4, AOM analyzer failed to load the javascript decoder inspect.js.

AOM decoder commit ID(master branch): a07a3b2854e7b743adba13bca8adc9a993403075 Analyzer download from Mac 1.1

mbebenita commented 6 years ago

Does the problem persist if you use this decoder an this video file.

Were you able to compile the inspect.js successfully? Can you paste your console output?

shihuade commented 6 years ago

@mbebenita

  1. I install the emsdk from offical website emsdk for Mac and update/install/activate/setup env path info based on [instruction]()

  2. and building aomdec with emsdk followed build step

the comand I build with cmake is

cmake .. -DENABLE_CCACHE=1 \ -DAOM_TARGET_CPU=generic \ -DENABLE_DOCS=0 \ -DCONFIG_ACCOUNTING=1 \ -DCONFIG_INSPECTION=1 \ -DCONFIG_MULTITHREAD=0 \ -DCONFIG_RUNTIME_CPU_DETECT=0 \ -DCONFIG_UNIT_TESTS=0 \ -DCONFIG_WEBM_IO=0 \ -DCMAKE_TOOLCHAIN_FILE=../../EmSDK/emsdk-portable-latest/emscripten/1.37.33/cmake/Modules/Platform/Emscripten.cmake

  1. and the output is

-- Found Git: /usr/bin/git (found version "2.14.3 (Apple Git-98)") -- Found Perl: /usr/bin/perl (found version "5.18.2") -- Looking for pthread_create -- Looking for pthread_create - found -- Found Threads: TRUE
-- Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS) --- aom_configure: Detected CPU: generic Running C compiler test: inline_check_1 -- Performing Test C_TEST_COMPILED -- Performing Test C_TEST_COMPILED - Success Running CXX compiler test: inline_check_1 -- Performing Test CXX_TEST_COMPILED -- Performing Test CXX_TEST_COMPILED - Success Running C compiler test: pthread_check -- Performing Test C_TEST_COMPILED -- Performing Test C_TEST_COMPILED - Success Running CXX compiler test: pthread_check -- Performing Test CXX_TEST_COMPILED -- Performing Test CXX_TEST_COMPILED - Success Running C compiler test: unistd_check -- Performing Test C_TEST_COMPILED -- Performing Test C_TEST_COMPILED - Success Running CXX compiler test: unistd_check -- Performing Test CXX_TEST_COMPILED -- Performing Test CXX_TEST_COMPILED - Success Running C compiler test: fenv_check -- Performing Test C_TEST_COMPILED -- Performing Test C_TEST_COMPILED - Failed C Compiler test fenv_check failed. CMake Warning at build/cmake/util.cmake:78 (message): --- Cannot find ccache, ENABLE_CCACHE ignored. Call Stack (most recent call first): build/cmake/aom_configure.cmake:200 (set_compiler_launcher) CMakeLists.txt:67 (include)

Checking C compiler flag support for: -std=c99 -- Performing Test HAVE_C_FLAG -- Performing Test HAVE_C_FLAG - Success Checking C compiler flag support for: -Wall -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wall -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wdisabled-optimization -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wdisabled-optimization -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wextra -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wextra -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wfloat-conversion -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wfloat-conversion -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wimplicit-function-declaration -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wimplicit-function-declaration -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wlogical-op -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Failed Checking C++ compiler flag support for: -Wlogical-op -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Failed Checking C compiler flag support for: -Wpointer-arith -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wpointer-arith -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wsign-compare -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wsign-compare -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wstack-usage=320000 -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Failed Checking C++ compiler flag support for: -Wstack-usage=320000 -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Failed Checking C compiler flag support for: -Wstring-conversion -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wstring-conversion -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wtype-limits -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wtype-limits -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wuninitialized -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wuninitialized -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wunused -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wunused -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wvla -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wvla -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wshorten-64-to-32 -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wshadow -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wundef -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C compiler flag support for: -Wno-unused-function -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -Wno-unused-function -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -D_LARGEFILE_SOURCE -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -D_LARGEFILE_SOURCE -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success Checking C compiler flag support for: -D_FILE_OFFSET_BITS=64 -- Performing Test C_FLAG_SUPPORTED -- Performing Test C_FLAG_SUPPORTED - Success Checking C++ compiler flag support for: -D_FILE_OFFSET_BITS=64 -- Performing Test CXX_FLAG_SUPPORTED -- Performing Test CXX_FLAG_SUPPORTED - Success -- Found PythonInterp: /usr/bin/python (found version "2.7.10") Checking C compiler flag support for: -std=c++11 -- Performing Test HAVE_CXX_FLAG -- Performing Test HAVE_CXX_FLAG - Success -- Configuring done -- Generating done -- Build files have been written to: /Users/edward.shi/project/AOM/aom/javascript_build

  1. and then make inspect to generate example/inspect.js
shihuade commented 6 years ago
  1. when calling AOM analyzer with below command: /Applications/AOMAnalyzer.app/Contents/MacOS/AOMAnalyzer --frames 1 --dev examples/inspect.js examples/Test.ivf

the output looks like

2018-02-11 14:08:09.087 AOMAnalyzer[36627:860846] IMKInputSession [0x7ffc1c6c9240 presentFunctionRowItemTextInputViewWithEndpoint:completionHandler:] : [self textInputContext]=0x0 NO NSRemoteViewController to client, NSError=Error Domain=NSCocoaErrorDomain Code=4097 "connection from pid 0" UserInfo={NSDebugDescription=connection from pid 0}, com.apple.inputmethod.EmojiFunctionRowItem

shihuade commented 6 years ago
screen shot 2018-02-08 at 8 27 12 pm
shihuade commented 6 years ago

the file path looks like: file:/// wiht 3 "/", is it correct?

mbebenita commented 6 years ago

How about the errors in the browser console? With the --dev flag, you should be able to see the Chrome DevTools and see what the console errors are.

Can you upload the inspect.js and .ivf files somewhere so I can take a look?

rogerzhou-github commented 6 years ago

Hi mbebenita, got same error as shihuade. Built the inspect.js successfully, but the analyzer cannot load. The analyzer works fine on the decoder and input file provided by you. Uploaded the inspect.js and input file. test.zip

mbebenita commented 6 years ago

Thanks @rogerzhou-github, it looks like for some reason your inspect.js file doesn't export the UTF8ToString function that the analyzer expects. How did you build the inspect.js file? Using the directions in the AV1 code base?

mbebenita commented 6 years ago

@rogerzhou-github what version of Emscripten do you have? According to the docs, the function is exported by Emscripten. Also, how did you install Emscripten?

mbebenita commented 6 years ago

@rogerzhou-github looks like Emscripten has changed the list of exported functions, I'll have to add UTF8ToString to EXTRA_EXPORTED_RUNTIME_METHODS in the AOM repo.

rogerzhou-github commented 6 years ago

@mbebenita I am using 1.37.34. Which emscripten version are you using? An older version of emsdk may work. BTW, please let me know after you add the support in the AOM repo. Thanks!

rogerzhou-github commented 6 years ago

@mbebenita, I went back to 1.36.14, and it works.

alibertb commented 6 years ago

Hi, also got an issue in loading decoder. The analyzer still loading decoders. I tried both emscripten 1.38.6 and 1.36.14. I tried the decoder and the input file provided by you and got a black screen on analyzer. image image