nengel@2: App: h264dec nengel@2: nengel@2: This application decodes H.264 raw videos. nengel@2: nengel@2: Build Sequential/Pthreads: nengel@2: nengel@2: autoreconf -i -f nengel@2: mkdir build nengel@2: cd build nengel@2: ../configure --enable-ssse3 --enable-sdl2 nengel@2: make nengel@2: nengel@2: Build OmpSs: nengel@2: nengel@2: autoreconf -i -f nengel@2: mkdir build nengel@2: cd build-ss nengel@2: ../configure CC=sscc --enable-ssse3 --enable-sdl2 nengel@2: make nengel@2: nengel@2: ssse3 enables assembler optimizations up to ssse3 (optional) nengel@2: sdl enables a rudimentary viewing capability (optional) nengel@2: nengel@2: Usage Sequential/Pthreads: nengel@2: ./h264dec -i $(INPUT_VIDEO) -s nengel@2: ./h264dec -i $(INPUT_VIDEO) -t $(THREADS) nengel@2: nengel@2: Usage OmpSs: nengel@2: NX_PES= ./h264dec -i -e -z --static-3d nengel@2: nengel@2: -e specify the number of entropy decode pipeline buffers and should be ideally nengel@2: the same as the number of threads. nengel@2: nengel@2: -z allows to set the MB reconstruction grouped block size. A size between 6 by 6 to 10 by 10 nengel@2: was found to strike a good balance between overhead and parallelism, but is machine and input nengel@2: dependent. nengel@2: nengel@2: --static-3d performs overlapping wavefront decoding. nengel@2: nengel@2: General usage: nengel@2: -d displays output nengel@2: -f fullscreen nengel@2: -o $(OUT_FILE) write raw YUV nengel@2: -v show framerate nengel@2: nengel@2: nengel@2: The INPUT_VIDEOs are in "inputs_encore", but should be able to decode any raw H.264 stream using nengel@2: one slice per frame, non-interlaced, and CABAC, YUV420. nengel@2: nengel@2: nengel@2: Integrated OmpSs player demo nengel@2: ---------------------------- nengel@2: NOTE: for the player demo SDL2 must be installed. nengel@2: nengel@2: 1. Go to the OmpSs build directory (/home/cchi/Projects/ffmpeg_smp/build-ss) nengel@2: nengel@2: 2. Launch the H.264 decoder with the desired options: nengel@2: nengel@2: NX_PES= ./h264dec -v (verbose) -e -z -d (display) -f (fullscreen) nengel@2: nengel@2: note that should be equal or higher than for optimal performance nengel@2: nengel@2: Examples: nengel@2: nengel@2: NX_PES=7 ./h264dec -i ../../h264_movies/park_joy_2160px5.h264 -v -z 8 8 -df -e 9 nengel@2: NX_PES=7 ./h264dec -i ../../h264_movies/big_buck_bunny_1080p24.h264 -v -d -z 6 6 -e 9 nengel@2: nengel@2: Interacting with the program nengel@2: ---------------------------- nengel@2: Fullscreen mode nengel@2: Window mode nengel@2: Pause/resume nengel@2: Show/hide macroblock borders nengel@2: When macroblock borders are shown resizes the macroblocks nengel@2: Close nengel@2: nengel@2: Force close in case of lockup nengel@2: ----------------------------- nengel@2: On a terminal: killall -9 h264dec