[Bug 788529] New: pulsesink: playing after EOS causes a gap in playback after seek

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Oct 4 18:24:39 UTC 2017


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

            Bug ID: 788529
           Summary: pulsesink: playing after EOS causes a gap in playback
                    after seek
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: mkid.dev at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 360920
  --> https://bugzilla.gnome.org/attachment.cgi?id=360920&action=edit
Scenario file for gst-validate

If after EOS playing state of pipeline is maintain, PulseAudio still wants to
render client's data and calls request callback. pulsesink doesn't have data to
write, thus PulseAudio render "silence". If after some waiting time (e.g. 30
seconds), GStreamer's client seeks (e.g. to 0), a user will hear proper
playback for a while (e.g. 12 seconds), than "silence" will be rendered by
PulseAudio till stream time doesn't reach waiting time (earlier mentioned 30
seconds).

To reproduce, please run command with attached scenario file:
gst-validate-1.0 --set-scenario=brainson.scenario uridecodebin
uri=https://play.podtrac.com/APM-BrainsOn/play.publicradio.org/itunes/d/podcast/minnesota/podcasts/brains_on/2017/02/brainson_20170214_69_20170214_64.mp3
! autoaudiosink

It seems that:
- pulsesink calculates absolute offset in PulseAudio's client buffer based on
running (?) time,
- PulseAudio doesn't increase write index, when silence is rendered (samples
for silence are stored in separate memory block), i.e. underrun is happened,
- PulseAudio doesn't correct write index, if data are provided after silence,
- PulseAudio increases read index during silence.

IMHO pulsesink expects that PulseSink' read index should not be increased or
write index will be rewind to position of read index after underrun.

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