aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMashiat Sarker Shakkhar <shahriman_ams@yahoo.com>2011-11-05 02:19:35 +0600
committerMashiat Sarker Shakkhar <shahriman_ams@yahoo.com>2011-11-20 14:51:38 +0600
commit87b9c23b9a10f9a6feb9226b44e797f2ff1d1be5 (patch)
treefa68164f3b63ad28609f949b4039b9dc0236315d
parentd58db7207d41a5395e635c79b96b1aee3b91f5bb (diff)
downloadffmpeg-87b9c23b9a10f9a6feb9226b44e797f2ff1d1be5.tar.gz
Implement clear_codec_buffers()
-rw-r--r--libavcodec/wmalosslessdec.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index 22116eaad6..0642c9ce38 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -716,6 +716,27 @@ decode_lpc(WmallDecodeCtx *s)
}
+static void clear_codec_buffers(WmallDecodeCtx *s)
+{
+ int ich, ilms;
+
+ memset(s->acfilter_coeffs, 0, 16 * sizeof(int));
+ memset(s->lpc_coefs , 0, 40 * 2 * sizeof(int));
+
+ memset(s->mclms_coeffs , 0, 128 * sizeof(int16_t));
+ memset(s->mclms_coeffs_cur, 0, 4 * sizeof(int16_t));
+ memset(s->mclms_prevvalues, 0, 64 * sizeof(int));
+ memset(s->mclms_updates , 0, 64 * sizeof(int16_t));
+
+ for (ich = 0; ich < s->num_channels; ich++) {
+ for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++) {
+ memset(s->cdlms[ich][ilms].coefs , 0, 256 * sizeof(int16_t));
+ memset(s->cdlms[ich][ilms].lms_prevvalues, 0, 512 * sizeof(int));
+ memset(s->cdlms[ich][ilms].lms_updates , 0, 512 * sizeof(int16_t));
+ }
+ s->ave_sum[ich] = 0;
+ }
+}
/**
*@brief Decode a single subframe (block).