summaryrefslogtreecommitdiff
path: root/libavcodec/opus.h
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-07-27 11:13:53 +0200
committerAnton Khirnov <anton@khirnov.net>2015-08-02 08:43:51 +0200
commit14e558024642638085ae2bbeffc6087612e6a3f9 (patch)
tree82ead0d957226ef14801990791f80d2ee134c2fb /libavcodec/opus.h
parentfdbc544d29176ba69d67dd879df4696f0a19052e (diff)
opusdec: properly handle mismatching configurations in multichannel streams
The substreams can have different resampling delays, so an additional level of buffering is needed to synchronize them. Bug-Id: 876
Diffstat (limited to 'libavcodec/opus.h')
-rw-r--r--libavcodec/opus.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/opus.h b/libavcodec/opus.h
index 94993d623e..55c91fa012 100644
--- a/libavcodec/opus.h
+++ b/libavcodec/opus.h
@@ -173,6 +173,16 @@ typedef struct ChannelMap {
typedef struct OpusContext {
OpusStreamContext *streams;
+
+ /* current output buffers for each streams */
+ float **out;
+ int *out_size;
+ /* Buffers for synchronizing the streams when they have different
+ * resampling delays */
+ AVAudioFifo **sync_buffers;
+ /* number of decoded samples for each stream */
+ int *decoded_samples;
+
int nb_streams;
int nb_stereo_streams;