From 330194b9cec1b31cd61a80d1914bc8cfc73ad45d Mon Sep 17 00:00:00 2001
From: Vladimir Voroshilov <voroshil@gmail.com>
Date: Wed, 3 Oct 2007 19:32:57 +0000
Subject: [PATCH] Fix audio clicks in ADPCM IMA AMV by casting predictor as
 "signed short" Initialize step_index as int16_t (as multimedia wiki says).

Originally committed as revision 10657 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/adpcm.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 0d1e0ecd550..21830ffb385 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -1184,10 +1184,8 @@ static int adpcm_decode_frame(AVCodecContext *avctx,
         break;
     case CODEC_ID_ADPCM_IMA_AMV:
     case CODEC_ID_ADPCM_IMA_SMJPEG:
-        c->status[0].predictor = *src;
-        src += 2;
-        c->status[0].step_index = *src++;
-        src++;  /* skip another byte before getting to the meat */
+        c->status[0].predictor = (signed short)bytestream_get_le16(&src);
+        c->status[0].step_index = bytestream_get_le16(&src);
 
         if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV)
             src+=4;
-- 
GitLab