[FFmpeg-devel] [PATCH] WMA Lossless: reset channel residues between subframes
Jakub Stachowski
qbast at go2.pl
Thu Apr 12 00:24:30 CEST 2012
Hello
Attached patch fixes bug #1055. It causes channel residues to be reset
to 0 if they are not decoded from bitstream (is_channel_coded==0).
Without the patch, residues from last decoded subframe would be used,
which causes bursts of random noise in silent part of some files.
I am not sure if channel residues should not be reset in case of raw pcm
tiles, however I don't have any test file for that.
-------------- next part --------------
From 72366348ddc2ddf327774cdff69e62c8d7cb8d20 Mon Sep 17 00:00:00 2001
From: Jakub Stachowski <qbast at go2.pl>
Date: Wed, 11 Apr 2012 23:36:07 +0200
Subject: [PATCH] Reset residues to 0 if they were not decoded from bitstream.
If channel residues are have not been decoded from bitstream, they should be
initialized to 0 instead of using values from previous subframe. This causes
bursts of noise in silent parts of some files.
This patch fixes bug #1055
---
libavcodec/wmalosslessdec.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index ab7af95..e511443 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -955,7 +955,8 @@ static int decode_subframe(WmallDecodeCtx *s)
else
use_normal_update_speed(s, i);
revert_cdlms(s, i, 0, subframe_len);
- }
+ } else
+ memset(s->channel_residues, 0, sizeof(s->channel_residues));
}
if (s->do_mclms)
revert_mclms(s, subframe_len);
--
1.7.7
More information about the ffmpeg-devel
mailing list