Opened 12 years ago

Closed 9 years ago

#855 closed defect (invalid)

add libtheora check , to avoid that MPlayer interrupted by signal 6 in module: free_demuxer

Reported by: alexander.sieck@… Owned by: reimar
Priority: normal Component: demuxer
Version: 1.0rc2 Severity: normal
Keywords: Cc: reimar, compn
Blocked By: Blocking:
Reproduced by developer: Analyzed by developer:

Description

Hello,

I am using Debian etch (stable) on AMD64.
After playing an .ogg, e.g. 143_Debian_Live.ogg from debconf7.debconf.org,
or after pressing 'q' mplayer freezes and can be closed only with kill -9.
I am using the ion2 window manager under X.org 7.1.

Output:
deb:~/debconf_2007_talks$ mplayer 143_Debian_Live.ogg
MPlayer 1.0rc1-4.1.2-DFSG-free (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) 64 Processor 3000+ (Family: 15, Model: 31, Stepping: 0)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 143_Debian_Live.ogg.
[Ogg] stream 0: video (Theora v3.2.0), -vid 0
[Ogg] stream 1: audio (Vorbis), -aid 0
Ogg file format detected.
VIDEO: [theo] 320x240 24bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s)
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
[VO_TDFXFB] Can't open /dev/fb0: No such file or directory.
[VO_3DFX] Unable to open /dev/3dfx.
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[theora @ 0xcbde80]Missing extradata!
Could not open codec.
VDecoder init failed :(
Opening video decoder: [theora] Theora/VP3
VDec: vo config request - 320 x 240 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [xv] 320x240 => 320x240 Planar YV12
Selected video codec: [theora] vfm: theora (Theora (free, reworked VP3))
==========================================================================
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 32000 Hz, 1 ch, s16le, 64.0 kbit/12.50% (ratio: 8000->64000)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis decoder)
==========================================================================
AO: [oss] 32000Hz 1ch s16le (2 bytes per sample)
Starting playback...
A:2765.4 V:2765.9 A-V: -0.446 ct: -0.516 67494/67494 1% 0% 0.2% 0 0
* glibc detected * corrupted double-linked list: 0x0000000000e2cf60 *

MPlayer interrupted by signal 6 in module: free_demuxer

  • MPlayer crashed. This shouldn't happen. It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc version. If you think it's MPlayer's fault, please read DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and won't help unless you provide this information when reporting a possible bug.

Killed

Change History (10)

comment:1 Changed 12 years ago by compn

  • Cc patriotact@… added

We can't and

won't help unless you provide this information when reporting a possible bug.

debian bugs should go to debian bugzilla i'd say
unless you can repeat the bug using svn mplayer compiled manually...

PACKAGED MPLAYER CRASHES A LOT.

comment:2 Changed 12 years ago by diego@…

  • Resolution set to invalid
  • Status changed from new to closed

Reopen this bug if you can reproduce it with Subversion HEAD. Until then it is not ours.

comment:3 Changed 12 years ago by reimar

  • Cc Reimar.Doeffinger@… added

And use -demuxer lavf. Some combinations of libtheora, libogg and our builtin copy of tremor simply crash. Not much we can do about it. Reshuffling the linking order can help sometimes, but not always.

comment:4 Changed 12 years ago by mennucc1@…

  • Resolution invalid deleted
  • Status changed from closed to reopened
  • Version changed from 1.0rc1 to 1.0rc2

hi.

This bug is still present in 1.0rc2.
Let
$a=http://meetings-archive.debian.net/pub/debian-meetings/2007/debconf7/low/097_Bits_from_the_DPL.ogg

If you run
$ mplayer $a
when you try to exit by typing q it crashes; then you have to 'kill -9'.

The best way to reproduce it is
$ nohup mplayer -quiet -frames 10 -vo null -ao null $a &
this outputs in the terminal
* glibc detected * free(): invalid next size (fast): 0x0000000000f781b0 *
so it seems to be a problem of memory management.
(Yes, the output goes on the terminal, even if you use nohup).
Note that this bug does not show in 386 machines.

Adding -demuxer lavf fix the problem. What about making this the default, at least in 64bit CPUs?

a.

comment:5 Changed 12 years ago by reimar

-demuxer lavf does not support subtitles, so making it default is not really an option.

comment:6 Changed 12 years ago by reimar

Are you really sure this is not a libtheora bug? Because the only things valgrind reports are like this:
==5072== Invalid write of size 8
==5072== at 0x3AE5A1FA32: theora_decode_header (in /usr/lib64/libtheora.so.0.2.0)
==5072== by 0x552A03: init (vd_theora.c:80)
==5072== by 0x504B08: init_video (dec_video.c:263)
==5072== by 0x504D39: init_best_video_codec (dec_video.c:313)
==5072== by 0x45D95F: reinit_video_chain (mplayer.c:1961)
==5072== by 0x45F89A: main (mplayer.c:3227)
==5072== Address 0x4cfdcd0 is 0 bytes after a block of size 0 alloc'd
==5072== at 0x4904E8E: calloc (vg_replace_malloc.c:391)
==5072== by 0x3AE5A1F94A: theora_decode_header (in /usr/lib64/libtheora.so.0.2.0)
==5072== by 0x552A03: init (vd_theora.c:80)
==5072== by 0x504B08: init_video (dec_video.c:263)
==5072== by 0x504D39: init_best_video_codec (dec_video.c:313)
==5072== by 0x45D95F: reinit_video_chain (mplayer.c:1961)
==5072== by 0x45F89A: main (mplayer.c:3227)

And if libtheora writes beyond a buffer it allocated itself that doesn't look like it could be MPlayer's fault to me.

comment:7 Changed 12 years ago by reimar

And btw. I tried compiling without our internal tremor, it doesn't make any difference.

comment:8 Changed 12 years ago by mennucc1@…

  • Summary changed from MPlayer interrupted by signal 6 in module: free_demuxer to add libtheora check , to avoid that MPlayer interrupted by signal 6 in module: free_demuxer

hi Reimar, you are perfectly right: this is a bug in old versions of libtheora. It was reported as bug http://bugs.debian.org/383793 , and there is a patch there; it is now part of the upstream code, since libtheora 1.0beta1 (according to http://packages.debian.org/changelogs/pool/main/libt/libtheora/current/changelog ). I compiled libtheora 1.0~beta2-1 in a Debian/etch/amd64 environment, and installed it, and the bug disappears. You may find the fixed library in http://tonelli.sns.it/pub/mplayer/etch-backport .

The best "fix" for MPlayer may be to add some ./configure lines that check if libtheora is 1.0beta1 or above. This shell code may do the trick

if x86_64 ; then

if pkg-config --modversion theora | grep -q 1.0alpha

! pkg-config --exists theora '>= 1.0' ; then

echo 'please upgrade libtheora to 1.0beta1 or above, that correct bugs in x86_64 archs'
exit 1

fi

fi

(note that pkg-config thinks that 1.0alpha > 1.0 ... this is why Debian introduced the tilde in version numbers)

I will also add a dependency line in the Debian package, just in case.

a.

comment:9 Changed 9 years ago by compn

  • Owner changed from r_togni@… to reimar

comment:10 Changed 9 years ago by reimar

  • Resolution set to invalid
  • Status changed from reopened to closed

Wasn't a MPlayer bug and the buggy libtheora versions hopefully have died out, also we will usually be using the libavcodec decoder for theora anyway.

Note: See TracTickets for help on using tickets.