[FFmpeg-devel] manually hacked configure options increase h264 decoding speed significantly

madshi madshi at gmail.com
Thu Oct 20 10:41:11 CEST 2011


Hey guys,

recently I've noticed that ffdshow decodes faster than my
own ffmpeg dlls. After some digging I found out that ffdshow
uses a couple of custom configure settings that noticably
improve h264 decoding performance. So now I'm wondering
why these options are not activated by default. Is there a
good reason for that?

I'm testing on win32, using MingW/GCC for compiling.

Here's the list of changes I'm currently doing manually to
config.h:

#define HAVE_CMOV 1
#define HAVE_EBP_AVAILABLE 1
#define HAVE_FAST_CLZ 0
#define HAVE_FAST_CMOV 1
#define HAVE_ISATTY 0
#define HAVE_MEMALIGN 1

These are all set differently. The biggest performance
gain comes from activating HAVE_EBP_AVAILABLE,
but the others seem to help a little bit, too.

Furthermore ffdshow also uses a modified mem.c with
"__mingw_aligned_malloc", "__mingw_aligned_realloc"
and "__mingw_aligned_free". Probably the modified mem.c
is necessary for being able to set HAVE_MEMALIGN? Not
sure.

I can't claim to understand what these options do exactly
and why they help h264 decoding performance, but I thought
I should post it here and ask for feedback. If there's no
disadvantage to these modified options, maybe ffmpeg can
use these options by default?

Best regards, Mathias.


More information about the ffmpeg-devel mailing list