[MPlayer-dev-eng] [PATCH] Fix mplayer crash due to faad errors

Giacomo Comes comes at naic.edu
Tue Sep 12 20:37:07 CEST 2006


On Tue, Sep 12, 2006 at 07:00:55PM +0200, Diego Biurrun wrote:
> On Tue, Sep 12, 2006 at 09:58:53AM -0700, Chandan Pitta wrote:
> > In libmpcodecs/ad_faad.c, a memmove is performed with a length of -1
> > in some cases which causes the mplayer to crash with certain .aac
> > (m4a) files. This patch checks to make sure that a memmove is
> > performed only if the length of data to be moved is a positive value.
> 
> Please send/upload a sample file.

You can make sample files yourself:
mencoder -of mpeg -mpegopts format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:aspect=4/3:vrc_maxrate=7500:vbitrate=7500 -o aac.mpg input.avi  -ofps 25 -vf scale=720:576,harddup -oac faac -faacopts br=96

Now if you use aac.mpg as source to mencoder like in this simple command:
mencoder -of mpeg -mpegopts format=dvd -ovc copy -o mp2.mpg aac.mpg -ofps 25 -oac lavc -lavcopts acodec=mp2:abitrate=224

at the end of the encoding process mencoder will show many times these messages:
FAAD: error: Input data buffer too small, trying to resync!
FAAD: error: Unable to find ADTS syncword, trying to resync!
AAC_PROBE: 19 bytes
AUDIO PAYLOAD: f9 c 80 2a
AAC_PROBE: ret 0
and most of the times it will stop with a segmentation fault.

If you apply the patch, the error messages will still be there, but the segmentation
fault error is gone.

Giacomo



More information about the MPlayer-dev-eng mailing list