[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