diff options
author | Paul B Mahol <onemda@gmail.com> | 2012-12-01 10:53:22 +0000 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2012-12-01 10:53:22 +0000 |
commit | 2152b60f39d5e23a9d11e120b3eb2b6b66a51ba8 (patch) | |
tree | 98747b45541a9e2014accf0cf72f1985f9493133 /libavcodec | |
parent | 6b11ae7112e432b0b859b07aaee8c7d251ce7a45 (diff) | |
download | ffmpeg-2152b60f39d5e23a9d11e120b3eb2b6b66a51ba8.tar.gz |
gifdec: use av_fast_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/gifdec.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libavcodec/gifdec.c b/libavcodec/gifdec.c index 63a8788a0c..dd4bca29bd 100644 --- a/libavcodec/gifdec.c +++ b/libavcodec/gifdec.c @@ -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); |