gstreamer/ext/opus
Vincent Penquerc'h 1ef601e7d3 opus: fix FEC
FEC may only be used when PLC is enabled on the audio decoder,
as it relies on empty buffers to generate audio from the next
buffer. Hooking to the gap events doesn't work as the audio
decoder does not like more buffers output than it sends.

The length of data to generate using FEC from the next packet
is determined by rounding the gap duration to nearest. This
ensures that duration imprecision does not cause quantization
to 2.5 milliseconds less than available. Doing so causes the
Opus API to fail decoding. Such duration imprecision is common
in live cases.

The buffer to consider when determining the length of audio
to be decoded is the previous buffer when using FEC, and the
new buffer otherwise. In the FEC case, this means we determine
the amount of audio from the previous buffer, whether it was
missing or not (and get the data either from this buffer, or
the current one if the previous one was missing).
2016-02-03 16:36:10 +00:00
..
gstopus.c Fix FSF address 2012-11-04 00:09:59 +00:00
gstopuscommon.c opuscommon: Use GString instead of snprintf for concating 2015-07-27 15:24:19 +01:00
gstopuscommon.h Fix FSF address 2012-11-04 00:09:59 +00:00
gstopusdec.c opus: fix FEC 2016-02-03 16:36:10 +00:00
gstopusdec.h opus: Add proper support for multichannel audio 2015-11-03 20:35:41 +02:00
gstopusenc.c plugins-bad: Fix example pipelines 2015-12-15 10:30:49 +00:00
gstopusenc.h opusenc: Encode exactly the amount of samples we got as input and put correct timestamps on it 2015-11-03 20:35:41 +02:00
gstopusheader.c opus: Add proper support for multichannel audio 2015-11-03 20:35:41 +02:00
gstopusheader.h opus: Add proper support for multichannel audio 2015-11-03 20:35:41 +02:00
Makefile.am opus: Add proper support for multichannel audio 2015-11-03 20:35:41 +02:00