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