Bug#314762: libgstreamer0.8-0: last update breaks amarok

Andreas Pakulat Andreas Pakulat <apaku@gmx.de>, 314762@bugs.debian.org
Thu, 23 Jun 2005 20:02:48 +0200


--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

On 23.Jun 2005 - 16:04:37, Loïc Minier wrote:
> On Thu, Jun 23, 2005, Andreas Pakulat wrote:
> > (process:8297): GStreamer-CRITICAL **: gst_object_check_uniqueness: assertion `name != NULL' failed
> > (process:8297): GStreamer-WARNING **: Name (null) is not unique in bin pipeline0, not adding
> > FÃœHRE Leitung AUS ...
> > (process:8297): GStreamer-WARNING **: pushing data on non-negotiated pad mad0:src, not allowed.
> 
>  Reading this upstream report:
>     <http://bugzilla.gnome.org/show_bug.cgi?id=167283>
>  with this fix:
>     <http://bugzilla.gnome.org/attachment.cgi?id=37433&action=view>
> 
>  makes me think that amarok is probably borken, if it arrives to such a
>  situation.

I hope you don't think that I got that last output from amarok. I
executed the pipline you told me:

gst-launch-0.8 filesrc location=<mp3file> ! spider ! audioscale ! audioconvert ! artsdsink

So I don't see amarok do anything in this... But anyway, I'll attach the
stuff I get from the following commands.

>  I propose we debug this together.

Sure, no problem...

>  When you reach the break point, type "bt",
> or even "thread apply all bt
>  full" in gdb, this will show you where the breakpoint was reached
>  (when the log was printed).

Ok, I attach 3 files, the first one is the debug-output of amarok (via
kdDebug()) telling some parameters used inside the GstEngine::init()
function. The next file is the output of "thread apply all bt full"
after the first break (just before the printing of 
GStreamer-CRITICAL **: gst_object_check_uniqueness: assertion `name != NULL' failed).
The last one is the backtrace (again the full version) from the next
reaching of the breakpoint.

>  This will permit us to pinpoint when amarok calls gstreamer with a NULL
>  pointer.

It seems that amarok calls gst_init_check in the wrong way and also
creates the pipeline not right...

Andreas

-- 
You love peace.

--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=amarok_info1

Information from amarok:
amarok: [GstEngine::GstEngine()]
amarok:
amarok:         PluginManager Service Info:
amarok:         ---------------------------
amarok:         name                          : Gstreamer-Treiber
amarok:         library                       : libamarok_gstengine_plugin
amarok:         desktopEntryPath              : amarok_gstengine_plugin.desktop
amarok:         X-KDE-amaroK-plugintype       : engine
amarok:         X-KDE-amaroK-name             : gst-engine
amarok:         X-KDE-amaroK-authors          : (Mark Kretschmann)
amarok:         X-KDE-amaroK-rank             : 255
amarok:         X-KDE-amaroK-version          : 1
amarok:         X-KDE-amaroK-framework-version: 5
amarok:
amarok: BEGIN: virtual bool GstEngine::init()
amarok:   BEGIN: bool GstEngine::createPipeline()
amarok:     [Gst-Engine] Thread scheduling priority: 2
amarok:     [Gst-Engine] Sound output method: artsdsink
amarok:     [Gst-Engine] CustomSoundDevice: false
amarok:     [Gst-Engine] Sound Device:
amarok:     [Gst-Engine] CustomOutputParams: false
amarok:     [Gst-Engine] Output Params:
[Switching to Thread -1217427072 (LWP 21604)]


--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=amarok_info2

Backtrace before GStreamer-CRITICAL output:
Thread 1 (Thread -1217427072 (LWP 21604)):
#0  0xb6611f43 in g_log () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#1  0xb6611fcc in g_return_if_fail_warning () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#2  0xb67b8455 in gst_object_check_uniqueness () from /usr/lib/libgstreamer-0.8.so.1
No symbol table info available.
#3  0xb67b9f5c in gst_bin_add_many () from /usr/lib/libgstreamer-0.8.so.1
No symbol table info available.
#4  0xb67ba240 in gst_bin_add () from /usr/lib/libgstreamer-0.8.so.1
No symbol table info available.
#5  0xb68dcc46 in GstEngine::createPipeline (this=0x88d90c0)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/engine/gst/gstengine.cpp:1038
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1640000,
  m_label = 0xb68e91c0 "bool GstEngine::createPipeline()"}
        output = <incomplete type>
        err = (GError *) 0x2
#6  0xb68da558 in GstEngine::init (this=0x88d90c0)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/engine/gst/gstengine.cpp:292
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1570000,
  m_label = 0xb68e8f60 "virtual bool GstEngine::init()"}
       dummy = (GstElement *) 0x0
#7  0x080d2144 in EngineController::loadEngine (this=0x81c4420,
    engineName=@0xbf9a9770)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/enginecontroller.cpp:171
        bar = (struct QObject *) 0x81a2160
        engine = (EngineBase *) 0x88d90c0
        plugin = (struct Plugin *) 0x88d90e8
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1560000,
  m_label = 0x81a1a80 "EngineBase* EngineController::loadEngine(const QString&)"}
        query = {d = 0x83d80c8}
        offers = {sh = 0x84ab1c8}
#8  0x080d1adf in EngineController::loadEngine (this=0x81c4420)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/enginecontroller.cpp:105
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1560000,
  m_label = 0x81a1a40 "EngineBase* EngineController::loadEngine()"}
        engineName = {d = 0x8389b10}


--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=amarok_info3

Backtrace after the first GStreamer-Critical:
Thread 1 (Thread -1217427072 (LWP 21604)):
#0  0xb6611f43 in g_log () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#1  0xb67b9f97 in gst_bin_add_many () from /usr/lib/libgstreamer-0.8.so.1
No symbol table info available.
#2  0xb67ba240 in gst_bin_add () from /usr/lib/libgstreamer-0.8.so.1
No symbol table info available.
#3  0xb68dcc46 in GstEngine::createPipeline (this=0x88d90c0)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/engine/gst/gstengine.cpp:1038
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1640000,
  m_label = 0xb68e91c0 "bool GstEngine::createPipeline()"}
        output = <incomplete type>
        err = (GError *) 0x2
#4  0xb68da558 in GstEngine::init (this=0x88d90c0)
    at /home/andreas/compiling/amarok_deb/amarok-1.2.4/build-tree/amarok-1.2.4/amarok/src/engine/gst/gstengine.cpp:292
        uniquelyNamedStackAllocatedStandardBlock = {m_start = 1570000,
  m_label = 0xb68e8f60 "virtual bool GstEngine::init()"}
        dummy = (GstElement *) 0x10


--0F1p//8PRICkK4MW--