• Limin Wang's avatar
    avcodec/v210dec: add support for frame and slice threading · d07d1c1d
    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 v210 input data for testing:
    ./ffmpeg -y -i 4k_422.ts  -c:v v210 -vframes 10 test.avi
    
    master:
    ./ffmpeg -y -threads 1 -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 60 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed=13.7x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=101.869s stime=66.181s rtime=167.996s
    bench: maxrss=186552kB
    
    patch applied:
    ./ffmpeg -y -threads 2 -thread_type slice -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 72 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed=16.5x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=103.562s stime=74.858s rtime=139.599s
    bench: maxrss=188616kB
    
    ./ffmpeg -y -threads 2 -thread_type frame -stream_loop 1000 -i ./test.avi -benchmark -f null -
    frame=10010 fps= 85 q=-0.0 Lsize=N/A time=00:38:26.30 bitrate=N/A speed=19.6x
    video:5240kB audio:432432kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    bench: utime=114.310s stime=92.685s rtime=117.693s
    bench: maxrss=231896kB
    Signed-off-by: 's avatarLimin Wang <lance.lmwang@gmail.com>
    Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    d07d1c1d
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...