[FFmpeg-cvslog] ptx: emit a warning on insufficient picture data
Janne Grunau
git at videolan.org
Sun Dec 11 01:12:49 CET 2011
ffmpeg | branch: master | Janne Grunau <janne-libav at jannau.net> | Sat Dec 10 12:55:08 2011 +0100| [2b53e696c864c4ade3c38707f8595e17a998bedc] | committer: Janne Grunau
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2b53e696c864c4ade3c38707f8595e17a998bedc
---
libavcodec/ptx.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavcodec/ptx.c b/libavcodec/ptx.c
index eee0d58..75b42d5 100644
--- a/libavcodec/ptx.c
+++ b/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;
}
More information about the ffmpeg-cvslog
mailing list