Opened 5 years ago

Closed 5 years ago

#2106 closed defect (fixed)

mplayer can't play through pulseaudio networking stream

Reported by: yuri@… Owned by: reimar
Priority: normal Component: core
Version: HEAD Severity: major
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: Analyzed by developer:

Description

mplayer plays ok to the default pulse device (-ao pulse), but when the host is specified it crashes, see log below.
This prevents streaming audio between hosts, which is an important feature today.

mplayer-1.1.r20120721_1 on FreeBSD-9.1 amd64

---log---
$mplayer -ao pulse:localhost http://radiosilver.corbina.net:8000/silver48.mp3

MPlayer SVN-r35040-snapshot-4.2.1 (C) 2000-2012 MPlayer Team

Playing http://radiosilver.corbina.net:8000/silver48.mp3.
Resolving radiosilver.corbina.net for AF_INET6...

Couldn't resolve name for AF_INET6: radiosilver.corbina.net
Resolving radiosilver.corbina.net for AF_INET...
Connecting to server radiosilver.corbina.net[85.21.192.13]: 8000...

Name : Silver Rain
Website: http://www.shoutcast.com
Public : no
Bitrate: 48kbit/s
Cache size set to 320 KBytes
Cache fill: 2.50% (8192 bytes)
ICY Info: StreamTitle?=;
Cache fill: 15.00% (49152 bytes)

Audio only file format detected.
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 54.42.100 (internal)
AUDIO: 44100 Hz, 1 ch, floatle, 48.0 kbit/3.40% (ratio: 6000->176400)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================

MPlayer interrupted by signal 11 in module: ao2_init

  • MPlayer crashed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
  • 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.

Change History (3)

comment:1 Changed 5 years ago by yuri@…

Here is the stack trace:
(gdb) bt
#0 0x00000008088b86f0 in strchr () from /lib/libc.so.7
#1 0x00000000004cbf78 in init (rate_hz=44100, channels=1, format=29, flags=0) at libao2/ao_pulse.c:159
#2 0x0000000000478d95 in init_best_audio_out (ao_list=0x81103bff0, use_plugin=0, rate=44100, channels=1, format=29, flags=0) at libao2/audio_out.c:165
#3 0x0000000000466660 in reinit_audio_chain () at mplayer.c:1676
#4 0x000000000046a0b0 in main (argc=4, argv=0x7fffffffdad0) at mplayer.c:3613

And here is the line that crashes:
opts = strchr(sink, ':');

sink is null here.

Obviously mplayer was expecting the output sink string but man page documents pulse strin g like this: [<host>[:<output sink>[:broken_pause]]], therefore <output sink> is optional and some default should be used.

comment:2 Changed 5 years ago by yuri@…

After looking into this a bit more, I found that simple workaround like this localhost:: works. So the issue seems to be simple: mplayer just can't handle missing extra fields (sink,options) as it should.

comment:3 Changed 5 years ago by reimar

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

You are using an outdated version, this was fixed already 3 weeks ago in r35296.

Note: See TracTickets for help on using tickets.