No subject
Wed May 9 12:12:37 PDT 2012
if (eos && (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED)) {
GST_ELEMENT_ERROR (queue, STREAM, FAILED,
(_("Internal data flow error.")),
("streaming task paused, reason %s (%d)",
gst_flow_get_name (ret), ret));
What happens under the hood:
- video starts playing, default subtitle selected and everything working
- user selects a subtitle with ID
- playbin2 calls set_text_stream(ID), which then sends a custom flush event to
subtitle_overlay
- subtitle_overlay then calls _pad_blocked_cb leading to the removal of the
current text_overlay (pango) and the setup of a new one
- while setting the new overlay, subtitle_overlay sends a newsegment to the
subtitle pad (subparse).
Currently this newsegment event was being sent in BYTES format and being
ignored by subparse, so the patch at comment #9 makes sure the events are sent
in TIME format.
To make everything work, subparse should send the newsegment event to
text_overlay (pango), which would then read the new buffer, etc. But
gst_sub_parse_chain is never called with a new buffer (same for
gst_subtitle_overlay_subtitle_sink_chain).
So the patch on comment #9 includes:
- Attempt to fix the issue with BYTES vs TIME format by doing the conversion
before sending the events
- Set subparser->need_segment to true on the NEWSEGMENT handling to make sure
the event is relayed on gst_sub_parse_chain
- Also includes the reverse patch from comment #2 to fix the "internal error"
issue
We still need to figure out why the new subtitle buffer is never parsed
(gst_sub_parse_chain never called).
https://bugzilla.gnome.org/show_bug.cgi?id=600648 may be related to this issue.
--
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