audiobasesink: Re-work GAP buffer and trick-mode handling
authorJan Schmidt <jan@centricular.com>
Thu, 5 Feb 2015 06:44:59 +0000 (17:44 +1100)
committerJan Schmidt <jan@centricular.com>
Thu, 5 Feb 2015 17:09:37 +0000 (04:09 +1100)
commitca231ce321cf0c13ed7b5d6c1ef814b28aa6c921
treeea0248049b5cb5b0645a5b3427fd3b43fdb204cb
parentd3f6d2b88710f337ad4131a5f7ae5314a5f41703
audiobasesink: Re-work GAP buffer and trick-mode handling

In trickmode no-audio mode, or when receiving a GAP buffer,
discard the contents and render as a GAP event instead.

Make sure when rendering a gap event that the ring buffer will
restart on PAUSED->PLAYING by setting the eos_rendering flag.

This mostly reverts commit 8557ee and replaces it. The problem
with the previous approach is that it hangs in wait_preroll()
on a PLAYING-PAUSED transition because it doesn't commit state
properly.

https://bugzilla.gnome.org/show_bug.cgi?id=735666
gst-libs/gst/audio/gstaudiobasesink.c