After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 795560 - Playbin3 pipeline is pending when trick play (-2x) with NO AUDIO TRICKMODE
Playbin3 pipeline is pending when trick play (-2x) with NO AUDIO TRICKMODE
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.14.0
Other Linux
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-04-26 04:42 UTC by HoonHee Lee
Modified: 2018-11-03 12:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
audiodecoder: send SEGMENT and GAP event for NO AUDIO TRICKMODE (2.53 KB, patch)
2018-04-26 04:44 UTC, HoonHee Lee
needs-work Details | Review

Description HoonHee Lee 2018-04-26 04:42:01 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
Comment 1 HoonHee Lee 2018-04-26 04:44:16 UTC
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.
Comment 2 Edward Hervey 2018-05-09 16:02:56 UTC
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 ?
Comment 3 GStreamer system administrator 2018-11-03 12:05:51 UTC
-- 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.