g_object_new_internal: assertion failed: (nqueue != NULL) with simple Bin

Adam Langley linux at irisdesign.co.nz
Fri Apr 21 03:52:48 UTC 2017


Hi,

I have a subclass of GstBin (in Python), which simply contains:

queue -> rtmpsink

And I am ghosting the queue.sink.


        self.gst_queue = Gst.ElementFactory.make('queue', 'rtmp_queue')
        self.gst_rtmp = Gst.ElementFactory.make('rtmpsink', 'rtmp_rtmpsink')

        self.gst_rtmp.set_property('sync', False )
        self.gst_rtmp.set_property('async', False)
        self.gst_queue.set_property('max-size-bytes', 512000)
        self.gst_queue.set_property('leaky', 1)
        self.add(self.gst_rtmp)
        self.add(self.gst_queue)

        self.sink_pad = self.gst_queue.get_static_pad('sink')

        self.gst_queue.link(self.gst_rtmp)

        gpad = Gst.GhostPad.new("sink", self.sink_pad)

        gpad.set_active(True)

        self.add_pad(gpad)



Everything constructs fine, but then during a structure-change message, I
get:

DEBUG: structure change (<enum GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK of type
GstStructureChangeType>, <__main__.GstValve object at 0x74cd8fd0 (GstValve
at 0xdc2068)>, False)

**

GLib-GObject:ERROR:/build/glib2.0-tTvduh/glib2.0-2.42.1/./gobject/gobject.c:1782:g_object_new_internal:
assertion failed: (nqueue != NULL)

Aborted



The error occurs when I relay the pad structure change message to the
superclass - my override of do_handle_message is simply this:

    def do_handle_message(self, message):

        if message.type == Gst.MessageType.STRUCTURE_CHANGE:

            res = message.parse_structure_change()

            print 'structure change %s' % `res`

        return Gst.Bin.do_handle_message(self, message)


What could be going on?


Thanks,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170421/774eff5d/attachment-0001.html>


More information about the gstreamer-devel mailing list