[FFmpeg-devel] [PATCH 11/19] 8svx: remove useless rounding code.

Nicolas George nicolas.george at normalesup.org
Sun Jul 29 15:57:29 CEST 2012


samples_size and samples_idx are supposed to be multiple of
channels at all time. If they are, the division is exact;
if they are not, something is very wrong in the code.

Signed-off-by: Nicolas George <nicolas.george at normalesup.org>
---
 libavcodec/8svx.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 3bece41..967b8c9 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -37,6 +37,7 @@
  * http://aminet.net/mods/smpl/
  */
 
+#include "libavutil/avassert.h"
 #include "avcodec.h"
 
 /** decoder context */
@@ -150,7 +151,8 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
     }
 
     /* get output buffer */
-    esc->frame.nb_samples = (FFMIN(MAX_FRAME_SIZE, esc->samples_size - esc->samples_idx) +avctx->channels-1)  / avctx->channels;
+    av_assert1(!(esc->samples_size % avctx->channels || esc->samples_idx % avctx->channels));
+    esc->frame.nb_samples = FFMIN(MAX_FRAME_SIZE, esc->samples_size - esc->samples_idx)  / avctx->channels;
     if ((ret = avctx->get_buffer(avctx, &esc->frame)) < 0) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
         return ret;
-- 
1.7.10.4



More information about the ffmpeg-devel mailing list