Commit 8b71cc33 authored by James Almer's avatar James Almer

Revert "avcodec/qtrle: Do not output duplicated frames on insufficient input"

This reverts commit a9dacdee.

This patch effectively made the decoder output vfr content out of samples
where cfr is expected.

Addresses ticket #7880.
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent dead949a
......@@ -455,10 +455,12 @@ static int qtrle_decode_frame(AVCodecContext *avctx,
int ret, size;
bytestream2_init(&s->g, avpkt->data, avpkt->size);
if ((ret = ff_reget_buffer(avctx, s->frame)) < 0)
return ret;
/* check if this frame is even supposed to change */
if (avpkt->size < 8)
return avpkt->size;
goto done;
/* start after the chunk size */
size = bytestream2_get_be32(&s->g) & 0x3FFFFFFF;
......@@ -472,20 +474,17 @@ static int qtrle_decode_frame(AVCodecContext *avctx,
/* if a header is present, fetch additional decoding parameters */
if (header & 0x0008) {
if (avpkt->size < 14)
return avpkt->size;
goto done;
start_line = bytestream2_get_be16(&s->g);
bytestream2_skip(&s->g, 2);
height = bytestream2_get_be16(&s->g);
bytestream2_skip(&s->g, 2);
if (height > s->avctx->height - start_line)
return avpkt->size;
goto done;
} else {
start_line = 0;
height = s->avctx->height;
}
if ((ret = ff_reget_buffer(avctx, s->frame)) < 0)
return ret;
row_ptr = s->frame->linesize[0] * start_line;
switch (avctx->bits_per_coded_sample) {
......@@ -546,6 +545,7 @@ static int qtrle_decode_frame(AVCodecContext *avctx,
memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE);
}
done:
if ((ret = av_frame_ref(data, s->frame)) < 0)
return ret;
*got_frame = 1;
......
......@@ -4,60 +4,169 @@
#dimensions 0: 640x480
#sar 0: 0/1
0, 0, 0, 1, 921600, 0x1492e3ed
0, 1, 1, 1, 921600, 0x1492e3ed
0, 2, 2, 1, 921600, 0x1492e3ed
0, 3, 3, 1, 921600, 0x23ef4fc7
0, 4, 4, 1, 921600, 0x23ef4fc7
0, 5, 5, 1, 921600, 0xe406d4be
0, 6, 6, 1, 921600, 0xe406d4be
0, 7, 7, 1, 921600, 0xe406d4be
0, 8, 8, 1, 921600, 0x62b8b5a1
0, 9, 9, 1, 921600, 0x62b8b5a1
0, 10, 10, 1, 921600, 0x7d8ba674
0, 11, 11, 1, 921600, 0x7d8ba674
0, 12, 12, 1, 921600, 0x7d8ba674
0, 13, 13, 1, 921600, 0xfe666be7
0, 14, 14, 1, 921600, 0xfe666be7
0, 15, 15, 1, 921600, 0x721baec0
0, 16, 16, 1, 921600, 0x721baec0
0, 17, 17, 1, 921600, 0x721baec0
0, 18, 18, 1, 921600, 0xc237180a
0, 19, 19, 1, 921600, 0xc237180a
0, 20, 20, 1, 921600, 0xf03a7482
0, 21, 21, 1, 921600, 0xf03a7482
0, 22, 22, 1, 921600, 0xf03a7482
0, 23, 23, 1, 921600, 0x5612a391
0, 24, 24, 1, 921600, 0x5612a391
0, 25, 25, 1, 921600, 0x9dbcc46a
0, 26, 26, 1, 921600, 0x9dbcc46a
0, 27, 27, 1, 921600, 0x9dbcc46a
0, 28, 28, 1, 921600, 0xa128a5d5
0, 29, 29, 1, 921600, 0xa128a5d5
0, 30, 30, 1, 921600, 0x63e0025c
0, 31, 31, 1, 921600, 0x63e0025c
0, 32, 32, 1, 921600, 0x63e0025c
0, 33, 33, 1, 921600, 0x262359ed
0, 34, 34, 1, 921600, 0x262359ed
0, 35, 35, 1, 921600, 0x343688e8
0, 36, 36, 1, 921600, 0x343688e8
0, 37, 37, 1, 921600, 0x343688e8
0, 38, 38, 1, 921600, 0x343688e8
0, 39, 39, 1, 921600, 0x343688e8
0, 40, 40, 1, 921600, 0x343688e8
0, 41, 41, 1, 921600, 0x343688e8
0, 42, 42, 1, 921600, 0x343688e8
0, 43, 43, 1, 921600, 0x343688e8
0, 44, 44, 1, 921600, 0x343688e8
0, 45, 45, 1, 921600, 0xe4b29d57
0, 46, 46, 1, 921600, 0xe4b29d57
0, 47, 47, 1, 921600, 0xe4b29d57
0, 48, 48, 1, 921600, 0x198e8a4a
0, 49, 49, 1, 921600, 0x198e8a4a
0, 50, 50, 1, 921600, 0x0cad8dc9
0, 51, 51, 1, 921600, 0x0cad8dc9
0, 52, 52, 1, 921600, 0x0cad8dc9
0, 53, 53, 1, 921600, 0x1f74cf3d
0, 54, 54, 1, 921600, 0x1f74cf3d
0, 55, 55, 1, 921600, 0xec5b5449
0, 56, 56, 1, 921600, 0xec5b5449
0, 57, 57, 1, 921600, 0xec5b5449
0, 58, 58, 1, 921600, 0x39829711
0, 59, 59, 1, 921600, 0x39829711
0, 60, 60, 1, 921600, 0x6de5b9c6
0, 61, 61, 1, 921600, 0x6de5b9c6
0, 62, 62, 1, 921600, 0x6de5b9c6
0, 63, 63, 1, 921600, 0x47b0e9d4
0, 64, 64, 1, 921600, 0x47b0e9d4
0, 65, 65, 1, 921600, 0x756452b8
0, 66, 66, 1, 921600, 0x756452b8
0, 67, 67, 1, 921600, 0x756452b8
0, 68, 68, 1, 921600, 0x6fce3478
0, 69, 69, 1, 921600, 0x6fce3478
0, 70, 70, 1, 921600, 0x372397cd
0, 71, 71, 1, 921600, 0x372397cd
0, 72, 72, 1, 921600, 0x372397cd
0, 73, 73, 1, 921600, 0xe3999ba1
0, 74, 74, 1, 921600, 0xe3999ba1
0, 75, 75, 1, 921600, 0x6ba26b43
0, 76, 76, 1, 921600, 0x6ba26b43
0, 77, 77, 1, 921600, 0x6ba26b43
0, 78, 78, 1, 921600, 0x4e9ee49e
0, 79, 79, 1, 921600, 0x4e9ee49e
0, 80, 80, 1, 921600, 0xdb5fd6e7
0, 81, 81, 1, 921600, 0xdb5fd6e7
0, 82, 82, 1, 921600, 0xdb5fd6e7
0, 83, 83, 1, 921600, 0x8f2254a5
0, 84, 84, 1, 921600, 0x8f2254a5
0, 85, 85, 1, 921600, 0x8f2254a5
0, 86, 86, 1, 921600, 0x8f2254a5
0, 87, 87, 1, 921600, 0x8f2254a5
0, 88, 88, 1, 921600, 0x8f2254a5
0, 89, 89, 1, 921600, 0x8f2254a5
0, 90, 90, 1, 921600, 0x8f2254a5
0, 91, 91, 1, 921600, 0x8f2254a5
0, 92, 92, 1, 921600, 0x8f2254a5
0, 93, 93, 1, 921600, 0x57e95c32
0, 94, 94, 1, 921600, 0x57e95c32
0, 95, 95, 1, 921600, 0x41627a9b
0, 96, 96, 1, 921600, 0x41627a9b
0, 97, 97, 1, 921600, 0x41627a9b
0, 98, 98, 1, 921600, 0x7412dcee
0, 99, 99, 1, 921600, 0x7412dcee
0, 100, 100, 1, 921600, 0xaebe10ed
0, 101, 101, 1, 921600, 0xaebe10ed
0, 102, 102, 1, 921600, 0xaebe10ed
0, 103, 103, 1, 921600, 0x411a91f6
0, 104, 104, 1, 921600, 0x411a91f6
0, 105, 105, 1, 921600, 0xb059df3f
0, 106, 106, 1, 921600, 0xb059df3f
0, 107, 107, 1, 921600, 0xb059df3f
0, 108, 108, 1, 921600, 0x4d6f5a77
0, 109, 109, 1, 921600, 0x4d6f5a77
0, 110, 110, 1, 921600, 0xbbf06df4
0, 111, 111, 1, 921600, 0xbbf06df4
0, 112, 112, 1, 921600, 0xbbf06df4
0, 113, 113, 1, 921600, 0xe27f7bf6
0, 114, 114, 1, 921600, 0xe27f7bf6
0, 115, 115, 1, 921600, 0xd7e8360e
0, 116, 116, 1, 921600, 0xd7e8360e
0, 117, 117, 1, 921600, 0xd7e8360e
0, 118, 118, 1, 921600, 0x1dd4c344
0, 119, 119, 1, 921600, 0x1dd4c344
0, 120, 120, 1, 921600, 0x7995a7ce
0, 121, 121, 1, 921600, 0x7995a7ce
0, 122, 122, 1, 921600, 0x7995a7ce
0, 123, 123, 1, 921600, 0x2ef3c566
0, 124, 124, 1, 921600, 0x2ef3c566
0, 125, 125, 1, 921600, 0xf296736e
0, 126, 126, 1, 921600, 0xf296736e
0, 127, 127, 1, 921600, 0xf296736e
0, 128, 128, 1, 921600, 0xf296736e
0, 129, 129, 1, 921600, 0xf296736e
0, 130, 130, 1, 921600, 0xf296736e
0, 131, 131, 1, 921600, 0xf296736e
0, 132, 132, 1, 921600, 0xf296736e
0, 133, 133, 1, 921600, 0xf296736e
0, 134, 134, 1, 921600, 0xf296736e
0, 135, 135, 1, 921600, 0x1a488311
0, 136, 136, 1, 921600, 0x1a488311
0, 137, 137, 1, 921600, 0x1a488311
0, 138, 138, 1, 921600, 0x9e28011b
0, 139, 139, 1, 921600, 0x9e28011b
0, 140, 140, 1, 921600, 0x84d1ea80
0, 141, 141, 1, 921600, 0x84d1ea80
0, 142, 142, 1, 921600, 0x84d1ea80
0, 143, 143, 1, 921600, 0x9ed41052
0, 144, 144, 1, 921600, 0x9ed41052
0, 145, 145, 1, 921600, 0xd4db7206
0, 146, 146, 1, 921600, 0xd4db7206
0, 147, 147, 1, 921600, 0xd4db7206
0, 148, 148, 1, 921600, 0x55f695a9
0, 149, 149, 1, 921600, 0x55f695a9
0, 150, 150, 1, 921600, 0x9d8c667f
0, 151, 151, 1, 921600, 0x9d8c667f
0, 152, 152, 1, 921600, 0x9d8c667f
0, 153, 153, 1, 921600, 0x9b6037ec
0, 154, 154, 1, 921600, 0x9b6037ec
0, 155, 155, 1, 921600, 0x57c5e835
0, 156, 156, 1, 921600, 0x57c5e835
0, 157, 157, 1, 921600, 0x57c5e835
0, 158, 158, 1, 921600, 0x476dad89
0, 159, 159, 1, 921600, 0x476dad89
0, 160, 160, 1, 921600, 0xcfd6ad2b
0, 161, 161, 1, 921600, 0xcfd6ad2b
0, 162, 162, 1, 921600, 0xcfd6ad2b
0, 163, 163, 1, 921600, 0x3b372379
0, 164, 164, 1, 921600, 0x3b372379
0, 165, 165, 1, 921600, 0x36f245f5
0, 166, 166, 1, 921600, 0x36f245f5
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