gstreamer/gst-libs/gst
Thiago Santos 8242676dc2 audiosink: compensate for segment restart with clock's time_offset
When playing chained data the audio ringbuffer is released and
then acquired again. This makes it reset the segbase/segdone
variables, but the next sample will be scheduled to play in
the next position (right after the sample from the previous media)
and, as the segdone is at 0, the audiosink will wait the duration
of this previous media before it can write and play the new data.

What happens is this:
pointer at 0, write to 698-1564, diff 698, segtotal 20, segsize 1764, base 0

it will have to wait the length of 698 samples before being able to write.

In a regular sample playback it looks like:
pointer at 677, write to 696-1052, diff 19, segtotal 20, segsize 1764, base 0

In this case it will write to the next available position and it
doesn't need to wait or fill with silence.

This solution is borrowed from pulsesink that resets the clock to
start again from 0, which makes it reset the time_offset to the time
of the last played sample. This is used to correct the place of
writing in the ringbuffer to the new start (0 again)

https://bugzilla.gnome.org/show_bug.cgi?id=737055
2014-09-24 10:22:54 -03:00
..
allocators dmabuf: Ensure _get_fd() works even for shared memory 2014-07-11 09:47:04 +02:00
app app: Add FIXME comment for making the instance/class structs private 2014-09-16 00:43:37 +03:00
audio audiosink: compensate for segment restart with clock's time_offset 2014-09-24 10:22:54 -03:00
fft fft: Fix compiler errors caused by not including config.h 2013-03-02 19:13:39 +01:00
pbutils discoverer: Set 'processing = FALSE' when done discovering SYNC 2014-08-15 13:40:17 +02:00
riff riff: Recognize RF64 as RIFF file 2014-08-29 11:47:24 +03:00
rtp rtpbasepayload: Implement reconfigure event & renegotiation without subclass 2014-05-03 10:21:04 +02:00
rtsp rtspconnection: ignore timeout in session request header 2014-09-09 11:37:26 +02:00
sdp sdp: add gstmikey.h to sdp.h 2014-07-04 09:01:35 +01:00
tag libs: There is no G_TYPE_CHECK_INTERFACE_TYPE and G_TYPE_CHECK_INTERFACE_CAST 2014-06-26 16:18:46 +02:00
video videopool: add missing annotation for gst_video_buffer_pool_new() 2014-09-24 11:02:42 +03:00
gettext.h Fix FSF address 2012-11-03 23:05:09 +00:00
glib-compat-private.h Fix FSF address 2012-11-03 23:05:09 +00:00
gst-i18n-app.h tools: add simple command-line gst-play utility for testing purposes 2013-08-16 15:45:23 +01:00
gst-i18n-plugin.h Fix FSF address 2012-11-03 23:05:09 +00:00
Makefile.am tools: add simple command-line gst-play utility for testing purposes 2013-08-16 15:45:23 +01:00