mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
avcodec/sga: Don't use GetBit-API for byte-aligned reads
Use the bytestream2-API instead. Should also fix Coverity issue #1473536 (which is about an unchecked init_get_bits8()). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
27a9e1ce22
commit
c7ff0c3e4b
@ -127,19 +127,18 @@ static int decode_index_palmap(SGAVideoContext *s, AVFrame *frame)
|
||||
|
||||
static int decode_index_tilemap(SGAVideoContext *s, AVFrame *frame)
|
||||
{
|
||||
GetByteContext *gb = &s->gb;
|
||||
GetBitContext pm;
|
||||
GetByteContext *gb = &s->gb, gb2;
|
||||
|
||||
bytestream2_seek(gb, s->tilemapdata_offset, SEEK_SET);
|
||||
if (bytestream2_get_bytes_left(gb) < s->tilemapdata_size)
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
init_get_bits8(&pm, gb->buffer, s->tilemapdata_size);
|
||||
gb2 = *gb;
|
||||
|
||||
for (int y = 0; y < s->tiles_h; y++) {
|
||||
for (int x = 0; x < s->tiles_w; x++) {
|
||||
uint8_t tile[64];
|
||||
int tilemap = get_bits(&pm, 16);
|
||||
int tilemap = bytestream2_get_be16u(&gb2);
|
||||
int flip_x = (tilemap >> 11) & 1;
|
||||
int flip_y = (tilemap >> 12) & 1;
|
||||
int tindex = av_clip((tilemap & 511) - 1, 0, s->nb_tiles - 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user