From b0c120b2141bd9ec6ec4bd39e8b1a2ba75ae2a9a Mon Sep 17 00:00:00 2001 From: Gregory Maxwell <greg@xiph.org> Date: Sat, 21 Jul 2012 16:35:19 -0400 Subject: [PATCH] Add some more api docs. --- include/opus.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/opus.h b/include/opus.h index 996c2afc0..227af5e26 100644 --- a/include/opus.h +++ b/include/opus.h @@ -328,8 +328,20 @@ OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NON * opus_decode() and opus_decode_float() return the number of samples (per channel) decoded from the packet. * If that value is negative, then an error has occured. This can occur if the packet is corrupted or if the audio * buffer is too small to hold the decoded audio. - -*/ + * + * Opus is a stateful codec with overlapping blocks and as a result Opus + * packets are not coded independently of each other. Packets must be + * passed into the decoder serially and in the correct order for a correct + * decode. Lost packets can be replaced with loss concealment by calling + * the decoder with a null pointer and zero length for the missing packet. + * + * A single codec state may only be accessed from a single thread at + * a time and any required locking must be performed by the caller. Separate + * streams must be decoded with separate decoder states and can be decoded + * in parallel unless the library was compiled with NONTHREADSAFE_PSEUDOSTACK + * defined. + * + */ /** Opus decoder state. * This contains the complete state of an Opus decoder. -- GitLab