gstreamer/ext
Vincent Penquerc'h 3e0134f51f flacdec: avoid timestamp/offset tracking going out of sync
The libFLAC API is callback based, and we must only call it to
output data when we know we have enough input data. For this
reason, a single processing step is done when receiving a buffer.
However, if there were metadata buffers still pending, a step
intended for the first audio frame might end up writing that
leftover metadata. Since a single step is done per buffer, this
will cause every buffer to be written one step late.

This would add some latency (a bufferfull's worth), possibly
lose a buffer when seeking or the like, and also cause timestamp
and offset to be applied to the wrong buffer, as updates to
the "current" segment last_stop (from incoming buffer timestamp)
will be applied to an output buffer originating from the previous
incoming buffer.

This fixes the issue by ensuring that, upon receiving the first
audio frame, processing is done till all metadata is processed,
so the next "single step" done will be for the audio frame. After
this, we should keep to 1 input buffer -> 1 output buffer and so
avoid getting out of sync.

https://bugzilla.gnome.org/show_bug.cgi?id=650960
2011-08-17 13:40:59 +01:00
..
aalib various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
annodex various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
cairo cairotextoverlay: forward new segment events from the sink to the source 2011-05-26 11:35:01 +02:00
dv dvdemux: First query the peer duration in the requested format before converting to BYTES 2011-06-02 13:38:30 +02:00
esd various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
flac flacdec: avoid timestamp/offset tracking going out of sync 2011-08-17 13:40:59 +01:00
gconf switchsrc: Set the GST_ELEMENT_IS_SOURCE flag 2010-10-11 14:24:52 +02:00
gdk_pixbuf various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
hal various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
jack jackaudiosrc: fix error message code 2011-08-13 16:52:53 +01:00
jpeg jpegdec: avoid crashing on invalid input without components 2011-07-04 14:32:27 +02:00
libcaca cacasink: fix masks and strides 2011-01-03 18:06:48 +01:00
libmng gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
libpng pngdec: Remove temporary code 2011-04-24 18:53:50 -07:00
mikmod various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
pulse pulsesink: fix variable-set-but-not-used compiler warning with older pulse versions 2011-07-29 13:05:42 +01:00
raw1394 dv1394src: make the internal clock thread safe 2011-06-24 12:01:39 -07:00
shout2 various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
soup souphttpsink: code cleanup 2011-06-04 13:43:28 -07:00
speex pulse, speexenc, rtpgsmpay: don't use g_assert() for error handling 2011-04-16 18:15:43 +01:00
taglib id3v2mux: Adds mapping for album artist 2010-09-08 17:07:53 -03:00
wavpack various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
Makefile.am jack: new jackaudiosrc and jackaudiosink elements, moved from gst-plugins-bad 2011-01-02 15:26:30 +00:00