From c5a07f1f8404d61a344662d1cc430b1a708a9dae Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 24 May 2015 01:24:32 -0300 Subject: [PATCH] libdcadec: search for frames that start late in a packet Based on commit 4ae15605f6298d8369a1f1374596b52a3839c703 Reviewed-by: Hendrik Leppkes Signed-off-by: James Almer --- libavcodec/libdcadec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/libdcadec.c b/libavcodec/libdcadec.c index 9ea61fa872..890d27091d 100644 --- a/libavcodec/libdcadec.c +++ b/libavcodec/libdcadec.c @@ -58,7 +58,10 @@ static int dcadec_decode_frame(AVCodecContext *avctx, void *data, if (!s->buffer) return AVERROR(ENOMEM); - if ((ret = avpriv_dca_convert_bitstream(avpkt->data, avpkt->size, s->buffer, s->buffer_size)) < 0) + for (i = 0, ret = AVERROR_INVALIDDATA; i < input_size - 3 && ret < 0; i++) + ret = avpriv_dca_convert_bitstream(input + i, input_size - i, s->buffer, s->buffer_size); + + if (ret < 0) return ret; input = s->buffer;