[Bug 740949] inputselector: sticky events haven't send out when active track reach EOS.
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Dec 18 02:08:53 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=740949
GStreamer | gstreamer (core) | 1.2.3
Sebastian Dröge (slomo) <slomo> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #292788|none |reviewed
status| |
--- Comment #21 from Sebastian Dröge (slomo) <slomo at coaxion.net> 2014-12-18 10:08:47 UTC ---
Review of attachment 292788:
--> (https://bugzilla.gnome.org/review?bug=740949&attachment=292788)
::: plugins/elements/gstinputselector.c
@@ +562,3 @@
forward = (active_selpad->eos && !active_selpad->eos_sent);
active_selpad->eos_sent = TRUE;
+ gst_input_selector_eos_wait (sel, selpad);
You probably should go out here immediately if self->flushing is TRUE
@@ +563,3 @@
active_selpad->eos_sent = TRUE;
+ gst_input_selector_eos_wait (sel, selpad);
+ forward = TRUE;
This looks wrong, you first set forward conditionally and then unconditionally
to TRUE :)
I'm not sure all this logic is correct either. See the comment in the code a
few lines above. I think if what was described in that comment happened, we
shouldn't wait but forward the EOS event immediately instead of waiting.
@@ +567,2 @@
}
GST_DEBUG_OBJECT (pad, "received EOS");
I think if we're forwarding the EOS event here, we should set eos_block to
FALSE and wake up any other pads that might currently be waiting.
Also instead of eos_block... isn't this more a boolean that describes if the
whole selector is EOS now? So maybe just call it self->eos or self->eos_sent or
self->is_eos or something like that.
--
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