Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#939 closed defect (needs_more_info)

FFplay issue when SDL compiled with GCC 4.6.2

Reported by: Kyle Owned by:
Priority: important Component: ffplay
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

I'm running into a issue with ffplay.exe when SDL was compiled with MinGW-w64, using GCC 4.6.2.

I'm using the latest FFmpeg git.

ffplay.exe will flash open then close.

No error is shown, and here is the complete output:

ffplay version N-37084-g0bb57f8 Copyright (c) 2003-2012 the FFmpeg developers
  built on Jan 24 2012 01:56:49 with gcc 4.6.2
  configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect
  libavutil      51. 34.101 / 51. 34.101
  libavcodec     53. 58.100 / 53. 58.100
  libavformat    53. 30.100 / 53. 30.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 59.101 /  2. 59.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\Kyle\Videos\video.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2011-03-03 01:26:03
  Duration: 00:01:55.93, start: 0.000000, bitrate: 2980 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720
[SAR 1:1 DAR 16:9], 2846 kb/s, 29.97 fps, 29.92 tbr, 1k tbn, 59.83 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 128
 kb/s
    Metadata:
      creation_time   : 2011-03-03 01:26:05
      handler_name    :
   0.05 A-V: -0.020 fd=   0 aq=  320KB vq= 5828KB sq=    0B f=0/0   f=0/0

The playback/log simply ends there.

FFplay does this with every media file I've tried.

When SDL is compiled with MinGW-w64, using GCC 4.5.3, there doesn't seem to be any issues.

I'm not sure if this is a GCC, SDL, MinGW-w64, or an FFplay bug, but I thought I would try here first anyway.

I can provide any addition information that might be needed.

Change History (6)

comment:1 by Michael Niedermayer, 13 years ago

Can you try with another SDL application ? (dunno what is most readily available for windows, on unix id use mplayer)
If it has problems too then its not ff*

comment:2 by Kyle, 13 years ago

I followed the bug reporting guide, here are my findings:

The commands:
"ffplay_g.exe" -v 9 -loglevel 99 -i "smaple-media.mp4"

Returns:

ffplay version N-37084-g0bb57f8 Copyright (c) 2003-2012 the FFmpeg developers
  built on Jan 26 2012 21:40:51 with gcc 4.6.2
  configuration:
  libavutil      51. 34.101 / 51. 34.101
  libavcodec     53. 58.100 / 53. 58.100
  libavformat    53. 30.100 / 53. 30.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 59.101 /  2. 59.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 04e5a500] Format mov,mp4,m4a,3gp,3g2,mj2 probed with
size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 04e5a500] ISO: File Type Major Brand: mp42
[h264 @ 04e6c540] err{or,}_recognition separate: 1; 1
[h264 @ 04e6c540] err{or,}_recognition combined: 1; 10001
[aac @ 04e607e0] err{or,}_recognition separate: 1; 1
[aac @ 04e607e0] err{or,}_recognition combined: 1; 10001
[aac @ 04e607e0] Unsupported bit depth: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 04e5a500] All info found
rfps: 29.583333 0.016682
    Last message repeated 1 times
rfps: 29.666667 0.009429
    Last message repeated 1 times
rfps: 29.750000 0.004243
    Last message repeated 1 times
rfps: 29.833333 0.001125
    Last message repeated 1 times
rfps: 29.916667 0.000075
rfps: 30.000000 0.001092
rfps: 30.083333 0.004177
rfps: 30.166667 0.009330
rfps: 30.250000 0.016550
rfps: 59.500000 0.016972
    Last message repeated 1 times
rfps: 59.583333 0.009702
    Last message repeated 1 times
rfps: 59.666667 0.004500
    Last message repeated 1 times
rfps: 59.750000 0.001365
rfps: 59.833333 0.000298
rfps: 59.916667 0.001299
rfps: 29.970030 0.000488
rfps: 59.940060 0.001952
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'smaple-media.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2011-03-03 01:26:03
  Duration: 00:01:55.93, start: 0.000000, bitrate: 2980 kb/s
    Stream #0:0(und), 41, 1/1000: Video: h264 (High) (avc1 / 0x31637661), yuv420
p, 1280x720 [SAR 1:1 DAR 16:9], 500/29917, 2846 kb/s, 29.97 fps, 29.92 tbr, 1k t
bn, 59.83 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und), 42, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, ste
reo, s16, 128 kb/s
    Metadata:
      creation_time   : 2011-03-03 01:26:05
      handler_name    :
[aac @ 04e607e0] err{or,}_recognition separate: 1; 10001
[aac @ 04e607e0] err{or,}_recognition combined: 1; 10001
[aac @ 04e607e0] Unsupported bit depth: 0
[h264 @ 04e6c540] err{or,}_recognition separate: 1; 10001
[h264 @ 04e6c540] err{or,}_recognition combined: 1; 10001
[h264 @ 04e6c540] detected 8 logical cores
   0.22 A-V: -0.012 fd=   0 aq=  320KB vq= 5865KB sq=    0B f=0/0   f=0/0

Running gdb 7.4 on ffplay_g.exe shows:

(gdb) r -i "smaple-media.mp4"
Starting program: C:\Users\Kyle\Desktop/ffplay_g.exe -i "smaple-media.mp4"
[New Thread 4928.0x17b4]
warning: Can not parse XML library list; XML support was disabled at compile tim
e
ffplay version N-37084-g0bb57f8 Copyright (c) 2003-2012 the FFmpeg developers
  built on Jan 26 2012 21:40:51 with gcc 4.6.2
  configuration:
  libavutil      51. 34.101 / 51. 34.101
  libavcodec     53. 58.100 / 53. 58.100
  libavformat    53. 30.100 / 53. 30.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 59.101 /  2. 59.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
[New Thread 4928.0x165c]
[New Thread 4928.0xee0]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'smaple-media.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2011-03-03 01:26:03
  Duration: 00:01:55.93, start: 0.000000, bitrate: 2980 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720
[SAR 1:1 DAR 16:9], 2846 kb/s, 29.97 fps, 29.92 tbr, 1k tbn, 59.83 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 128
 kb/s
    Metadata:
      creation_time   : 2011-03-03 01:26:05
      handler_name    :
[New Thread 4928.0x15c8]
[New Thread 4928.0x16d8]
[New Thread 4928.0x7d8]
[New Thread 4928.0x580]
[New Thread 4928.0x146c]
[New Thread 4928.0xb98]
[New Thread 4928.0xe74]
[New Thread 4928.0x17a4]
[New Thread 4928.0x1478]
[New Thread 4928.0x11d4]
[New Thread 4928.0x12a0]
[New Thread 4928.0x500]
[New Thread 4928.0x3a4]
[New Thread 4928.0x1048]
[New Thread 4928.0x15f4]
[New Thread 4928.0x898]
[New Thread 4928.0x5e0]
[New Thread 4928.0x4e4]
 [New Thread 4928.0xc80]  0 aq=  320KB vq= 5832KB sq=    0B f=0/0   f=0/0
 [New Thread 4928.0x680]
 0.[New Thread 4928.0x1798]
06 A-V: -0.008 fd=   0 aq=  320KB vq= 5828KB sq=    0B f=0/0
Program received signal SIGSEGV, Segmentation fault.
0x00a8df45 in ColorRGBDitherYV12MMX1X (colortab=0x5c71fc0,
    rgb_2_pix=0xa7a9ba,
    lum=0xa92ec98 "M\377\377\377O\377\377\377P\377\377\377Q\377\377\377S\377\377
\377T\377\377\377V\377\377\377W\377\377\377X\377\377\377Z\377\377\377[\377\377\3
77]\377\377\377^\377\377\377_\377\377\377a\377\377\377b\377\377\377d\377\377\377
e\377\377\377f\377\377\377h\377\377\377i\377\377\377k\377\377\377l\377\377\377m\
377\377\377o\377\377\377p\377\377\377r\377\377\377s\377\377\377t\377\377\377v\37
7\377\377w\377\377\377y\377\377\377z\377\377\377{\377\377\377}\377\377\377~\377\
377\377\200\377\377\377\201\377\377\377,\377\377\377,\377\377\377.\377\377\377+\
377\377\377\210\377\377\377%\377\377\377<\377\377\377O\377\377\377Z\377\377\377\
217\377\377\377\220\377\377\377'\377\377\377"..., cr=0xa92fcb0 "",
    cb=0xc7d0020 '&' <repeats 70 times>, "''((", ')' <repeats 116 times>, "**++,
,,,,,"..., out=0xc8b1020 'ƒ' <repeats 128 times>, ',' <repeats 72 times>...,
    rows=210670624, cols=205783040, mod=720)
    at ../source/sdl-1.2.14/src/video/SDL_yuv_mmx.c:94
94      ../source/sdl-1.2.14/src/video/SDL_yuv_mmx.c: No such file or directory.

(gdb)

I notably see:
../source/sdl-1.2.14/src/video/SDL_yuv_mmx.c: No such file or directory.

running bt in gdb runs through an endless stream of:

#2694 0x2e2e2e2e in ?? ()
#2695 0x2e2e2e2e in ?? ()
#2696 0x2e2e2e2e in ?? ()

Running:
disass $pc-32,$pc+32

Returns:

Dump of assembler code from 0xa8df25 to 0xa8df65:
   0x00a8df25 <ColorRGBDitherYV12MMX1X+53>:     shl    $0x2,%esi
   0x00a8df28 <ColorRGBDitherYV12MMX1X+56>:     mov    %esi,0x3c(%esp)
   0x00a8df2c <ColorRGBDitherYV12MMX1X+60>:     lea    (%ecx,%ebx,4),%esi
   0x00a8df2f <ColorRGBDitherYV12MMX1X+63>:     mov    0x2c(%esp),%ebx
   0x00a8df33 <ColorRGBDitherYV12MMX1X+67>:     push   $0x0
   0x00a8df35 <ColorRGBDitherYV12MMX1X+69>:     push   %ebx
   0x00a8df36 <ColorRGBDitherYV12MMX1X+70>:     mov    0x28(%esp),%ebx
   0x00a8df3a <ColorRGBDitherYV12MMX1X+74>:     mov    %ebx,0x4(%esp)
   0x00a8df3e <ColorRGBDitherYV12MMX1X+78>:     pop    %ebx
   0x00a8df3f <ColorRGBDitherYV12MMX1X+79>:     nop
   0x00a8df40 <ColorRGBDitherYV12MMX1X+80>:     push   %ebx
   0x00a8df41 <ColorRGBDitherYV12MMX1X+81>:     mov    0x4(%esp),%ebx
=> 0x00a8df45 <ColorRGBDitherYV12MMX1X+85>:     movd   (%ebx),%mm1
   0x00a8df48 <ColorRGBDitherYV12MMX1X+88>:     pop    %ebx
   0x00a8df49 <ColorRGBDitherYV12MMX1X+89>:     pxor   %mm7,%mm7
   0x00a8df4c <ColorRGBDitherYV12MMX1X+92>:     movd   (%edx),%mm2
   0x00a8df4f <ColorRGBDitherYV12MMX1X+95>:     punpcklbw %mm7,%mm1
   0x00a8df52 <ColorRGBDitherYV12MMX1X+98>:     punpckldq %mm1,%mm1
   0x00a8df55 <ColorRGBDitherYV12MMX1X+101>:    psubw  0xb0ee70,%mm1
   0x00a8df5c <ColorRGBDitherYV12MMX1X+108>:    movq   %mm1,%mm0
   0x00a8df5f <ColorRGBDitherYV12MMX1X+111>:    pmullw 0xb0ee78,%mm0
End of assembler dump.

And finally, running:
info all-registers

Returns:

eax            0x500    1280
ecx            0xc49c170        206160240
edx            0xc7f4dbc        209669564
ebx            0xa938ffe        177442814
esp            0x28fbec 0x28fbec
ebp            0xc7d0020        0xc7d0020
esi            0xc49d570        206165360
edi            0xa92ec50        177400912
eip            0xa8df45 0xa8df45 <ColorRGBDitherYV12MMX1X+85>
eflags         0x210283 [ CF SF IF RF ID ]
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x53     83
gs             0x2b     43
st0            -nan(0x9002000090020)    (raw 0xffff0009002000090020)
st1            -nan(0x7c2000007c20)     (raw 0xffff00007c2000007c20)
st2            -inf     (raw 0xffff0000000000000000)
st3            -nan(0x2000000020)       (raw 0xffff0000002000000020)
st4            -nan(0x92b2000092b20)    (raw 0xffff00092b2000092b20)
st5            -nan(0x92b2000092b20)    (raw 0xffff00092b2000092b20)
st6            -nan(0x9000900000000)    (raw 0xffff0009000900000000)
st7            -nan(0x2b2b7c7c2b2b7c7c) (raw 0xffff2b2b7c7c2b2b7c7c)
fctrl          0x37f    895
fstat          0x20     32
ftag           0xaaaa   43690
fiseg          0x23     35
fioff          0x40362a 4208170
foseg          0x2b     43
fooff          0x28fda0 2686368
fop            0x5d8    1496
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},
  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   [ IM DM ZM OM UM PM ]
mm0            {uint64 = 0x9002000090020, v2_int32 = {0x90020, 0x90020},
  v4_int16 = {0x20, 0x9, 0x20, 0x9}, v8_int8 = {0x20, 0x0, 0x9, 0x0, 0x20,
    0x0, 0x9, 0x0}}
mm1            {uint64 = 0x7c2000007c20, v2_int32 = {0x7c20, 0x7c20},
  v4_int16 = {0x7c20, 0x0, 0x7c20, 0x0}, v8_int8 = {0x20, 0x7c, 0x0, 0x0,
    0x20, 0x7c, 0x0, 0x0}}
mm2            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
    0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3            {uint64 = 0x2000000020, v2_int32 = {0x20, 0x20}, v4_int16 = {
    0x20, 0x0, 0x20, 0x0}, v8_int8 = {0x20, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
    0x0}}
mm4            {uint64 = 0x92b2000092b20, v2_int32 = {0x92b20, 0x92b20},
  v4_int16 = {0x2b20, 0x9, 0x2b20, 0x9}, v8_int8 = {0x20, 0x2b, 0x9, 0x0,
    0x20, 0x2b, 0x9, 0x0}}
mm5            {uint64 = 0x92b2000092b20, v2_int32 = {0x92b20, 0x92b20},
  v4_int16 = {0x2b20, 0x9, 0x2b20, 0x9}, v8_int8 = {0x20, 0x2b, 0x9, 0x0,
    0x20, 0x2b, 0x9, 0x0}}
mm6            {uint64 = 0x9000900000000, v2_int32 = {0x0, 0x90009},
  v4_int16 = {0x0, 0x0, 0x9, 0x9}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x9, 0x0,
    0x9, 0x0}}
mm7            {uint64 = 0x2b2b7c7c2b2b7c7c, v2_int32 = {0x2b2b7c7c,
    0x2b2b7c7c}, v4_int16 = {0x7c7c, 0x2b2b, 0x7c7c, 0x2b2b}, v8_int8 = {
    0x7c, 0x7c, 0x2b, 0x2b, 0x7c, 0x7c, 0x2b, 0x2b}}

I hope this information helps.

I haven't had a chance to build MPlayer for Windows, but I believe the info I provided should help.

If you would still prefer I attempt to build MPlayer, I can try.

comment:3 by Carl Eugen Hoyos, 13 years ago

All information that you provided indicates a bug in either SDL or gcc. Please test mplayer -vo sdl to make sure.

comment:4 by Michael Niedermayer, 12 years ago

Resolution: needs_more_info
Status: newclosed

Closing as this is most likely a SDL bug. (and noone provided any evidence in 5 month against this)
If you find the time to test if the libSDL compiled with gcc 4.6.2 works and it does work then please reopen this bug report

comment:5 by Roger Pack, 12 years ago

I also get this with windows or mingw builds. work around: setting CFLAGS= before building. weird.

Note: See TracTickets for help on using tickets.