[MPlayer-users] Crash of mencoder in demux_ts.c line 2728

George Styles ripnetuk at gmail.com
Mon Aug 22 20:07:19 CEST 2005


Hi,

Ive managed to get a reproducable crash when using mencoder to encode into divx.

The crash is a seg fault in demux_ts.c line 2728

	if(!strcmp(dvdsub_lang, ""))
		asgn = 1;

Ive used gdb to get the above info (using --debug-mode=3), but I could
not get a core dump - gdb didnt write one, and trying to continue in
gdb gave
"Continuing.
Cannot fetch general-purpose registers for thread -1210796352: generic error
". 

I dont wanna go there :)

Im encoding a transport stream (with known errors in - i get dropouts
when playing, but it does play to the end in (an old) mplayer on
Win32.

The command is
mencoder test.nuv -oac mp3lame -lameopts mode=2:cbr:br=96 -vf
scale=320:240 -sws 2 -ovc lavc -lavcopts
vcodec=mpeg4:vhq:vbitrate=256:vpass=1 -ffourcc DIVX -o out.avi

I am trying to encode from a MPEG Transport stream (ripped using
MythTV from a DVB-T card). I know the stream includes a video, audio
(2 audio - anyone know why???) and a subtitle.

I think its the subtitle bit thats breaking it. The code which crashes
looks like its trying to parse the subtitle stream, and failing, i
assume because dvbsub_lang is a invalid pointer, or null.

Im gonna try commenting out all that code, as I dont even WANT
subtitles in the output...

Is there any command line option to mencoder that says 'just ignore subtitles'?

Full info below (as much as I could get)

thanks

George

----(FULL GDB INFO HERE)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211349312 (LWP 13819)]
ts_parse (demuxer=0x86b4b20, es=0xbf84b0f0, packet=0x86bf594 "", probe=0)
    at demux_ts.c:2728
2728                                                   
if(!strcmp(dvdsub_lang, ""))

(gdb) bt
#0  ts_parse (demuxer=0x86b4b20, es=0xbf84b0f0, packet=0x86bf594 "", probe=0)
    at demux_ts.c:2728
#1  0x0813b66b in demux_ts_fill_buffer (demuxer=0x1) at demux_ts.c:3130
#2  0x0810ce15 in ds_fill_buffer (ds=0x86b5388) at demuxer.c:464
#3  0x0810d00c in demux_read_data (ds=0x86b5388,
    mem=0x860fc00 "i|UUDUUUDEEEE²Û[\221&ÒD\220", len=640) at demuxer.c:483
#4  0x0809fe83 in mplayer_audio_read (buf=0x0, size=0) at ad_mp3lib.c:29
#5  0x0842d0df in read_frame (fr=0x8610120) at sr1.c:60
#6  0x0842cc43 in MP3_DecodeFrame (hova=0x0, single=-1) at sr1.c:510
#7  0x0809ed94 in decode_audio (sh_audio=0x86c1bc8, buf=0xb76a6008 "\v",
    minlen=70144, maxlen=192000) at dec_audio.c:398
#8  0x08070971 in dec_audio (sh_audio=0x86c1bc8, buffer=0xbf84b470 "\v",
    total=2304) at mencoder.c:334
#9  0x08073084 in main (argc=0, argv=0x0) at mencoder.c:1535
(gdb)

(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x813a5e6 to 0x813a626:
0x0813a5e6 <ts_parse+11272>:    jne    0x813a5f0 <ts_parse+11282>
0x0813a5e8 <ts_parse+11274>:    mov    0x1c(%ebx),%ebx
0x0813a5eb <ts_parse+11277>:    mov    0x34(%esi),%esi
0x0813a5ee <ts_parse+11280>:    mov    %ebx,0xfffffe00(%ebp)
0x0813a5f4 <ts_parse+11286>:    mov    %esi,0xfffffdf8(%ebp)
0x0813a5fa <ts_parse+11292>:    jmp    0x8138bdf <ts_parse+4609>
0x0813a5ff <ts_parse+11297>:    mov    0x85143d8,%eax
0x0813a604 <ts_parse+11302>:    xor    %ecx,%ecx
0x0813a606 <ts_parse+11304>:    cmpb   $0x0,(%eax)
0x0813a609 <ts_parse+11307>:    jne    0x813a673 <ts_parse+11413>
0x0813a60b <ts_parse+11309>:    mov    $0x1,%ecx
0x0813a610 <ts_parse+11314>:    test   %ecx,%ecx
0x0813a612 <ts_parse+11316>:    je     0x8138bdf <ts_parse+4609>
0x0813a618 <ts_parse+11322>:    mov    0xfffffe00(%ebp),%ebx
0x0813a61e <ts_parse+11328>:    mov    0xfffffee8(%ebp),%ecx
0x0813a624 <ts_parse+11334>:    mov    0xffffffbc(%ebp),%esi
End of assembler dump.

(gdb) info all-registers
eax            0x0      0
ecx            0x0      0
edx            0x1      1
ebx            0x86c0800        141297664
esp            0xbf84ae90       0xbf84ae90
ebp            0xbf84b0d8       0xbf84b0d8
esi            0x2      2
edi            0x1      1
eip            0x813a606        0x813a606
eflags         0x10246  66118
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            -nan(0x7f7f7f7f7f7f7f7f) (raw 0xffff7f7f7f7f7f7f7f7f)
st1            -nan(0x7f7f7f7f7f7f7f7f) (raw 0xffff7f7f7f7f7f7f7f7f)
st2            -nan(0x4144484845444447) (raw 0xffff4144484845444447)
st3            68544    (raw 0x400f85e0000000000000)
st4            177874   (raw 0x4010adb4800000000000)
st5            2.5070002079010009765625 (raw 0x4000a072b10000000000)
st6            5.2400000000000002131628207280300558     (raw 0x4001a7ae147ae147b
000)
st7            1        (raw 0x3fff8000000000000000)
fctrl          0x37f    895
fstat          0x120    288
ftag           0xffff   65535
fiseg          0x73     115
fioff          0xb7ec8881       -1209235327
foseg          0x7b     123
fooff          0xb7eeaa08       -1209095672
fop            0x1c9    457
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
000)
st7            1        (raw 0x3fff8000000000000000)
fctrl          0x37f    895
fstat          0x120    288
ftag           0xffff   65535
fiseg          0x73     115
fioff          0xb7ec8881       -1209235327
foseg          0x7b     123
fooff          0xb7eeaa08       -1209095672
fop            0x1c9    457
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
---Type <return> to continue, or q <return> to quit---
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1f80   8064
mm0            {uint64 = 0x7f7f7f7f7f7f7f7f, v2_int32 = {0x7f7f7f7f,
    0x7f7f7f7f}, v4_int16 = {0x7f7f, 0x7f7f, 0x7f7f, 0x7f7f}, v8_int8 = {0x7f,
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}}
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
  uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1f80   8064
mm0            {uint64 = 0x7f7f7f7f7f7f7f7f, v2_int32 = {0x7f7f7f7f,
    0x7f7f7f7f}, v4_int16 = {0x7f7f, 0x7f7f, 0x7f7f, 0x7f7f}, v8_int8 = {0x7f,
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}}
---Type <return> to continue, or q <return> to quit---
mm1            {uint64 = 0x7f7f7f7f7f7f7f7f, v2_int32 = {0x7f7f7f7f,
    0x7f7f7f7f}, v4_int16 = {0x7f7f, 0x7f7f, 0x7f7f, 0x7f7f}, v8_int8 = {0x7f,
    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}}
mm2            {uint64 = 0x4144484845444447, v2_int32 = {0x45444447,
    0x41444848}, v4_int16 = {0x4447, 0x4544, 0x4848, 0x4144}, v8_int8 = {0x47,
    0x44, 0x44, 0x45, 0x48, 0x48, 0x44, 0x41}}
mm3            {uint64 = 0x85e0000000000000, v2_int32 = {0x0, 0x85e00000},
  v4_int16 = {0x0, 0x0, 0x0, 0x85e0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    0xe0, 0x85}}
mm4            {uint64 = 0xadb4800000000000, v2_int32 = {0x0, 0xadb48000},
  v4_int16 = {0x0, 0x0, 0x8000, 0xadb4}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0x80, 0xb4, 0xad}}
mm5            {uint64 = 0xa072b10000000000, v2_int32 = {0x0, 0xa072b100},
  v4_int16 = {0x0, 0x0, 0xb100, 0xa072}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
    0xb1, 0x72, 0xa0}}
mm6            {uint64 = 0xa7ae147ae147b000, v2_int32 = {0xe147b000,
    0xa7ae147a}, v4_int16 = {0xb000, 0xe147, 0x147a, 0xa7ae}, v8_int8 = {0x0,
    0xb0, 0x47, 0xe1, 0x7a, 0x14, 0xae, 0xa7}}
mm7            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
  v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    0x0, 0x80}}

(Damn these processors have a lot of regs these days)!

Couldnt get core dump because of above reason.

----(ENVIRONMENT INFO HERE)

Running kernel 2.6.12 with FC4
Got current CVS ffmpeg (not sure if mplayer/encoder hook into this or not)
lame-3.96.1.
xvidcore-1.1.0-beta2.
MPlayer-1.0pre7


---(FILE WHICH CRASHES IT INFO)
ffmpeg says:

Input #0, mpegts, from 'test.nuv':
  Duration: 01:10:06.9, start: 47611.368089, bitrate: 5933 kb/s
  Stream #0.0[0xc9]: Video: mpeg2video, yuv420p, 720x576, 25.00 fps, 8000 kb/s
  Stream #0.1[0x191](eng): Audio: mp2, 48000 Hz, stereo, 256 kb/s
  Stream #0.2[0x259](eng): Subtitle: dvbsub
  Stream #0.3[0x192](eng): Audio: mp2, 48000 Hz, mono, 64 kb/s




More information about the MPlayer-users mailing list