[MPlayer-users] MPlayer crashes when playing with -vfm xvid, a file encoded with FFmpeg MPEG-4 encoder and the multi-thread option

Joshua F. singing.frogg at gmail.com
Fri May 23 23:22:18 CEST 2008


Hi.

It seems that it's a XviD/FFmpeg codec bug more than a MPlayer one, as
  it doesn't play well either with Windows XP and Windows Media Player.
I have to do the last pass of every encode with only one thread, which 
imply poor encoding speed.

Thank you for reading.

--
Joshua F.
-------------- next part --------------
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(gdb) run -v -vfm xvid ../temp.avi
Starting program: /home/homer/mplayer/mplayer -v -vfm xvid ../temp.avi
[Thread debugging using libthread_db enabled]
MPlayer dev-SVN-r26863-4.2.3 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz (Family: 6, Model: 15, Stepping: 11)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
get_path('codecs.conf') -> '/home/homer/.mplayer/codecs.conf'
Reading /home/homer/.mplayer/codecs.conf: Can't open '/home/homer/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open '/usr/local/etc/mplayer/codecs.conf': No such file or directory
Using built-in default codecs.conf.
Configuration: --enable-debug=3
CommandLine: '-v' '-vfm' 'xvid' '../temp.avi'
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
get_path('fonts') -> '/home/homer/.mplayer/fonts'
Using nanosleep() timing
get_path('input.conf') -> '/home/homer/.mplayer/input.conf'
Can't open input config file /home/homer/.mplayer/input.conf: No such file or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file or directory
Falling back on default (hardcoded) input config
get_path('temp.avi.conf') -> '/home/homer/.mplayer/temp.avi.conf'

Playing ../temp.avi.
get_path('sub/') -> '/home/homer/.mplayer/sub/'
[file] File size is 37463778 bytes
STREAM: [file] ../temp.avi
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
LAVF_check: avi format
AVI file format detected.
list_end=0x120
======= AVI Header =======
us/frame: 41708  (fps=23.976)
max bytes/sec: 0
padding: 0
MainAVIHeader.dwFlags: (2320) HAS_INDEX IS_INTERLEAVED TRUST_CKTYPE
frames  total: 6959   initial: 0
streams: 1
Suggested BufferSize: 0
Size:  704 x 400
==========================
list_end=0x120
==> Found video stream: 0
[aviheader] Video stream found, -vid 0
====== STREAM Header =====
Type: vids   FCC: XVID (44495658)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 24000/1001 = 23.976
Start: 0   Len: 6959
Suggested BufferSize: 111007
Quality 0
Sample size: 0
==========================
Found 'bih', 40 bytes of 40
======= VIDEO Format ======
  biSize 40
  biWidth 704
  biHeight 400
  biPlanes 1
  biBitCount 24
  biCompression 1145656920='XVID'
  biSizeImage 844800
===========================
Regenerating keyframe table for MPEG-4 video.
======= Video Properties Header =======
Format: 0  VideoStandard: 0
VRefresh: 24  HTotal: 704  VTotal: 400
FrameAspect: 16:9  Framewidth: 704  Frameheight: 400
Fields: 1
  == Field 0 description ==
  CompressedBMHeight: 400  CompressedBMWidth: 704
  ValidBMHeight: 400  ValidBMWidth: 704
  ValidBMXOffset: 0  ValidBMYOffset: 0
  VideoXOffsetInT: 0  VideoYValidStartLine: 0
=======================================
list_end=0x152
hdr=Software  size=30
Software  : MEncoder dev-SVN-r26840-4.2.3
list_end=0x239F3EA
Found movie at 0x100C - 0x239F3EA
Reading INDEX block, 6959 chunks for 6959 frames (fpos=37352434).
AVI index offset: 0x1008 (movi=0x100C idx0=0x4 idx1=0x8A62)
Auto-selected AVI video ID = 0
AVI: Searching for audio stream (id:-1)
AVI: No audio stream found -> no sound.
AVI video size=37289205 (6959) audio size=0 (0)
VIDEO:  [XVID]  704x400  24bpp  23.976 fps  1027.8 kbps (125.5 kbyte/s)
[V] filefmt:3  fourcc:0x44495658  size:704x400  fps:23.976  ftime:=0.0417
Clip info:
 Software: MEncoder dev-SVN-r26840-4.2.3
get_path('sub/') -> '/home/homer/.mplayer/sub/'
dvdsublang...temp fr en eng
dvdsublang...temp fr en eng
dvdsublang...temp fr en eng
X11 opening display: :0.0
vo: X11 color mask:  FFFFFF  (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0.0" => local display)
[x11] Detected wm supports NetWM.
[x11] Detected wm supports FULLSCREEN state.
[x11] Detected wm supports ABOVE state.
[x11] Detected wm supports BELOW state.
[x11] Current fstype setting honours FULLSCREEN ABOVE BELOW X atoms
[VO_XV] Using Xv Adaptor #0 (NV17 Video Texture)
[xv common] Drawing no colorkey.
[xv common] Maximum source image dimensions: 2046x2046
Opening video filter: [eq2=0.9:0.6:0.2]
vf_eq2: c=1.00 b=0.00 g=0.9000 s=1.00 
vf_eq2: c=0.60 b=0.00 g=0.9000 s=1.00 
vf_eq2: c=0.60 b=0.20 g=0.9000 s=1.00 
vf_eq2: c=0.60 b=0.20 g=0.9000 s=1.00 
==========================================================================
Trying to force video codec driver family xvid...
Opening video decoder: [xvid] XviD 1.0 decoder
xvid: using library version 1.1.3 (build xvid-1.1.3)
Selected video codec: [xvid] vfm: xvid (XviD (MPEG-4))
==========================================================================
Audio: no sound
Freeing 0 unused audio chunks.
Starting playback...
VDec: vo config request - 704 x 400 (preferred colorspace: Planar YV12)
Trying filter chain: eq2 vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO Config (704x400->712x400,flags=0,'MPlayer',0x32315659)
REQ: flags=0x437  req=0x0  
VO: [xv] 704x400 => 712x400 Planar YV12 
VO: Description: X11/Xv
VO: Author: Gerd Knorr <kraxel at goldbach.in-berlin.de> and others
geometry set to width: -1,height: -1, xoff: -1, yoff: -1, xper: 50, yper: 50
geometry set to width: -1,height: -1, xoff: 156, yoff: 184, xper: 50, yper: 50
geometry window parameter: widw: 712, widh: 400, scrw: 1024, scrh: 768
Xvideo image format: 0x32595559 (YUY2) packed
Xvideo image format: 0x32315659 (YV12) planar
Xvideo image format: 0x59565955 (UYVY) packed
Xvideo image format: 0x30323449 (I420) planar
[New Thread 0x7ff12d4c2720 (LWP 9105)]
using Xvideo port 280 for hw scaling
[xv] dx: 0 dy: 0 dw: 712 dh: 400
*** [eq2] Exporting mp_image_t, 704x400x12bpp YUV planar, 422400 bytes
[xv] dx: 6 dy: 28 dw: 712 dh: 4000 
*** [vo] Exporting mp_image_t, 704x400x12bpp YUV planar, 422400 bytes
Unicode font: 255 glyphs.
Unicode font: 255 glyphs.
V:   0.0   2/  2 ??% ??% ??,?% 0 0 
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff12d4c2720 (LWP 9105)]
0x000000000099b6f2 in get_mv ()
Current language:  auto; currently asm
(gdb) bt
#0  0x000000000099b6f2 in get_mv ()
#1  0x00000000009d3148 in decoder_decode ()
#2  0x000000000061f25c in decode (sh=0x1066950, data=0x1081eb0, 
    len=<value optimized out>, flags=<value optimized out>)
    at libmpcodecs/vd_xvid4.c:272
#3  0x00000000004d576f in decode_video (sh_video=0x1066950, 
    start=0x1081eb0 "", in_size=1571, drop_frame=0, pts=0.083416663110256195)
    at libmpcodecs/dec_video.c:369
#4  0x0000000000455e40 in main (argc=5, argv=<value optimized out>)
    at mplayer.c:2292
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x99b6d2 to 0x99b712:
0x000000000099b6d2 <get_mv+178>:	mov    %eax,%ecx
0x000000000099b6d4 <get_mv+180>:	shl    %cl,%eax
0x000000000099b6d6 <get_mv+182>:	or     %eax,%edx
0x000000000099b6d8 <get_mv+184>:	cmp    $0x1ff,%edx
0x000000000099b6de <get_mv+190>:	jbe    0x99b806 <get_mv+486>
0x000000000099b6e4 <get_mv+196>:	shr    $0x8,%edx
0x000000000099b6e7 <get_mv+199>:	mov    0x4c0a52(%rip),%r10        # 0xe5c140 <_DYNAMIC+2384>
0x000000000099b6ee <get_mv+206>:	lea    -0x2(%rdx),%r8d
0x000000000099b6f2 <get_mv+210>:	movzbl 0x4(%r10,%r8,8),%eax
0x000000000099b6f8 <get_mv+216>:	add    %r9d,%eax
0x000000000099b6fb <get_mv+219>:	cmp    $0x1f,%eax
0x000000000099b6fe <get_mv+222>:	mov    %eax,0xc(%rdi)
0x000000000099b701 <get_mv+225>:	jbe    0x99b73e <get_mv+286>
0x000000000099b703 <get_mv+227>:	mov    0x4(%rdi),%eax
0x000000000099b706 <get_mv+230>:	mov    %eax,(%rdi)
0x000000000099b708 <get_mv+232>:	mov    0x10(%rdi),%rax
0x000000000099b70c <get_mv+236>:	addq   $0x4,0x10(%rdi)
0x000000000099b711 <get_mv+241>:	mov    0x8(%rax),%edx
End of assembler dump.
(gdb) info all-registers
rax            0x0	0
rbx            0x0	0
rcx            0x13	19
rdx            0x0	0
rsi            0x1	1
rdi            0x7fff356bc720	140734089643808
rbp            0x7ff125586e70	0x7ff125586e70
rsp            0x7fff356bc5e8	0x7fff356bc5e8
r8             0xfffffffc	4294967292
r9             0x1	1
r10            0xbe3420	12465184
r11            0xd44095f7	3561002487
r12            0x7ff125510e70	140673689914992
r13            0x1	1
r14            0x0	0
r15            0x7ff125848040	140673693286464
rip            0x99b6f2	0x99b6f2 <get_mv+210>
eflags         0x210297	[ CF PF AF SF IF RF ID ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
---Type <return> to continue, or q <return> to quit---
gs             0x0	0
st0            0	(raw 0x00000000000000000000)
st1            0	(raw 0x00000000000000000000)
st2            0	(raw 0x00000000000000000000)
st3            0	(raw 0x00000000000000000000)
st4            0	(raw 0x00000000000000000000)
st5            0	(raw 0x00000000000000000000)
st6            0	(raw 0x00000000000000000000)
st7            0	(raw 0x00000000000000000000)
fctrl          0x37f	895
fstat          0x0	0
ftag           0xffff	65535
fiseg          0x0	0
fioff          0x0	0
foseg          0x0	0
fooff          0x0	0
fop            0x0	0
xmm0           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x0, 0x0, 0x0, 0x60, 0xcb, 0x5a, 0xb5, 0x3f, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x6000, 0x5acb, 0x3fb5, 0x0, 0x0, 
    0x0, 0x0}, v4_int32 = {0x60000000, 0x3fb55acb, 0x0, 0x0}, v2_int64 = {
    0x3fb55acb60000000, 0x0}, uint128 = 0x00000000000000003fb55acb60000000}
xmm1           {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}
xmm2           {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x0, 0x0, 0x0, 0x60, 0xcb, 0x5a, 0xa5, 0x3f, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x6000, 0x5acb, 0x3fa5, 0x0, 0x0, 
    0x0, 0x0}, v4_int32 = {0x60000000, 0x3fa55acb, 0x0, 0x0}, v2_int64 = {
    0x3fa55acb60000000, 0x0}, uint128 = 0x00000000000000003fa55acb60000000}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x5b, 0xd6, 0x2a, 0x3d, 0x0 <repeats 12 times>}, v8_int16 = {
    0xd65b, 0x3d2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x3d2ad65b, 
    0x0, 0x0, 0x0}, v2_int64 = {0x3d2ad65b, 0x0}, 
  uint128 = 0x0000000000000000000000003d2ad65b}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x5b, 0xd6, 0x2a, 0x3d, 0x0 <repeats 12 times>}, v8_int16 = {
    0xd65b, 0x3d2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x3d2ad65b, 
    0x0, 0x0, 0x0}, v2_int64 = {0x3d2ad65b, 0x0}, 
  uint128 = 0x0000000000000000000000003d2ad65b}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x54, 0x7b, 0x7b, 0x33, 0xce, 0xf2, 0x6, 0xbe, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x7b54, 0x337b, 0xf2ce, 0xbe06, 0x0, 
    0x0, 0x0, 0x0}, v4_int32 = {0x337b7b54, 0xbe06f2ce, 0x0, 0x0}, v2_int64 = {
    0xbe06f2ce337b7b54, 0x0}, uint128 = 0x0000000000000000be06f2ce337b7b54}
---Type <return> to continue, or q <return> to quit---
xmm6           {v4_float = {0x0, 0xfffffffe, 0x0, 0x0}, v2_double = {
    0xfffffffffffffffa, 0x0}, v16_int8 = {0x4d, 0xf1, 0x5c, 0x3a, 0xd6, 0x3f, 
    0x1a, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xf14d, 
    0x3a5c, 0x3fd6, 0xc01a, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x3a5cf14d, 
    0xc01a3fd6, 0x0, 0x0}, v2_int64 = {0xc01a3fd63a5cf14d, 0x0}, 
  uint128 = 0x0000000000000000c01a3fd63a5cf14d}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x30, 0x67, 0xc7, 0x93, 0x57, 0xf3, 0x5e, 0xbd, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x6730, 0x93c7, 0xf357, 0xbd5e, 0x0, 
    0x0, 0x0, 0x0}, v4_int32 = {0x93c76730, 0xbd5ef357, 0x0, 0x0}, v2_int64 = {
    0xbd5ef35793c76730, 0x0}, uint128 = 0x0000000000000000bd5ef35793c76730}
xmm8           {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}
xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x30, 0x67, 0xc7, 0x93, 0x57, 0xf3, 0x5e, 0xbd, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x6730, 0x93c7, 0xf357, 0xbd5e, 0x0, 
    0x0, 0x0, 0x0}, v4_int32 = {0x93c76730, 0xbd5ef357, 0x0, 0x0}, v2_int64 = {
    0xbd5ef35793c76730, 0x0}, uint128 = 0x0000000000000000bd5ef35793c76730}
xmm10          {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, 
  v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0, 
---Type <return> to continue, or q <return> to quit---
    0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, v2_int64 = {
    0x3ff0000000000000, 0x0}, uint128 = 0x00000000000000003ff0000000000000}
xmm11          {v4_float = {0x0, 0xfffffffe, 0x0, 0x0}, v2_double = {
    0xfffffffffffffffb, 0x0}, v16_int8 = {0x0, 0x38, 0xfa, 0xfe, 0x42, 0x2e, 
    0x16, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3800, 
    0xfefa, 0x2e42, 0xc016, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xfefa3800, 
    0xc0162e42, 0x0, 0x0}, v2_int64 = {0xc0162e42fefa3800, 0x0}, 
  uint128 = 0x0000000000000000c0162e42fefa3800}
xmm12          {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}
xmm13          {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}
xmm14          {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x1, 0x0}, 
  v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3f, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x3ff0, 0x0, 0x0, 0x0, 
    0x0}, v4_int32 = {0x0, 0x3ff00000, 0x0, 0x0}, v2_int64 = {
    0x3ff0000000000000, 0x0}, uint128 = 0x00000000000000003ff0000000000000}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
  v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 
---Type <return> to continue, or q <return> to quit---
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, 
  uint128 = 0x00000000000000000000000000000000}
mxcsr          0x1fa0	[ PE IM DM ZM OM UM PM ]



More information about the MPlayer-users mailing list