[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