• Limin Wang's avatar
    avcodec/v410dec: add support for frame and slice threading · f0dbeb5e
    Limin Wang authored
    1, Test server configure:
    [root@localhost ~]# cat /proc/cpuinfo  |grep "model name"
    model name	: Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
    model name	: Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
    ...
    
    [root@localhost ~]# free -h
                  total        used        free      shared  buff/cache   available
                  Mem:           102G        1.1G        100G         16M        657M        100G
                  Swap:          4.0G          0B        4.0G
    
    2, Test result:
    encode the v410 input data for testing:
     ./ffmpeg -y -i 4k_422.ts  -c:v v410 -vframes 10 test.avi
    
    master:
    ./ffmpeg -y -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 37 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed= 8.6x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=166.016s stime=102.192s rtime=268.120s
    bench: maxrss=273400kB
    
    patch applied:
    ./ffmpeg -y -threads 2 -thread_type slice -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 53 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed=12.3x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=165.135s stime=100.456s rtime=187.994s
    bench: maxrss=275476kB
    
    ./ffmpeg -y -threads 2 -thread_type frame -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 61 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed=14.1x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=171.386s stime=122.102s rtime=163.637s
    bench: maxrss=340308kB
    Signed-off-by: 's avatarLimin Wang <lance.lmwang@gmail.com>
    Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    f0dbeb5e
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...