summaryrefslogtreecommitdiff
path: root/libavcodec/apedec.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-02-06 16:34:50 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-07 10:01:15 -0500
commit39575eead279662a27d9d585d14b96ec639be8ad (patch)
tree49caca414b57b62c9fb11a4529890ccbf6c24d26 /libavcodec/apedec.c
parent1d3c672d27d3beece88485e28f2286ec2df62e6e (diff)
apedec: do not unnecessarily zero output samples for mono frames
Diffstat (limited to 'libavcodec/apedec.c')
-rw-r--r--libavcodec/apedec.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 438d833a11..028c29c85e 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -474,16 +474,10 @@ static void entropy_decode(APEContext *ctx, int blockstodecode, int stereo)
int32_t *decoded0 = ctx->decoded[0];
int32_t *decoded1 = ctx->decoded[1];
- if (ctx->frameflags & APE_FRAMECODE_STEREO_SILENCE) {
- /* We are pure silence, just memset the output buffer. */
- memset(decoded0, 0, blockstodecode * sizeof(*decoded0));
- memset(decoded1, 0, blockstodecode * sizeof(*decoded1));
- } else {
- while (blockstodecode--) {
- *decoded0++ = ape_decode_value(ctx, &ctx->riceY);
- if (stereo)
- *decoded1++ = ape_decode_value(ctx, &ctx->riceX);
- }
+ while (blockstodecode--) {
+ *decoded0++ = ape_decode_value(ctx, &ctx->riceY);
+ if (stereo)
+ *decoded1++ = ape_decode_value(ctx, &ctx->riceX);
}
}
@@ -778,7 +772,6 @@ static int init_frame_decoder(APEContext *ctx)
static void ape_unpack_mono(APEContext *ctx, int count)
{
if (ctx->frameflags & APE_FRAMECODE_STEREO_SILENCE) {
- entropy_decode(ctx, count, 0);
/* We are pure silence, so we're done. */
av_log(ctx->avctx, AV_LOG_DEBUG, "pure silence mono\n");
return;