[MPlayer-users] mencoder -demuxer +lavf crash when copying audio

Pascal Stumpf Pascal.Stumpf at cubes.de
Tue Feb 17 11:29:18 CET 2015


ogmrip/shrip uses an mencoder command line like this:

./mencoder -nocache -noslices -noconfig all -demuxer +lavf -o
/tmp/audio.LDUTTX -aid 128  -noskip -mc 0 -ovc copy -of rawaudio
-oac copy dvd://1

This crashes with a SIGBUS; backtrace:

#0  0x00000695ad9e2f1a in demux_lavf_control (demuxer=Variable "demuxer"
is not available.
)
    at libmpdemux/demux_lavf.c:808
808                         priv->avfc->streams[ds->id]->discard =
AVDISCARD_ALL;
(gdb) p ds->id
$1 = 128
(gdb) bt    
#0  0x00000695ad9e2f1a in demux_lavf_control (demuxer=Variable "demuxer"
is not available.
)
    at libmpdemux/demux_lavf.c:808
#1  0x00000695ad969c2b in demuxer_switch_audio (demuxer=0x697ea13c000, 
    index=128) at libmpdemux/demuxer.c:1555
#2  0x00000695ad910a42 in select_audio (demuxer=0x697ea13c000,
audio_id=128, 
    audio_lang=Variable "audio_lang" is not available.
) at mpcommon.c:411
#3  0x00000695ad8ee9e3 in main (argc=21, argv=0x7f7ffffdbf48) at
mencoder.c:721
(gdb)


As you can sea, line 808 reads beyond the array because it tries to use
ds->id as index, which is much too large.  In this case, the array goes
up to 8.

I don't know how to calculate the correct index here, but surely there's
someone here who knows the code well enough.


More information about the MPlayer-users mailing list