Mercurial > libavcodec.hg
comparison msrle.c @ 9622:02715614161f libavcodec
check for palette presence, fix crash with QT-BMP.mov, issue #1074
author | bcoudurier |
---|---|
date | Sun, 10 May 2009 19:10:37 +0000 |
parents | 54bc8a2727b0 |
children | 5083846ac1f3 |
comparison
equal
deleted
inserted
replaced
9621:5680832edb83 | 9622:02715614161f |
---|---|
77 if (avctx->reget_buffer(avctx, &s->frame)) { | 77 if (avctx->reget_buffer(avctx, &s->frame)) { |
78 av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); | 78 av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); |
79 return -1; | 79 return -1; |
80 } | 80 } |
81 | 81 |
82 if (s->avctx->palctrl) { | |
82 /* make the palette available */ | 83 /* make the palette available */ |
83 memcpy(s->frame.data[1], s->avctx->palctrl->palette, AVPALETTE_SIZE); | 84 memcpy(s->frame.data[1], s->avctx->palctrl->palette, AVPALETTE_SIZE); |
84 if (s->avctx->palctrl->palette_changed) { | 85 if (s->avctx->palctrl->palette_changed) { |
85 s->frame.palette_has_changed = 1; | 86 s->frame.palette_has_changed = 1; |
86 s->avctx->palctrl->palette_changed = 0; | 87 s->avctx->palctrl->palette_changed = 0; |
88 } | |
87 } | 89 } |
88 | 90 |
89 ff_msrle_decode(avctx, (AVPicture*)&s->frame, avctx->bits_per_coded_sample, buf, buf_size); | 91 ff_msrle_decode(avctx, (AVPicture*)&s->frame, avctx->bits_per_coded_sample, buf, buf_size); |
90 | 92 |
91 *data_size = sizeof(AVFrame); | 93 *data_size = sizeof(AVFrame); |