[FFmpeg-cvslog] apedec: set s->samples only when init_frame_decoder succeeded
Andreas Cadhalpun
git at videolan.org
Wed Jun 17 22:09:48 CEST 2015
ffmpeg | branch: release/2.2 | Andreas Cadhalpun <andreas.cadhalpun at googlemail.com> | Tue Apr 28 00:30:51 2015 +0200| [d9ff9b8ab0b5a1470fb7d066b0ed413b452eac7f] | committer: Michael Niedermayer
apedec: set s->samples only when init_frame_decoder succeeded
Otherwise range_start_decoding is not necessarily run and thus
ctx->rc.range still 0 in range_dec_normalize leading to an infinite
loop.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 464c49155ce7ffc88ed39eb2511e7a75565c24be)
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d9ff9b8ab0b5a1470fb7d066b0ed413b452eac7f
---
libavcodec/apedec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 370f1ab..c5c0dcb 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -1472,13 +1472,13 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
av_log(avctx, AV_LOG_ERROR, "Invalid sample count: %u.\n", nblocks);
return AVERROR_INVALIDDATA;
}
- s->samples = nblocks;
/* Initialize the frame decoder */
if (init_frame_decoder(s) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error reading frame header\n");
return AVERROR_INVALIDDATA;
}
+ s->samples = nblocks;
}
if (!s->data) {
More information about the ffmpeg-cvslog
mailing list