ptx: emit a warning on insufficient picture data

Return the whole packet as consumed in this case and not the size the
packet should have had. Move the insufficient data check into the for
condition to fix a ISO C90 error on bigendian.
pull/2/head
Janne Grunau 13 years ago
parent 97334f106c
commit 2b53e696c8
  1. 9
      libavcodec/ptx.c

@ -84,9 +84,7 @@ static int ptx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
ptr = p->data[0];
stride = p->linesize[0];
for (y=0; y<h; y++) {
if (buf_end - buf < w * bytes_per_pixel)
break;
for (y = 0; y < h && buf_end - buf < w * bytes_per_pixel; y++) {
#if HAVE_BIGENDIAN
unsigned int x;
for (x=0; x<w*bytes_per_pixel; x+=bytes_per_pixel)
@ -101,6 +99,11 @@ static int ptx_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
*picture = s->picture;
*data_size = sizeof(AVPicture);
if (y < h) {
av_log(avctx, AV_LOG_WARNING, "incomplete packet\n");
return avpkt->size;
}
return offset + w*h*bytes_per_pixel;
}

Loading…
Cancel
Save