mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-28 05:30:34 +00:00
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.
This commit is contained in:
parent
97334f106c
commit
2b53e696c8
@ -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…
Reference in New Issue
Block a user