[Bug 787300] basesink: Add property to handle seamless-seek by sink

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Sep 23 05:51:38 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=787300

--- Comment #7 from HoonHee Lee <hoonh83.lee at gmail.com> ---
Dear All.
I want to explain our current status for YouTube pipeline.

This is our YouTube Pipeline. (Not using playbin pipeline)
Our Player (App) is feeding element streams to each appsrc.
----------------------------------------------------------------------------
video-appsrc - queue - H/W VDEC - queue - H/W VSINK
audio-appsrc - queue - audio parse (optional) - H/W ADEC - queue - H/W ASINK
----------------------------------------------------------------------------

As I know, there is differences with common trick play.
It wants to decoding fully and rendering fully regardless of playback rate and
without dropping buffers.
We think that we could meet the seamless behaviour if we do not flush.
Thus, we notify changed segment.rate, segment.base, segment.start and
segment.time .. through new custom event with new segment information to each
video and audio sink directly.
Actually, new segment information contains the current rendered PTS (e.g.
current position) by segment.start.

I think it is not permitted to adjust start-time and base-time of the
pipeline's clock in general case.
However, I am not sure either we do adjust clock or not for YouTube trick play.

As your concerned, I think it is not easy to handle clock and it needs more
discussion.

In temporary, we implemented 'prepare_seamless_seek' new API and delegate to
each audio/video sink to synchronize buffers, new segment and clock.

-- 
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