mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
gifdec: use av_fast_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
6b11ae7112
commit
2152b60f39
@ -50,6 +50,7 @@ typedef struct GifState {
|
||||
/* intermediate buffer for storing color indices
|
||||
* obtained from lzw-encoded data stream */
|
||||
uint8_t *idx_line;
|
||||
int idx_line_size;
|
||||
|
||||
/* after the frame is displayed, the disposal method is used */
|
||||
int gce_prev_disposal;
|
||||
@ -60,6 +61,7 @@ typedef struct GifState {
|
||||
* drawn on the canvas or background color that
|
||||
* should be used upon disposal */
|
||||
uint32_t * stored_img;
|
||||
int stored_img_size;
|
||||
int stored_bg_color;
|
||||
|
||||
/* LZW compatible decoder */
|
||||
@ -205,12 +207,9 @@ static int gif_read_image(GifState *s)
|
||||
else
|
||||
s->stored_bg_color = s->bg_color;
|
||||
} else if (s->gce_disposal == GCE_DISPOSAL_RESTORE) {
|
||||
if (!s->stored_img) {
|
||||
s->stored_img = av_malloc(s->picture.linesize[0] * s->picture.height);
|
||||
|
||||
if (!s->stored_img)
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
av_fast_malloc(&s->stored_img, &s->stored_img_size, s->picture.linesize[0] * s->picture.height);
|
||||
if (!s->stored_img)
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
gif_copy_img_rect((uint32_t *)s->picture.data[0], s->stored_img,
|
||||
s->picture.linesize[0] / sizeof(uint32_t), left, top, width, height);
|
||||
@ -379,7 +378,7 @@ static int gif_read_header1(GifState *s)
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
s->idx_line = av_malloc(s->screen_width);
|
||||
av_fast_malloc(&s->idx_line, &s->idx_line_size, s->screen_width);
|
||||
if (!s->idx_line)
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user