GNOME Bugzilla – Bug 795560
Playbin3 pipeline is pending when trick play (-2x) with NO AUDIO TRICKMODE
Last modified: 2018-11-03 12:05:51 UTC
Dear All. When I try to trick play (e.g. -2x), playbin3 pipeline is pending. Videosink is prerolled(asyc-done) by flush-seek, but audiosink it not preorolled. Because, audiodecoder does not push new segment for new playback rate and new decoded buffer or gap to complete preroll state. Audiodeocder receives all buffers and gathers from upstream until start PTS. After that EOS comes. But, the EOS event is pending in decodebiin3 until ALL EOS State. I think below commit affects this symptom. ==> ce65017 decodebin3/urisourcebin: Switch to actual EOS events internally
Created attachment 371409 [details] [review] audiodecoder: send SEGMENT and GAP event for NO AUDIO TRICKMODE Dear All. To avoid this symptom, send new SEGMENT and GAP event to downstream to complete preroll state (seek-done). Please review my patch. Thanks.
Review of attachment 371409 [details] [review]: ::: gst-libs/gst/audio/gstaudiodecoder.c @@ +1243,3 @@ + /* FIXME: Sending new Segment and GAP event for NO AUDIO TRICKMODE */ + if (dec->input_segment.flags & GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO) { why not the output segment ? @@ +1251,3 @@ + GST_SEGMENT_FORMAT, &dec->input_segment, &dec->output_segment); + + output_seg = gst_pad_get_sticky_event (dec->srcpad, GST_EVENT_SEGMENT, 0); why not just use the audiodecoder->output_segment ?
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/443.