Commit 3eedd29b authored by Anton Khirnov's avatar Anton Khirnov

bethsoftvideo: return proper consumed size for palette packets.

Also check for sufficient packet size.
parent 5872c781
......@@ -46,14 +46,19 @@ static av_cold int bethsoftvid_decode_init(AVCodecContext *avctx)
return 0;
}
static void set_palette(AVFrame * frame, const uint8_t * palette_buffer)
static int set_palette(AVFrame * frame, const uint8_t * palette_buffer, int buf_size)
{
uint32_t * palette = (uint32_t *)frame->data[1];
int a;
if (buf_size < 256*3)
return AVERROR_INVALIDDATA;
for(a = 0; a < 256; a++){
palette[a] = AV_RB24(&palette_buffer[a * 3]) * 4;
}
frame->palette_has_changed = 1;
return 256*3;
}
static int bethsoftvid_decode_frame(AVCodecContext *avctx,
......@@ -80,8 +85,7 @@ static int bethsoftvid_decode_frame(AVCodecContext *avctx,
switch(block_type = *buf++){
case PALETTE_BLOCK:
set_palette(&vid->frame, buf);
return 0;
return set_palette(&vid->frame, buf, buf_size);
case VIDEO_YOFF_P_FRAME:
yoffset = bytestream_get_le16(&buf);
if(yoffset >= avctx->height)
......
0, 0, 192000, 0x00000000
0, 0, 192000, 0xdecc683b
1, 0, 1480, 0x00000000
0, 1500, 192000, 0x01a6cf45
0, 3000, 192000, 0xd07d57e9
0, 4500, 192000, 0x3cb1dff5
0, 1500, 192000, 0x00000000
0, 3000, 192000, 0x01a6cf45
0, 4500, 192000, 0xd07d57e9
1, 5994, 1480, 0x20a92bd4
0, 6000, 192000, 0xd1aaa8fb
0, 7500, 192000, 0x75f526cd
0, 9000, 192000, 0x0f673577
0, 10500, 192000, 0x897b6781
0, 6000, 192000, 0x3cb1dff5
0, 7500, 192000, 0xd1aaa8fb
0, 9000, 192000, 0x75f526cd
0, 10500, 192000, 0x0f673577
1, 11988, 1850, 0xa9e48a74
0, 12000, 192000, 0x81e6b7f7
0, 13500, 192000, 0x1f45ce61
0, 15000, 192000, 0x5a0772a6
0, 16500, 192000, 0xf78732b3
0, 18000, 192000, 0x8427f9e5
0, 12000, 192000, 0x897b6781
0, 13500, 192000, 0x81e6b7f7
0, 15000, 192000, 0x1f45ce61
0, 16500, 192000, 0x5a0772a6
0, 18000, 192000, 0xf78732b3
1, 19481, 1480, 0x23ecd018
0, 19500, 192000, 0x40473f11
0, 21000, 192000, 0x173ceebe
0, 22500, 192000, 0x136b9516
0, 24000, 192000, 0x138d11ae
0, 19500, 192000, 0x8427f9e5
0, 21000, 192000, 0x40473f11
0, 22500, 192000, 0x173ceebe
0, 24000, 192000, 0x136b9516
1, 25475, 1480, 0x206bb915
0, 25500, 192000, 0x063dbff3
0, 27000, 192000, 0x5280852f
0, 28500, 192000, 0x99943a8f
0, 30000, 192000, 0x0330a728
0, 25500, 192000, 0x138d11ae
0, 27000, 192000, 0x063dbff3
0, 28500, 192000, 0x5280852f
0, 30000, 192000, 0x99943a8f
1, 31469, 1850, 0xb0e10e75
0, 31500, 192000, 0x5d35467d
0, 33000, 192000, 0xfd436343
0, 34500, 192000, 0xc323fcfe
0, 36000, 192000, 0x2a1530a0
0, 37500, 192000, 0xbd43bb60
0, 31500, 192000, 0x0330a728
0, 33000, 192000, 0x5d35467d
0, 34500, 192000, 0xfd436343
0, 36000, 192000, 0xc323fcfe
0, 37500, 192000, 0x2a1530a0
1, 38961, 1480, 0x8d9baedd
0, 39000, 192000, 0xa47f5eab
0, 40500, 192000, 0xff17f5f7
0, 42000, 192000, 0xb4140b55
0, 43500, 192000, 0xb8782cc4
0, 39000, 192000, 0xbd43bb60
0, 40500, 192000, 0xa47f5eab
0, 42000, 192000, 0xff17f5f7
0, 43500, 192000, 0xb4140b55
1, 44955, 1480, 0xb802aae1
0, 45000, 192000, 0x92975b8b
0, 46500, 192000, 0xf42a64d6
0, 48000, 192000, 0x2cc7077d
0, 49500, 192000, 0x00080cc8
0, 45000, 192000, 0xb8782cc4
0, 46500, 192000, 0x92975b8b
0, 48000, 192000, 0xf42a64d6
0, 49500, 192000, 0x2cc7077d
1, 50950, 1480, 0xecd7b5cc
0, 51000, 192000, 0x584b48f3
0, 52500, 192000, 0xd68f57da
0, 54000, 192000, 0x60158422
0, 55500, 192000, 0xd7fb89e6
0, 51000, 192000, 0x00080cc8
0, 52500, 192000, 0x584b48f3
0, 54000, 192000, 0xd68f57da
0, 55500, 192000, 0x60158422
1, 56944, 1850, 0x16861355
0, 57000, 192000, 0x97f1c76a
0, 58500, 192000, 0x46c4bb9e
0, 60000, 192000, 0xd32f9b66
0, 61500, 192000, 0x74f43886
0, 63000, 192000, 0x3c4e47df
0, 57000, 192000, 0xd7fb89e6
0, 58500, 192000, 0x97f1c76a
0, 60000, 192000, 0x46c4bb9e
0, 61500, 192000, 0xd32f9b66
0, 63000, 192000, 0x74f43886
1, 64436, 1480, 0xa51690bd
0, 64500, 192000, 0xb5ac0a58
0, 66000, 192000, 0xcc572b31
0, 67500, 192000, 0xb1739d26
0, 69000, 192000, 0x73da5473
0, 64500, 192000, 0x3c4e47df
0, 66000, 192000, 0xb5ac0a58
0, 67500, 192000, 0xcc572b31
0, 69000, 192000, 0xb1739d26
1, 70430, 1480, 0xdd0b90d1
0, 70500, 192000, 0x5f79f5bc
0, 72000, 192000, 0x0affc0a0
0, 73500, 192000, 0x2b4d5c1c
0, 75000, 192000, 0x309b41bc
0, 70500, 192000, 0x73da5473
0, 72000, 192000, 0x5f79f5bc
0, 73500, 192000, 0x0affc0a0
0, 75000, 192000, 0x2b4d5c1c
1, 76424, 1850, 0x3ce6e333
0, 76500, 192000, 0xd42b6424
0, 78000, 192000, 0x4795c948
0, 79500, 192000, 0xbc1a3a8b
0, 81000, 192000, 0x16529c5b
0, 82500, 192000, 0x6b1b31ba
0, 76500, 192000, 0x309b41bc
0, 78000, 192000, 0xd42b6424
0, 79500, 192000, 0x4795c948
0, 81000, 192000, 0xbc1a3a8b
0, 82500, 192000, 0x16529c5b
1, 83917, 1480, 0xf8ce8ea3
0, 84000, 192000, 0x569182ce
0, 85500, 192000, 0xe6ea9866
0, 87000, 192000, 0x102c6076
0, 88500, 192000, 0xb29f527a
0, 84000, 192000, 0x6b1b31ba
0, 85500, 192000, 0x569182ce
0, 87000, 192000, 0xe6ea9866
0, 88500, 192000, 0x102c6076
1, 89911, 1480, 0xda4597af
0, 90000, 192000, 0x040b4eee
0, 91500, 192000, 0x92574f4a
0, 93000, 192000, 0x1e8acdce
0, 94500, 192000, 0x1becf516
0, 90000, 192000, 0xb29f527a
0, 91500, 192000, 0x040b4eee
0, 93000, 192000, 0x92574f4a
0, 94500, 192000, 0x1e8acdce
1, 95905, 1480, 0x918f7cb3
0, 96000, 192000, 0xb62e9776
0, 97500, 192000, 0xed37a08e
0, 99000, 192000, 0xc0719912
0, 100500, 192000, 0x24cf7a7e
0, 96000, 192000, 0x1becf516
0, 97500, 192000, 0xb62e9776
0, 99000, 192000, 0xed37a08e
0, 100500, 192000, 0xc0719912
1, 101899, 1850, 0xca6edb15
0, 102000, 192000, 0x0307f62f
0, 103500, 192000, 0x79b7417b
0, 102000, 192000, 0x24cf7a7e
0, 103500, 192000, 0x0307f62f
0, 105000, 192000, 0x79b7417b
1, 109392, 1480, 0xba279597
1, 115386, 1480, 0xc5a38a9e
1, 121380, 1850, 0x8147eef5
......
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