[Bug 754178] gst-discoverer doesn't detect both audio and video of RTSP streams
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Jun 29 22:36:50 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=754178
Olivier CrĂȘte <olivier.crete at ocrete.ca> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #354539|none |needs-work
status| |
--- Comment #21 from Olivier CrĂȘte <olivier.crete at ocrete.ca> ---
Review of attachment 354539:
--> (https://bugzilla.gnome.org/review?bug=754178&attachment=354539)
I also wonder if you shouldn't drop the counter and just iterate over the whoel
list of decodebins every time, this is probably less error-prone.
::: gst/playback/gsturidecodebin.c
@@ +118,3 @@
guint64 ring_buffer_max_size; /* 0 means disabled */
+
+ gint pending_topologies;
How is this counter locked?
@@ +2467,3 @@
+ sttype = gst_structure_get_name_id (structure);
+
+ if (sttype == topology_structure_name) {
Why not just use gst_message_has_name() ?
@@ +2471,3 @@
+ GstElement *element = GST_ELEMENT (GST_MESSAGE_SRC (msg));
+
+ gst_message_unref (msg);
After this structure is no longer valid, you need to keep the message alive...
it owns the GstStructure
@@ +2483,3 @@
+
+ g_object_set_data (G_OBJECT (element), "topology",
+ gst_structure_copy (structure));
Since you free'd msg, the GstStructure pointer is not valid anymore.
Also, I think that will leak the structure.. Mabye you want to use
g_object_set_data_full() instead. Then you can also drop the
gst_structure_free() in remove_decoders().
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list