GNOME Bugzilla – Bug 148617
AU files encoded with mulaw not working
Last modified: 2004-12-22 21:47:04 UTC
Attached find a mulaw encoded AU file that the gstreamer au plugin doesn't play. gstreamer generates no errors, and looks like it is playing the file, but no sound.
Created attachment 29968 [details] au file encoded with mulaw
gst-launch filesrc location=test.mulaw ! mulawdec ! osssink Works fine here with latest CVS. Closing, Reopen, if you still can't play it.
He's on Solaris, so please test on Solaris before closing, Johan.
1) The file doesn't play back fine with mulawdec, there's a snap at the beginning that doesn't belong there. 2) This is because it's an au file, not raw mulaw. 3) So the correct pipeline is gst-launch filesrc location=test.au ! auparse ! mulawdec ! osssink 4) The real pipeline to test though is autoplugging, which would be gst-launch filesrc location=test.au ! spider ! osssink And the pipelines listed in 3 and 4 work fine (with recent cvs) on both my x86 and PPC, so it's not an endianness issue. I'm closing the bug, because if I interpret it correctly, Brian tried gst-launch filesrc location=test.au ! auparse ! osssink which does not ever link auparse to osssink because auparse uses SOMETIMES pads and those are only linked when possible.
Even with the pipelines mentioned in #3 and #4, I can't get Sun's au files to play properly. gst-launch seems to play them, but I hear no sound. From your description, I get the impression that there might be something wrong with Sun's au files. Could you explain what you mean by "a snap at the beginning that doesn't belong there". And since none of Sun's au files that we ship with Solaris in /usr/share/audio/samples/au seem to play, are we positive that the problem is that these files are somehow corrupted? I'm re-opening the bug just so it gets noticed and my questions can get a response, though I am agreeable if we end up determining that this isn't a bug.
Does auparse or mulawdec by any accident read unaligned integers from buffers without using the appropriate macros? That'd explain the Solaris-specificness of this bug.
pinging again. Any responses to the querries I've asked. Also, on Solaris (using gstreamer 0.8.4 and gst-plugins 0.8.3) I see this when I try to run the "gst-launch filesrc location=flush.au ! spider ! sunaudiosink" pipeline: Execution ended after 13 iterations (sum 89236000 ns, average 6864307 ns, min 646000 ns, max 65865000 ns). (process:29046): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GstObject' (process:29046): GStreamer-CRITICAL **: file gstobject.c: line 223: assertion `GST_IS_OBJECT (object)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GObject' (process:29046): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<unknown>' (process:29046): GLib-GObject-CRITICAL **: file gsignal.c: line 2122: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' (process:29046): GStreamer-CRITICAL **: file gstobject.c: line 242: assertion `GST_IS_OBJECT (object)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstElement' (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstElement' (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstElement' (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstElement' (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GStreamer-CRITICAL **: file gstelement.c: line 2728: assertion `GST_IS_ELEMENT (element)' failed (process:29046): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GstObject' Bus Error(coredump) Here's the stack trace of the core file: ff1b0350 gst_bin_unset_element_sched (ff24f3f8, 30343629, 1, 0, 16c, 0) + 318 febf6b9c g_list_foreach (92e78, ff1b0038, 398d8, ff265acc, 16c, 0) + 44 ff1b02d8 gst_bin_unset_element_sched (ff24f3f8, 9a338, 1, 0, 255, 0) + 2a0 ff1b1274 gst_bin_remove_func (9cac0, 995b0, ff24f6dc, ff265b19, 255, 0) + 134 ff1b1874 gst_bin_remove (ff24f6e8, 9aa98, ff24fb24, ff265baa, 383, 9cac0) + 21c ff1b3068 gst_bin_dispose (9cac0, 50, 1, 0, 0, 9cac0) + 138 ff1fa930 gst_pipeline_dispose (9cac0, 31274, 1, 0, 0, 9cac0) + 110 fed3aa1c g_object_last_unref (9cac0, 50, 1, 0, f6, 9cac0) + 8c fed3f0b4 g_object_unref (9cac0, 50, ff24eb10, ff265621, f6, 9cac0) + 10c ff1ab230 gst_object_unref (f6, 9cac0, ff24eb1c, 1, 0, 15) + 210 0001497c main (7, ffbfee2c, ffbfee4c, 27800, feee0100, feee0140) + 7dc 00013000 _start (0, 0, 0, 0, 0, 0) + 108
I don't know what happened. I just tested this again, and it seems to be working fine now. Sorry about any confusion.