[BUG] [PPC] AC3 crash in uninit_acodec
Hi, there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like *** glibc detected *** free(): invalid pointer: 0x1076f3f8 *** The problem goes away when I recompile with --disable-altivec. Backtrace below. Diego (gdb) run -v ~/samples/AC3/MainConceptEncoded-sample.mpg Starting program: /home/diego/src/mplayer/vanilla/mplayer -v ~/samples/AC3/MainConceptEncoded-sample.mpg [Thread debugging using libthread_db enabled] [New Thread 805488576 (LWP 5079)] Using GNU internationalization Original domain: messages Original dirname: /usr/share/locale Current domain: mplayer Current dirname: /usr/local/share/locale MPlayer dev-CVS-060123-03:01-4.0.3 (C) 2000-2006 MPlayer Team AltiVec found CPU: PowerPC get_path('codecs.conf') -> '/home/diego/.mplayer/codecs.conf' Reading /home/diego/.mplayer/codecs.conf: Can't open '/home/diego/.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. CommandLine: '-v' '/home/diego/samples/AC3/MainConceptEncoded-sample.mpg' init_freetype /var/lib/defoma/gs.d/dirs/fonts/Vera.ttf doesn't look like a font description, ignoring. Cannot load font: /var/lib/defoma/gs.d/dirs/fonts/Vera.ttf Using Unoptimized OnScreenDisplay Linux RTC init error in ioctl (rtc_irqp_set 1024): Invalid argument Try adding "echo 1024 > /proc/sys/dev/rtc/max-user-freq" to your system startup scripts. Using nanosleep() timing get_path('input.conf') -> '/home/diego/.mplayer/input.conf' Can't open input config file /home/diego/.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('MainConceptEncoded-sample.mpg.conf') -> '/home/diego/.mplayer/MainConceptEncoded-sample.mpg.conf' Playing /home/diego/samples/AC3/MainConceptEncoded-sample.mpg. get_path('sub/') -> '/home/diego/.mplayer/sub/' [file] File size is 4405266 bytes STREAM: [file] /home/diego/samples/AC3/MainConceptEncoded-sample.mpg STREAM: Description: File STREAM: Author: Albeu STREAM: Comment: based on the code from ??? (probably Arpi) Checking for YUV4MPEG2 ASF_check: not ASF guid! Checking for NuppelVideo Checking for REAL Checking for SMJPEG Searching demuxer type for filename /home/diego/samples/AC3/MainConceptEncoded-sample.mpg ext: .mpg Checking for Nullsoft Streaming Video Checking for MOV Checking for VIVO header block 1 size: 0 Checking for PVA Checking for MPEG-TS... TRIED UP TO POSITION 68540, FOUND 47, packet_size= 0, SEEMS A TS? 0 Checking for LMLM4 Stream Format Invalid packet in LMLM4 stream: ch=0 size=1140851704 LMLM4 Stream Format not found system stream synced at 0xD (13)! ==> Found video stream: 0 ==> Found audio stream: 128 MPEG Stream reached EOF ds_fill_buffer: EOF reached (stream: video) MPEG-PS file format detected. Searching for sequence header... OK! VIDEO: MPEG2 720x576 (aspect 2) 25.000 fps 8000.0 kbps (1000.0 kbyte/s) [V] filefmt:2 fourcc:0x10000002 size:720x576 fps:25.00 ftime:=0.0400 get_path('sub/') -> '/home/diego/.mplayer/sub/' get_path('default.sub') -> '/home/diego/.mplayer/default.sub' ========================================================================== Opening audio decoder: [liba52] AC3 decoding with liba52 dec_audio: Allocating 3840 bytes for input buffer. dec_audio: Allocating 6144 + 65536 = 71680 bytes for output buffer. Using AltiVec optimized IMDCT transform AC3: 2.0 (stereo) 48000 Hz 320.0 kbit/s A52 flags before a52_frame: 0x2A A52 flags after a52_frame: 0x2 Checking for AltiVec resampler : 0x00000002, 2 Using AltiVec optimized resampler AUDIO: 48000 Hz, 2 ch, s16be, 320.0 kbit/20.83% (ratio: 40000->192000) Selected audio codec: [a52] afm: liba52 (AC3-liba52) ========================================================================== 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] Unknown wm type... [x11] Current fstype setting doesn't honour any X atoms [xv common] Drawing colorkey manually. [xv common] Using colorkey from Xv (0x0101fe). [xv common] Maximum source image dimensions: 2046x2046 ========================================================================== Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2)) ========================================================================== Building audio filter chain for 48000Hz/2ch/s16be -> 0Hz/0ch/s8... [libaf] Adding filter dummy [dummy] Was reinitialized: 48000Hz/2ch/s16be [dummy] Was reinitialized: 48000Hz/2ch/s16be ao2: 48000 Hz 2 chans s16be audio_setup: using '/dev/dsp' dsp device audio_setup: using '/dev/mixer' mixer device audio_setup: using 'pcm' mixer device audio_setup: sample format: s16be (requested: s16be) audio_setup: using 2 channels (requested: 2) audio_setup: using 48000 Hz samplerate (requested: 48000) audio_setup: frags: 16/16 (4096 bytes/frag) free: 65536 AO: [oss] 48000Hz 2ch s16be (2 bytes per sample) AO: Description: OSS/ioctl audio output AO: Author: A'rpi Building audio filter chain for 48000Hz/2ch/s16be -> 48000Hz/2ch/s16be... [dummy] Was reinitialized: 48000Hz/2ch/s16be [dummy] Was reinitialized: 48000Hz/2ch/s16be Starting playback... VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12) Trying filter chain: vo VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is 1.33:1 - prescaling to correct movie aspect. VO Config (720x576->768x576,flags=0,'MPlayer',0x32315659) VO: [xv] 720x576 => 768x576 Planar YV12 VO: Description: X11/Xv VO: Author: Gerd Knorr <kraxel@goldbach.in-berlin.de> and others Xvideo image format: 0x32595559 (2YUY) packed Xvideo image format: 0x32315659 (21VY) planar Xvideo image format: 0x59565955 (YVYU) packed Xvideo image format: 0x30323449 (024I) planar using Xvideo port 65 for hw scaling [xv] dx: 0 dy: 0 dw: 768 dh: 576 *** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes *** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes Unicode font: 255 glyphs..412 ct: 0.004 2/ 2 ??% ??% ??,?% 0 0 [xv] dx: 0 dy: 0 dw: 768 dh: 576 *** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes Uninit audio filters... 0.154 ct: 0.084 22/ 22 24% 11% 1.7% 0 0 [libaf] Removing filter dummy uninit audio: liba52 *** glibc detected *** free(): invalid pointer: 0x1076f3f8 *** Program received signal SIGABRT, Aborted. [Switching to Thread 805488576 (LWP 5079)] 0x0ed0d638 in raise () from /lib/tls/libc.so.6 (gdb) bt #0 0x0ed0d638 in raise () from /lib/tls/libc.so.6 #1 0x0ed0f034 in abort () from /lib/tls/libc.so.6 #2 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #3 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #4 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #5 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #6 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #7 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #8 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #9 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #10 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 #11 0x0ed44738 in __fsetlocking () from /lib/tls/libc.so.6 Previous frame inner to this frame (corrupt stack?) (gdb) disass $pc-32 $pc+32 Dump of assembler code from 0xed0d618 to 0xed0d658: 0x0ed0d618 <raise+60>: sc 0x0ed0d61c <raise+64>: mfcr r0 0x0ed0d620 <raise+68>: mr r31,r3 0x0ed0d624 <raise+72>: stw r31,-29720(r2) 0x0ed0d628 <raise+76>: li r0,250 0x0ed0d62c <raise+80>: mr r4,r31 0x0ed0d630 <raise+84>: mr r5,r29 0x0ed0d634 <raise+88>: sc 0x0ed0d638 <raise+92>: mfcr r0 0x0ed0d63c <raise+96>: andis. r9,r0,4096 0x0ed0d640 <raise+100>: bne- 0xed0d680 <raise+164> 0x0ed0d644 <raise+104>: cmpwi cr1,r3,-1 0x0ed0d648 <raise+108>: beq- cr1,0xed0d690 <raise+180> 0x0ed0d64c <raise+112>: lwz r28,16(r1) 0x0ed0d650 <raise+116>: lwz r29,20(r1) 0x0ed0d654 <raise+120>: lwz r30,24(r1) End of assembler dump. (gdb) info all-registers r0 0xfa 250 r1 0x7fe4b0a0 2145693856 r2 0x30033c20 805518368 r3 0x0 0 r4 0x13d7 5079 r5 0x6 6 r6 0x0 0 r7 0xed0d924 248568100 r8 0xed0f0e0 248574176 r9 0x0 0 r10 0x3002c7c0 805488576 r11 0x1 1 r12 0xed0f034 248574004 r13 0x10646420 275014688 r14 0xffffffff 4294967295 r15 0x0 0 r16 0x0 0 r17 0x0 0 r18 0x1 1 r19 0x10640000 274989056 r20 0x10640000 274989056 r21 0x0 0 r22 0x10640000 274989056 r23 0x2 2 r24 0x9 9 r25 0xee0988c 249600140 r26 0x5 5 r27 0x0 0 r28 0xee29334 249729844 r29 0x6 6 r30 0xee29208 249729544 r31 0x13d7 5079 f0 1 (raw 0x3ff0000000000000) f1 1 (raw 0x3ff0000000000000) f2 0.084000006318092346 (raw 0x3fb5810640000000) f3 0.084000006318092346 (raw 0x3fb5810640000000) f4 0.15447509288787842 (raw 0x3fc3c5d700000000) f5 -nan(0x8000082004000) (raw 0xfff8000082004000) f6 0.50000000000000011 (raw 0x3fe0000000000001) f7 -2.7343234630647693e-16 (raw 0xbcb3b3efbf5e2229) f8 0.70710678118654768 (raw 0x3fe6a09e667f3bce) f9 0.70710676908493042 (raw 0x3fe6a09e60000000) f10 0.84000009298324585 (raw 0x3feae147e0000000) f11 -nan(0x8000000000018) (raw 0xfff8000000000018) f12 1.4458000121180703 (raw 0x3ff721ff3189a800) f13 -nan(0x800000000000b) (raw 0xfff800000000000b) f14 0 (raw 0x0000000000000000) f15 0 (raw 0x0000000000000000) f16 0 (raw 0x0000000000000000) f17 0 (raw 0x0000000000000000) f18 0 (raw 0x0000000000000000) f19 0 (raw 0x0000000000000000) f20 0 (raw 0x0000000000000000) f21 0 (raw 0x0000000000000000) f22 0 (raw 0x0000000000000000) f23 0 (raw 0x0000000000000000) f24 0 (raw 0x0000000000000000) f25 0 (raw 0x0000000000000000) f26 0.0045312116853892803 (raw 0x3f728f51e0000000) f27 0.034666210412979126 (raw 0x3fa1bfc500000000) f28 0.28799998760223389 (raw 0x3fd26e9780000000) f29 1.522475004196167 (raw 0x3ff85c0ec0000000) f30 1.0799999237060547 (raw 0x3ff147ae00000000) f31 0.15447509288787842 (raw 0x3fc3c5d700000000) pc 0xed0d638 248567352 ps 0x200d032 33607730 cr 0x42802224 1115693604 lr 0xed0f034 248574004 ctr 0xfd5012c 265617708 xer 0x20000000 536870912 fpscr 0x0 0 vr0 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr1 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr2 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr3 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr4 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr5 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr6 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr7 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr8 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr9 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr10 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr11 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr12 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr13 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr14 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr15 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr16 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr17 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr18 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr19 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr20 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr21 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr22 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr23 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr24 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr25 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr26 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr27 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr28 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr29 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr30 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vr31 {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}} vscr 0x0 0 vrsave 0xffffffff 4294967295
On Mon, Jan 23, 2006 at 01:57:12PM +0100, Diego Biurrun wrote:
there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like
*** glibc detected *** free(): invalid pointer: 0x1076f3f8 ***
Some more info: This happens with a current Debian unstable system on a February 2005 PowerBook with a 1500MHz G4. I tested with gcc 4.0.3, 3.4.6 and 3.3.6 - all from Debian - no difference. Diego
On Fri, Jan 27, 2006 at 01:14:10AM +0100, Diego Biurrun wrote:
On Mon, Jan 23, 2006 at 01:57:12PM +0100, Diego Biurrun wrote:
there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like
*** glibc detected *** free(): invalid pointer: 0x1076f3f8 ***
Some more info: This happens with a current Debian unstable system on a February 2005 PowerBook with a 1500MHz G4. I tested with gcc 4.0.3, 3.4.6 and 3.3.6 - all from Debian - no difference.
Using the updated liba52 that was posted to dev-eng does not make a difference. Also, for some reason Luca Barbato cannot reproduce this problem on Gentoo... Diego
On Fri, Jan 27, 2006 at 02:28:31AM +0100, Diego Biurrun wrote:
On Fri, Jan 27, 2006 at 01:14:10AM +0100, Diego Biurrun wrote:
On Mon, Jan 23, 2006 at 01:57:12PM +0100, Diego Biurrun wrote:
there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like
*** glibc detected *** free(): invalid pointer: 0x1076f3f8 ***
Some more info: This happens with a current Debian unstable system on a February 2005 PowerBook with a 1500MHz G4. I tested with gcc 4.0.3, 3.4.6 and 3.3.6 - all from Debian - no difference.
Using the updated liba52 that was posted to dev-eng does not make a difference. Also, for some reason Luca Barbato cannot reproduce this problem on Gentoo...
Now THIS is peculiar: mplayer -vf pp=md /tmp/rush_hour/video_ts.vob crashes, while mplayer /tmp/rush_hour/video_ts.vob -vf pp=md works fine... Diego
On 2/11/06, Diego Biurrun <diego@biurrun.de> wrote:
On Fri, Jan 27, 2006 at 02:28:31AM +0100, Diego Biurrun wrote:
On Fri, Jan 27, 2006 at 01:14:10AM +0100, Diego Biurrun wrote:
On Mon, Jan 23, 2006 at 01:57:12PM +0100, Diego Biurrun wrote:
there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like
*** glibc detected *** free(): invalid pointer: 0x1076f3f8 ***
Some more info: This happens with a current Debian unstable system on a February 2005 PowerBook with a 1500MHz G4. I tested with gcc 4.0.3, 3.4.6 and 3.3.6 - all from Debian - no difference.
Using the updated liba52 that was posted to dev-eng does not make a difference. Also, for some reason Luca Barbato cannot reproduce this problem on Gentoo...
Now THIS is peculiar:
mplayer -vf pp=md /tmp/rush_hour/video_ts.vob
crashes, while
mplayer /tmp/rush_hour/video_ts.vob -vf pp=md
works fine...
Sounds like a memory smurfing bug somewhere during the run of the program, which is detected while freeing the relevant memory area. Try playing the same DVD using valgrind (maybe with AO=null and VO=null to enable it to finish its run) and check if there are problems it detects.
On Fri, Jan 27, 2006 at 02:28:31AM +0100, Diego Biurrun wrote:
On Fri, Jan 27, 2006 at 01:14:10AM +0100, Diego Biurrun wrote:
On Mon, Jan 23, 2006 at 01:57:12PM +0100, Diego Biurrun wrote:
there is a quite serious bug when using AC3 on AltiVec systems. Any AC3 audio file (and DVDs) crashes MPlayer at end of file or when exiting manually with messages like
*** glibc detected *** free(): invalid pointer: 0x1076f3f8 ***
Some more info: This happens with a current Debian unstable system on a February 2005 PowerBook with a 1500MHz G4. I tested with gcc 4.0.3, 3.4.6 and 3.3.6 - all from Debian - no difference.
Using the updated liba52 that was posted to dev-eng does not make a difference. Also, for some reason Luca Barbato cannot reproduce this problem on Gentoo...
However, he can come up with a patch that fixes the problem... It works for me, but I'd appreciate if somebody could look this over before I commit... Diego
Hi, On Mon, Feb 13, 2006 at 12:26:12AM +0100, Diego Biurrun wrote:
- sh_audio->a_in_buffer=malloc(sh_audio->a_in_buffer_size); + sh_audio->a_in_buffer=memalign(16,sh_audio->a_in_buffer_size); [...] - free(sh_audio->afilter); + mp_msg(MSGT_DECAUDIO,MSGL_V,"Uninit audio filters... done\n"); + //free(sh_audio->afilter);
I am really certain this is wrong. Also I can't see how the memalign thing is related (though that part probably is correct). Greetings, Reimar Doeffinger
On Mon, Feb 13, 2006 at 10:16:59AM +0100, Reimar Doeffinger wrote:
Hi, On Mon, Feb 13, 2006 at 12:26:12AM +0100, Diego Biurrun wrote:
- sh_audio->a_in_buffer=malloc(sh_audio->a_in_buffer_size); + sh_audio->a_in_buffer=memalign(16,sh_audio->a_in_buffer_size); [...] - free(sh_audio->afilter); + mp_msg(MSGT_DECAUDIO,MSGL_V,"Uninit audio filters... done\n"); + //free(sh_audio->afilter);
I am really certain this is wrong. Also I can't see how the memalign thing is related (though that part probably is correct).
Just checked, it works without that, so it is at least unrelated. Can I commit without that hunk? Diego
participants (3)
-
Diego Biurrun -
Reimar Doeffinger -
Shachar Raindel