diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-06 16:34:50 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-07 10:01:15 -0500 |
commit | 39575eead279662a27d9d585d14b96ec639be8ad (patch) | |
tree | 49caca414b57b62c9fb11a4529890ccbf6c24d26 /libavcodec/apedec.c | |
parent | 1d3c672d27d3beece88485e28f2286ec2df62e6e (diff) | |
download | ffmpeg-39575eead279662a27d9d585d14b96ec639be8ad.tar.gz |
apedec: do not unnecessarily zero output samples for mono frames
Diffstat (limited to 'libavcodec/apedec.c')
-rw-r--r-- | libavcodec/apedec.c | 15 |
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; |