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);