Commit 6b517a19 authored by Pavel Koshevoy's avatar Pavel Koshevoy Committed by Michael Niedermayer

lavc: Fix ticket 6024, truncated mode decoding

The assumption that avcodec_send_packet makes regarding decoders
consuming the entire packet is not true if the codec supports
truncated decoding mode and the truncated flag is turned on.

Steps to reproduce:
./ffmpeg_g -flags truncated \
-i "http://samples.ffmpeg.org/MPEG2/test-ebu-422.40000.pakets.ts" \
-c:v ffv1 -c:a copy -y /tmp/truncated.nut
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 5b74ebe9
...@@ -2788,7 +2788,7 @@ static int do_decode(AVCodecContext *avctx, AVPacket *pkt) ...@@ -2788,7 +2788,7 @@ static int do_decode(AVCodecContext *avctx, AVPacket *pkt)
if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) { if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame, ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame,
&got_frame, pkt); &got_frame, pkt);
if (ret >= 0) if (ret >= 0 && !(avctx->flags & AV_CODEC_FLAG_TRUNCATED))
ret = pkt->size; ret = pkt->size;
} else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { } else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame, ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment