[Mplayer-advusers] Fw: [MPlayer-users] Crash while/after playing DV-Files

Attila Kinali kinali at gmx.net
Sun Mar 2 11:37:05 CET 2003


Hi,

I think this commes from unchecked mallocs in
libmpcodecs/ad_video.c init()

---
  for (i=0; i < 4; i++)
    audioBuffers[i] = malloc(2*DV_AUDIO_MAX_SAMPLES);
---

Can someone with DV check this ?

		Attila Kinali

Begin forwarded message:

Date: Thu, 27 Feb 2003 22:46:24 +0100
From: Matthias Schwarzott <zzam at gmx.de>
To: MPlayer <mplayer-users at mplayerhq.hu>
Subject: [MPlayer-users] Crash while/after playing DV-Files


[Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
Hi All!

I tried mplayer-0.90_rc4 and CVS from today and both behave same. The files I 
tried to play are DV-files captured with Adobe Premiere. When I play such a 
file with mplayer it works normal like with any other file I try, but if I 
want to quit mplayer or the file has come to the end mplayer crashes. This 
also happens when I try to play a big (16GB) file I want to create a VCD 
from. But this file is not playable to the end, it also crashes mplayer the 
same way when I try to play beyond around 600seconds. Attached is the output 
from mplayer-cvs run in gdb.

Matthias


This is my system:
* Gentoo Linux 1.4
* Kernel: Linux gauss.x.fun 2.4.19-gentoo-r10 #5 Mon Jan 6 12:57:37 CET 2003 
i686 AMD Athlon(tm) XP 1800+ AuthenticAMD GNU/Linux
* libc-2.3.1
* XFree86 Version 4.2.1
* gcc version 3.2.2
* GNU ld version 2.13.90.0.18 20030121
* GNU assembler 2.13.90.0.18 20030121
* AMD Athlon(tm) XP 1800+
* Matrox G450 DH
* Creative SBLive! Player 5.1


===============
file 17.dif
17.dif: DIF (DV) movie file (PAL)

===============
mplayer -identify 17.dif
ID_FILENAME=17.dif
ID_VIDEO_FORMAT=DVSD
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=576
ID_VIDEO_FPS=25,000
ID_VIDEO_ASPECT=0,0000
ID_AUDIO_CODEC=libdv
ID_AUDIO_FORMAT=RADV
ID_AUDIO_BITRATE=28800000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=2
ID_LENGTH=0

Playing the small file
===============
gdb /home/src/mplayer/main/mplayer
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) run -v -ss 60 17.dif
Starting program: /home/src/mplayer/main/mplayer -v -ss 60 17.dif
[New Thread 16384 (LWP 15037)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale


MPlayer dev-CVS-030227-21:41-3.2.2 (C) 2000-2003 Arpad Gereoffy (see DOCS)

CPU: Advanced Micro Devices Athlon 4 PM Palomino/Athlon MP 
Multiprocessor/Athlon XP eXtreme Performance (Family: 6, Stepping: 2)
Detected cache-line size is 64 bytes
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE

Reading config file /usr/local/etc/mplayer/mplayer.conf: Datei oder 
Verzeichnis nicht gefunden
Reading config file /home/matze/.mplayer/config
Reading /home/matze/.mplayer/codecs.conf: can't open 
'/home/matze/.mplayer/codecs.conf': Datei oder Verzeichnis nicht gefunden
Reading /usr/local/etc/mplayer/codecs.conf: can't open 
'/usr/local/etc/mplayer/codecs.conf': Datei oder Verzeichnis nicht gefunden
Using built-in default codecs.conf
CommandLine: '-v' '-ss' '60' '17.dif'
get_path('font/font.desc') -> '/home/matze/.mplayer/font/font.desc'
font: can't open file: /home/matze/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Using Linux hardware RTC timing (1024Hz).
get_path('input.conf') -> '/home/matze/.mplayer/input.conf'
Parsing input config file /home/matze/.mplayer/input.conf
Input config file /home/matze/.mplayer/input.conf parsed : 51 binds
Setting up LIRC support...
get_path('17.dif.conf') -> '/home/matze/.mplayer/17.dif.conf'

Playing 17.dif
Not an URL!
File size is 252432384 bytes
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x83c0198
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x83c0198
Checking for NuppelVideo
DEMUXER: freeing demuxer at 0x83c0198
Checking for REAL
DEMUXER: freeing demuxer at 0x83c0198
Checking for SMJPEG
DEMUXER: freeing demuxer at 0x83c0198
Searching demuxer type for filename 17.dif ext: .dif
Checking for MOV
DEMUXER: freeing demuxer at 0x83c0a68
Checking for VIVO
header block 1 size: 7
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
DEMUXER: freeing demuxer at 0x83c0a68
Checking for PVA
DEMUXER: freeing demuxer at 0x83c0a68
sync_mpeg_ps: seems to be MP3 stream...
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)
MPEG packet stats: p100: 0  p101: 0 p1B6: 0 p12x: 0 PES: 0  MP3: 112
Not MPEG System Stream format... (maybe Transport Stream?)
DEMUXER: freeing demuxer at 0x83c0a68
Checking for DV
RAWDV file format detected.
demux_open_rawdv() end_pos 252432384
==> Found video stream: 0
demux_open_rawdv() frame_size: 144000 w: 720 h: 576 dif_seq: 12 system: 2
demux_open_rawdv() seek to 0, size: 144000, dv_dec->frame_size: 144000
==> Found audio stream: 0
demux_open_rawdv() chan: 2 samplerate: 48000
[V] filefmt:22  fourcc:0x44535644  size:720x576  fps:25,00  ftime:=0,0400
get_path('sub/') -> '/home/matze/.mplayer/sub/'
==========================================================================
Opening audio decoder: [libdv] Raw DV Audio Decoder
dec_audio: Allocating 15360 + 65536 = 80896 bytes for output buffer
AUDIO: 48000 Hz, 2 ch, 16 bit (0x10), ratio: 3600000->192000 (28800,0 kbit)
Selected audio codec: [libdv] afm:libdv (raw DV audio decoder (libdv))
==========================================================================
X11 opening display: :0
vo: X11 color mask:  FFFFFF  (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1280x1024 with depth 24 and 32 bpp (":0" => local display)
[x11] Detected wm supports NetWM.
[x11] Detected wm supports STAYS_ON_TOP state.
==========================================================================
Opening video decoder: [dshow] DirectShow video codecs
get_path('registry') -> '/home/matze/.mplayer/registry'
Decoder supports the following YUV formats: YUY2 UYVY
Decoder is capable of YUV output (flags 0x9)
VDec: vo config request - 720 x 576 (preferred csp: Packed YUY2)
[PP] Using codec's postprocessing, max q = 4.
Trying filter chain: vo
VDec: using Packed YUY2 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO Config (720x576->720x576,flags=0,'MPlayer',0x32595559)
VO: [xv] 720x576 => 720x576 Packed YUY2
VO: Description: X11/Xv
VO: Author: Gerd Knorr <kraxel at goldbach.in-berlin.de> and others
Xvideo image format: 0x32595559 (YUY2) packed
Xvideo image format: 0x32315659 (YV12) planar
Xvideo image format: 0x30323449 (I420) planar
Xvideo image format: 0x59565955 (UYVY) packed
using Xvideo port 56 for hw scaling
[xv] dx: 0 dy: 0 dw: 720 dh: 614
INFO: Win32/DShow video codec init OK!
Selected video codec: [qdv] vfm:dshow (Sony Digital Video (DV))
==========================================================================
Checking audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/4ch/16bit...
[libaf] Adding filter dummy
[dummy] Was reinitialized, rate=48000Hz, nch = 2, format = 0x00000001 and bps 
= 2
AF_pre: af format: 2 bps, 2 ch, 48000 hz, little endian signed int
AF_pre: 48000Hz 2ch Signed 16-bit (Little-Endian)
alsa-init: testing and bugreports are welcome.
alsa-init: requested format: 48000 Hz, 4 channels, Signed 16-bit 
(Little-Endian)
alsa-init: compiled for ALSA-0.9.0rc7
alsa-init: soundcard set to surround40
alsa-init: pcm opend in block-mode
alsa-init: chunksize set to 1024
alsa-init: current val=32, fragcount=16
alsa-init: got buffersize=131072
alsa9: 48000 Hz/4 channels/8 bpf/131072 bytes buffer/Signed 16 bit Little 
Endian
AO: [alsa9] 48000Hz 4ch Signed 16-bit (Little-Endian) (2 bps)
AO: Description: ALSA-0.9.x audio output
AO: Author: Alex Beregszaszi <alex at naxine.org>, Joy Winter <joy at pingfm.org>
AO: Comment: under developement
Building audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/4ch/16bit...
[dummy] Was reinitialized, rate=48000Hz, nch = 2, format = 0x00000001 and bps 
= 2
[libaf] Adding filter channels
[channels] Changing number of channels to 4
[dummy] Was reinitialized, rate=48000Hz, nch = 2, format = 0x00000001 and bps 
= 2
Starting playback...
alsa-space: free space = 131072, status=138329336, prepared --
[libaf] Reallocating memory in module channels, old len = 0, new len = 65540
*** [vo] Allocating mp_image_t, 720x576x16bpp YUV packed, 829440 bytes
get_path('subfont.ttf') -> '/home/matze/.mplayer/subfont.ttf'
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
[xv] dx: 0 dy: 0 dw: 720 dh: 576
alsa-space: free space = 131072, status=138499696, prepared --0% 0 0 0%
ds_fill_buffer: EOF reached (stream: audio)  /242  26% 19% 10,4% 5 0 0%
stream_seek: WARNING! Can't seek to 0xF0BCE80 !49  27% 19% 10,1% 5 0 0%
ds_fill_buffer: EOF reached (stream: video)
EOF code: 1  70,1 A-V:  0,004 ct:  0,048  249/249  27% 19% 10,1% 5 0 0%

Uninit audio filters...
[libaf] Removing filter dummy
[libaf] Removing filter channels
uninit audio: libdv

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 15037)]
0x4d8d61c0 in _int_free () from /lib/libc.so.6
(gdb) bt
#0  0x4d8d61c0 in _int_free () from /lib/libc.so.6
#1  0x4d8d4fca in free () from /lib/libc.so.6
#2  0x080c1a3b in uninit (sh_audio=0x83cbb50) at ad_libdv.c:69
#3  0x080bc19c in uninit_audio (sh_audio=0x4d98920c) at dec_audio.c:264
#4  0x0806b638 in uninit_player (mask=1301844492) at mplayer.c:367
#5  0x0806c79b in main (argc=5, argv=0xbffff444) at mplayer.c:3317
#6  0x4d875e34 in __libc_start_main () from /lib/libc.so.6
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x4d8d61a0 to 0x4d8d61e0:
0x4d8d61a0 <_int_free+160>:     cmp    0x54(%ecx),%eax
0x4d8d61a3 <_int_free+163>:     je     0x4d8d6278 <_int_free+376>
0x4d8d61a9 <_int_free+169>:     mov    0xffffffe8(%ebp),%edx
0x4d8d61ac <_int_free+172>:     testb  $0x1,0x4(%edx,%eax,1)
0x4d8d61b1 <_int_free+177>:     jne    0x4d8d6266 <_int_free+358>
0x4d8d61b7 <_int_free+183>:     add    0xffffffe8(%ebp),%edi
0x4d8d61ba <_int_free+186>:     mov    0x8(%eax),%edx
0x4d8d61bd <_int_free+189>:     mov    0xc(%eax),%eax
0x4d8d61c0 <_int_free+192>:     mov    %eax,0xc(%edx)
0x4d8d61c3 <_int_free+195>:     mov    %edx,0x8(%eax)
0x4d8d61c6 <_int_free+198>:     mov    0xfffffff0(%ebp),%eax
0x4d8d61c9 <_int_free+201>:     mov    %edi,(%edi,%esi,1)
0x4d8d61cc <_int_free+204>:     add    $0x5c,%eax
0x4d8d61cf <_int_free+207>:     mov    0x8(%eax),%edx
0x4d8d61d2 <_int_free+210>:     mov    %eax,0xc(%esi)
0x4d8d61d5 <_int_free+213>:     mov    %edx,0x8(%esi)
0x4d8d61d8 <_int_free+216>:     mov    %esi,0xc(%edx)
0x4d8d61db <_int_free+219>:     mov    %esi,0x8(%eax)
0x4d8d61de <_int_free+222>:     mov    %edi,%eax
End of assembler dump.
(gdb) info all-registers
eax            0x5fd54ad1       1607813841
ecx            0x4d98a2c0       1301848768
edx            0x2a24100e       707006478
ebx            0x4d98920c       1301844492
esp            0xbfffe070       0xbfffe070
ebp            0xbfffe098       0xbfffe098
esi            0x83df7f8        138278904
edi            0xf08    3848
eip            0x4d8d61c0       0x4d8d61c0
eflags         0x10202  66050
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x8f     143
gs             0x7      7
st0            -nan(0x810e7f0e820e7f0e) (raw 0xffff810e7f0e820e7f0e)
st1            -nan(0x7f0e7f0e800e7f0e) (raw 0xffff7f0e7f0e800e7f0e)
st2            195.42399950660183094441890716552734     (raw 
0x4006c36c8b3b4e600000)
st3            270.96909931586878883535973727703094     (raw 
0x4007877c0b72461dc000)
st4            0.0042266845703125       (raw 0x3ff78a80000000000000)
st5            70.12000274658203125     (raw 0x40058c3d710000000000)
st6            0        (raw 0x00000000000000000000)
---Type <return> to continue, or q <return> to quit---
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x420    1056
ftag           0xffff   65535
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
---Type <return> to continue, or q <return> to quit---
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000,
    0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = 
{0xffff, 0xffff,
---Type <return> to continue, or q <return> to quit---
    0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = {0xffffffff, 
0xffffffff,
    0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 
0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
mxcsr          0x1f80   8064
orig_eax       0xffffffff       -1
mm0            {uint64 = 0x810e7f0e820e7f0e, v2_int32 = {0x820e7f0e, 
0x810e7f0e}, v4_int16 = {
    0x7f0e, 0x820e, 0x7f0e, 0x810e}, v8_int8 = {0xe, 0x7f, 0xe, 0x82, 0xe, 
0x7f, 0xe, 0x81}}
mm1            {uint64 = 0x7f0e7f0e800e7f0e, v2_int32 = {0x800e7f0e, 
0x7f0e7f0e}, v4_int16 = {
    0x7f0e, 0x800e, 0x7f0e, 0x7f0e}, v8_int8 = {0xe, 0x7f, 0xe, 0x80, 0xe, 
0x7f, 0xe, 0x7f}}
mm2            {uint64 = 0xc36c8b3b4e600000, v2_int32 = {0x4e600000, 
0xc36c8b3b}, v4_int16 = {
    0x0, 0x4e60, 0x8b3b, 0xc36c}, v8_int8 = {0x0, 0x0, 0x60, 0x4e, 0x3b, 0x8b, 
0x6c, 0xc3}}
mm3            {uint64 = 0x877c0b72461dc000, v2_int32 = {0x461dc000, 
0x877c0b72}, v4_int16 = {
    0xc000, 0x461d, 0xb72, 0x877c}, v8_int8 = {0x0, 0xc0, 0x1d, 0x46, 0x72, 
0xb, 0x7c, 0x87}}
mm4            {uint64 = 0x8a80000000000000, v2_int32 = {0x0, 0x8a800000}, 
v4_int16 = {0x0, 0x0,
    0x0, 0x8a80}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x8a}}
mm5            {uint64 = 0x8c3d710000000000, v2_int32 = {0x0, 0x8c3d7100}, 
v4_int16 = {0x0, 0x0,
    0x7100, 0x8c3d}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x71, 0x3d, 0x8c}}
mm6            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 
0x0, 0x0}, v8_int8 = {
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 
0x0, 0x0}, v8_int8 = {
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
(gdb)

_______________________________________________
RTFM!!!  http://www.MPlayerHQ.hu/DOCS
Search:  http://www.MPlayerHQ.hu/cgi-bin/htsearch
http://mplayerhq.hu/mailman/listinfo/mplayer-users


-- 
Emacs ist für mich kein Editor. Für mich ist das genau das gleiche, als wenn
ich nach einem Fahrrad (für die Sonntagbrötchen) frage und einen pangalaktischen
Raumkreuzer mit 10 km Gesamtlänge bekomme. Ich weiß nicht, was ich damit soll.
		-- Frank Klemm, de.comp.os.unix.discussion


More information about the MPlayer-advusers mailing list