Skip to content
Snippets Groups Projects
Commit 3eedd29b authored by Anton Khirnov's avatar Anton Khirnov
Browse files

bethsoftvideo: return proper consumed size for palette packets.

Also check for sufficient packet size.
parent 5872c781
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment