[Bug 743973] playbin: Need replace suburidecoderbin's segment with normal uridecoderbin's segment
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Apr 26 10:56:20 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=743973
Sebastian Dröge (slomo) <slomo at coaxion.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #301147|none |needs-work
status| |
--- Comment #11 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
Review of attachment 301147:
--> (https://bugzilla.gnome.org/review?bug=743973&attachment=301147)
Please describe in more detail what this is supposed to fix, and in which
situation this problem can appear
::: gst/playback/gstplaybin2.c
@@ +3055,3 @@
+
+ GST_SOURCE_GROUP_LOCK (group);
+ _uridecodebin_event_probe_wait (group);
I think it's cleaner to use a blocking pad probe for this instead of using a
custom cond. Especially a block pad probe will handle things properly for
flushing and pad deactivation
@@ +3058,3 @@
+ if (segment.format == GST_FORMAT_TIME) {
+ segment.start = group->nonsub_segment.start;
+ segment.time = group->nonsub_segment.time;
Why only these two? Should probably replace the whole segment
@@ +5322,3 @@
}
gst_element_set_state (suburidecodebin, GST_STATE_READY);
+ g_cond_init (&group->suburidecodebin_segment_cond);
Here you would init the cond on every group switch... it should only be done
exactly once when playbin is created (and then cleared in finalize)
@@ +5500,3 @@
+ group->got_nonsub_segment = TRUE;
+ g_cond_broadcast (&group->suburidecodebin_segment_cond);
+ g_cond_clear (&group->suburidecodebin_segment_cond);
Especially this will probably cause problems as at this time another thread is
actually still using the cond
--
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