[Bug 753899] baseparse: push sticky events to downstreams for initial prerolling
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Jan 27 04:58:25 PST 2016
https://bugzilla.gnome.org/show_bug.cgi?id=753899
Sebastian Dröge (slomo) <slomo at coaxion.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #319660|none |needs-work
status| |
--- Comment #31 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 319660:
--> (https://bugzilla.gnome.org/review?bug=753899&attachment=319660)
::: libs/gst/base/gstbaseparse.c
@@ +405,3 @@
+
+/**
+ * GST_BASE_PARSE_STREAM_UNLOCK:
Why is this stream lock stuff needed here? GAP, CAPS (and other serialized
events) and buffers are guaranteed to be protected by the pad's stream lock
already.
@@ +1107,3 @@
+ GstStructure *structure;
+
+ caps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse));
This will return NULL if the srcpad has no peer at this point. It's probably
nicer here to use gst_pad_peer_query_caps(). If that returns something you
filter it with the source pads template caps, otherwise you just use the source
pads template caps.
Note: same bug in GstAudio/VideoDecoder. Want to provide a patch for them? :)
@@ +1423,3 @@
+ /* Ensure we have caps before forwarding the event */
+ GST_BASE_PARSE_STREAM_LOCK (parse);
+ if (!gst_caps_is_fixed (caps)) {
Why? I think you should just check here "if (!gst_pad_has_current_caps())".
That's what we care about here
@@ +1430,3 @@
+ parse->priv->pending_events =
+ g_list_append (parse->priv->pending_events,
+ gst_event_new_caps (default_caps));
You're leaking default_caps here.
--
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