GNOME Bugzilla – Bug 142286
The au plugin cannot play au files encoded with ulaw
Last modified: 2004-12-22 21:47:04 UTC
When I try to play an au file encoded with mp3 with the following command: $ gst-launch filesrc location=ring.au ! auparse ! esdsink I get these errors: offset 48, size 39111, encoding 1, frequency 8000, channels 1 ERROR GST_PADS(16761) gstpad.c(2472):gst_pad_set_explicit_caps:<auparse0> (null) ERROR GST_PADS(16761) gstpad.c(2472):gst_pad_set_explicit_caps:<auparse0> failed to negotiate (try_set_caps with "audio/x-alaw, rate=(int)8000, channels=(int)1" returned REFUSED) ERROR: from element /pipeline0/auparse0: Internal GStreamer error: pad problem. File a bug. Additional debug info: gstpad.c(2472): gst_pad_set_explicit_caps: /pipeline0/auparse0: failed to negotiate (try_set_caps with "audio/x-alaw, rate=(int)8000, channels=(int)1" returned REFUSED) Execution ended after 1 iterations (sum 869000 ns, average 869000 ns, min 869000 ns, max 869000 ns) You can see from the error messages that it is complaining about the following: failed to negotiate (try_set_caps with "audio/x-alaw, rate=(int)8000, channels=(int)1" returned REFUSED) It should be calling try_set_caps with ulaw, not alaw. When I run "file ring.au" I can see it is encoded with ulaw. Here is the output: ring.au: audio data: 8-bit u-law, mono, 8000 Hz I've attached the ring.au file since it is small (39k), so you can debug it. I need to backport the fix for this bug to Gstreamer 0.8.0, so if the person who fixes this bug could attach the patch to this bug report, that would be helpful.
Created attachment 27553 [details] u-law encoded au file that the au plugin can not handle
i'm working on it seems encoding = 1 => mu-law, not a-law plus adding other formats and docs
Created attachment 27572 [details] [review] fix mu-law, add support for a-law, pcm 8, 16, 24, 32 and ieee formats but caps nego still fails as before
Created attachment 27573 [details] log (lev 5) of error gst-launch --gst-debug-level=5 filesrc location=soundB.au ! auparse ! mulawdec ! fakesink > auparse.log 2>&1 file soundB.au soundB.au: Sun/NeXT audio data: 8-bit ISDN mu-law, mono, 44100 Hz negotiation fails for any .au/.snd file i have (a-law, mu-law, linear pcm 8,16,24,32, ieee32,64) that's normal for the 4 other formats like G72x (adpcm, not supported)
Patch is ok, please apply. I'll try to look at the capsnego failure after that.
ok, thanks, applying patch now
Works now. Needs a request-pad hack so that spider (=totem/rhythmbox) likes it as well.
I was bored, so did that too. Fixed in CVS.