[MPlayer-dev-eng] Odd lockup at end of file when playing a realmedia rtsp stream using liba52 codec

adland123 adland123 at yahoo.com
Sat Oct 16 09:48:26 CEST 2004


I was playing a short length streaming realmedia audio sample on rtsp URL 
mplayer -cache 50 rtsp://real.cbsig.net/g2demand/entertainmment/
mini/lateshow/records/goofy.rm

there was a lockup at the end where I had to end mplayer with CTRL-C

I looked at trying to fix the issue and
traced lockup to while loop inside libmpcodecs/ad_liba52.c
a52_fillbuff(sh_audio_t *sh_audio) {
...
    while(sh_audio->a_in_buffer_len<8){
        int c=demux_getc(sh_audio->ds);
        if(c<0) return -1; /* EOF*/
        sh_audio->a_in_buffer[sh_audio->a_in_buffer_len++]=c;
    }
...
}

note demux_getc is defined in libmpdemux/demuxer.h

Here is the output using verbose loging
could someone more knowledgeable help with fixing this?

MPlayer dev-CVS-041016-02:41-3.3.4 (C) 2000-2004 MPlayer Team

CPU: Advanced Micro Devices Athlon 4 /Athlon MP/XP Palomino 
 (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: 
No such file or directory
Reading config file /home/unknown/.mplayer/config
Reading /home/unknown/.mplayer/codecs.conf: Can't open
 '/home/unknown/.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' '-v' '-v' '-cache' '50' 
rtsp://real.cbsig.net/g2demand/entertainment/mini/lateshow/
records/goofy.rm
init_freetype
get_path('font/font.desc') -> '/home/unknown/.mplayer/font/font.desc'
font: can't open file: /home/unknown/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Failed to open /dev/rtc:
 Permission denied (it should be readable by the user.)
Using nanosleep() timing
get_path('input.conf') -> '/home/unknown/.mplayer/input.conf'
Can't open input config file /home/unknown/.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('goofy.rm.conf') -> '/home/unknown/.mplayer/goofy.rm.conf'

[[[init getch2]]]

Playing  rtsp://real.cbsig.net/g2demand/entertainment/mini/lateshow/
records/goofy.rm
Filename for url is now
rtsp://real.cbsig.net/g2demand/entertainment/mini/lateshow/
records/goofy.rm
Filename for url is now
rtsp://real.cbsig.net/g2demand/entertainment/mini/lateshow/
records/goofy.rm
Resolving real.cbsig.net for AF_INET...
Connecting to server real.cbsig.net[170.20.0.40]:554 ...
Cache size set to 50 KBytes
Connected to server: real.cbsig.net
CACHE_PRE_INIT: 0 [0] 0  pre:0  eof:0
Cache fill: 16.00% (8192 bytes)    CACHE2_SEEK: 0x0 <= 
0x0 (0x0) <= 0x0
Checking for REAL
REAL file format detected.
real: Header size: 18
real: Header object version: 0
real: File version: 0
Chunk: PROP (504f5250) (size: 0x32, offset: 0x12)
First index chunk offset: 0x0
First data chunk offset: 0x149
Flags (2): [perfect play (more buffers)]
Chunk: CONT (544e4f43) (size: 0x5e, offset: 0x44)
Chunk: MDPR (5250444d) (size: 0x9d, offset: 0xa2)
Found new stream (id: 0)
skip_str: 16 bytes skipped
skip_str: 20 bytes skipped
demux_real: type_spec: len=75  fpos=0xF4  
first_dword=0x2E7261FD (ýar.)
==> Found audio stream: 0
Found audio stream!
version: 4
header size: 57
frame_size: 278
sub_packet_size: 0
samplerate: 11025, channels: 1
skip_str: 4 bytes skipped
read_str: 4 bytes read
Audio: DNET -> AC3
======= WAVE Format =======
Format Tag: 28260 (0x6E64)
Channels: 1
Samplerate: 11025
avg byte/sec: 16000
Block align: 278
bits/sample: 16
cbSize: 0
===========================
### skipping 9 bytes of codec info
Chunk: DATA (41544144) (size: 0x3de6, offset: 0x13f)
Packets in file: 57
Auto-selected RM audio ID = 0
Clip info:
 name: "Goofy Gags"
 author: Late Show with David Letterman
 copyright: ©1998 Worldwide Pants Incorporated
==============================================================
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 SSE optimized IMDCT transform
a52: len=278  flags=0x1  11025 Hz 16000 bit/s
AC3: 1.0 (mono)  11025 Hz  16.0 kbit/s
A52 flags before a52_frame: 0x2A
A52 flags after a52_frame: 0xA
Using MMX optimized resampler
AUDIO: 11025 Hz, 2 ch, 16 bit (0x10), 
ratio: 2000->44100 (16.0 kbit)
Selected audio codec: [a52] afm:liba52 (AC3-liba52)
============================================================
Checking audio filter chain for 
11025Hz/2ch/16bit -> 11025Hz/2ch/16bit.
[libaf] Adding filter dummy
[dummy] Was reinitialized, rate=11025Hz, 
nch = 2, format = 0x00000001 
 and bps = 2
AF_pre: af format: 2 bps, 2 ch, 11025 hz, little endian signed int
AF_pre: 11025Hz 2ch Signed 16-bit (Little-Endian)
ao2: 11025 Hz  2 chans  Signed 16-bit (Little-Endian)
audio_setup: using '/dev/dsp' dsp device
audio_setup: using '/dev/mixer' mixer device
audio_setup: using 'pcm' mixer device
audio_setup: sample format: Signed 16-bit (Little-Endian)
 (requested: Signed 16-bit (Little-Endian))
audio_setup: using 2 channels (requested: 2)
audio_setup: using 11025 Hz samplerate (requested: 11025)
audio_setup: frags: 256/256  (256 bytes/frag)  free:  65536
AO: [oss] 11025Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
AO: Description: OSS/ioctl audio output
AO: Author: A'rpi
Building audio filter chain for 11025Hz/2ch/16bit ->
 11025Hz/2ch/16bit.
[dummy] Was reinitialized, rate=11025Hz, nch = 2, 
format = 0x00000001 
 and bps = 2
[dummy] Was reinitialized, rate=11025Hz, nch = 2, 
format = 0x00000001
and bps = 2
Video: no video
Freeing (null) unused video chunks.
Starting playback...

decaudio: minlen=65536 maxlen=65536 declen=65536 (max=71680)
decaudio: decoding 65536 bytes, max: 71680 (6144)
decaudio: decoding 59392 bytes, max: 65536 (6144)
a52: len=278  flags=0x1  11025 Hz 16000 bit/s
decaudio: decoding 53248 bytes, max: 59392 (6144)
a52: len=278  flags=0x1  11025 Hz 16000 bit/s

decaudio: minlen=512 maxlen=65536 declen=512 (max=71680)
decaudio: declen=512 out=512 (max 65536)
A:         6.1  0.8% 0%
decaudio: minlen=512 maxlen=65536 declen=512 (max=71680)
decaudio: declen=512 out=512 (max 65536)
A:         6.1  0.8% 0%
decaudio: minlen=512 maxlen=65536 declen=512 (max=71680)
decaudio: declen=512 out=512 (max 65536)
A:         6.1  0.8% 0%
decaudio: minlen=512 maxlen=65536 declen=512 (max=71680)
decaudio: decoding 512 bytes, max: 71680 (6144)

(Pressed ctrl-C here)

MPlayer interrupted by signal 2 in module: play_audio

*** uninit(0x6CA)
Uninit audio filters...
[libaf] Removing filter dummy
uninit audio: liba52
DEMUXER: freeing demuxer at 0x8723328
DEMUXER: freeing sh_audio at 0x87230c8

[[[uninit getch2]]]
vo: x11 uninit called but X11 not inited..
max framesize was 0 bytes





More information about the MPlayer-dev-eng mailing list