After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 142286 - The au plugin cannot play au files encoded with ulaw
The au plugin cannot play au files encoded with ulaw
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other All
: Normal normal
: 0.8.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-05-10 16:59 UTC by Brian Cameron
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
u-law encoded au file that the au plugin can not handle (38.24 KB, application/octet-stream)
2004-05-10 17:00 UTC, Brian Cameron
  Details
fix mu-law, add support for a-law, pcm 8, 16, 24, 32 and ieee formats (4.83 KB, patch)
2004-05-10 23:13 UTC, Stephane Loeuillet
none Details | Review
log (lev 5) of error (13.39 KB, application/octet-stream)
2004-05-10 23:35 UTC, Stephane Loeuillet
  Details

Description Brian Cameron 2004-05-10 16:59:25 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.
Comment 1 Brian Cameron 2004-05-10 17:00:08 UTC
Created attachment 27553 [details]
u-law encoded au file that the au plugin can not handle
Comment 2 Stephane Loeuillet 2004-05-10 17:04:10 UTC
i'm working on it

seems encoding = 1 => mu-law, not a-law

plus adding other formats and docs
Comment 3 Stephane Loeuillet 2004-05-10 23:13:05 UTC
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
Comment 4 Stephane Loeuillet 2004-05-10 23:35:27 UTC
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)
Comment 5 Ronald Bultje 2004-05-10 23:42:20 UTC
Patch is ok, please apply. I'll try to look at the capsnego failure after that.
Comment 6 Stephane Loeuillet 2004-05-10 23:47:56 UTC
ok, thanks, applying patch now
Comment 7 Ronald Bultje 2004-05-11 00:08:25 UTC
Works now. Needs a request-pad hack so that spider (=totem/rhythmbox) likes it
as well.
Comment 8 Ronald Bultje 2004-05-11 00:20:10 UTC
I was bored, so did that too. Fixed in CVS.