[FFmpeg-trac] #2122(swresample:new): Commit 75d900d makes skipping in the input while using swresample very slow

FFmpeg trac at avcodec.org
Tue Jan 8 15:08:47 CET 2013


#2122: Commit 75d900d makes skipping in the input while using swresample very slow
----------------------------------+------------------------------------
               Reporter:  eelco   |                  Owner:  michael
                   Type:  defect  |                 Status:  new
               Priority:  normal  |              Component:  swresample
                Version:  1.1     |               Keywords:
             Blocked By:          |               Blocking:
Reproduced by developer:  0       |  Analyzed by developer:  0
----------------------------------+------------------------------------
 In commit 75d900d52edb281eb4ab4989800e75abe7555937 the memory allocation
 method used for allocating memory for audio switched to using av_mallocz
 (from av_malloc). I’m curious to learn why this change was made, because
 it makes skipping in a file (using -ss before the input) several orders of
 magnitude slower.

 Version 1.0:
 {{{
 % time ./ffmpeg -ss 2 -i ~/Downloads/example.mkv -t 1 -vcodec copy -f
 matroska -map 0:0 -acodec ac3 -async 1 -map 0:1 -y /dev/null
 ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
   built on Dec 28 2012 14:35:11 with llvm-gcc 4.2.1 (LLVM build
 2336.11.00)
 ...
 frame=   74 fps=7.2 q=-1.0 Lsize=       0kB time=00:00:01.01 bitrate=
 0.0kbits/s
 video:28kB audio:56kB subtitle:0 global headers:0kB muxing overhead
 -100.000000%
        10.32 real         3.52 user         6.74 sys
 }}}

 Version 1.0 with commit 75d900d reverted:
 {{{
 % time ./ffmpeg -ss 2 -i ~/Downloads/example.mkv -t 1 -vcodec copy -f
 matroska -map 0:0 -acodec ac3 -async 1 -map 0:1 -y /dev/null
 ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
   built on Dec 28 2012 14:35:11 with llvm-gcc 4.2.1 (LLVM build
 2336.11.00)
 ...
 frame=   74 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:01.01 bitrate=
 0.0kbits/s
 video:28kB audio:56kB subtitle:0 global headers:0kB muxing overhead
 -100.000000%
         0.46 real         0.05 user         0.35 sys
 }}}

 (Note that it wasn’t a clean build, so the ‘built on’ banner didn’t
 change.)

 I also tried testing with an -ss value of 100, but killed it after a about
 5 minutes. With the commit reverted it takes about a second.

 We found the cause of the problem by profiling ffmpeg and saw that all
 time was being spent in av_mallocz. I haven’t looked into it any further,
 but I suspect that the av_mallocz call exposes a bug that previously
 didn’t cause any problem.

 I also checked the 1.1 release, the problem is still there.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2122>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list