[Bug 659571] basetransform: delay events we cannot send right away
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Tue Sep 20 06:48:03 PDT 2011
https://bugzilla.gnome.org/show_bug.cgi?id=659571
GStreamer | gstreamer (core) | unspecified
Sebastian Dröge <slomo> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #197057|none |needs-work
status| |
--- Comment #10 from Sebastian Dröge <slomo at circular-chaos.org> 2011-09-20 13:48:01 UTC ---
Review of attachment 197057:
--> (https://bugzilla.gnome.org/review?bug=659571&attachment=197057)
::: libs/gst/base/gstbasetransform.c
@@ +389,3 @@
+{
+ if (transition == GST_STATE_CHANGE_PAUSED_TO_READY) {
+ gst_base_transform_drop_delayed_events (GST_BASE_TRANSFORM (element));
Oh there was no state change function yet. Just do it in
gst_base_transform_activate() if activate==FALSE then. That's the same
@@ +2108,3 @@
* something different. */
+ if (forward) {
+ gboolean delay, caps_set = GST_PAD_CAPS (trans->srcpad) != NULL;
Parenthesis around the boolean expression
@@ +2116,3 @@
+ delay = GST_EVENT_IS_SERIALIZED (event) && !caps_set
+ && GST_EVENT_TYPE (event) != GST_EVENT_EOS;
+ }
Maybe a comment here why we do this at all and why FLUSH_STOP/EOS are handled
differently
@@ +2125,3 @@
+ } else {
+ if (caps_set)
+ gst_base_transform_send_delayed_events (trans);
Only if GST_EVENT_IS_SERIALIZED(), otherwise you might send serialized events
from a thread different to the streaming thread
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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