From 5d91e9285339acaea7daf9e76932d5237cc771df Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 28 Dec 2008 14:41:19 +0000 Subject: [PATCH] Use avcodec_check_dimensions() for checking the frame size validity. The v4l.c check is moved after the eventual automatic size detection, so the check in that case is performed on the new set values. Originally committed as revision 16370 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavdevice/v4l.c | 8 +++----- libavdevice/v4l2.c | 5 +---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/libavdevice/v4l.c b/libavdevice/v4l.c index 39844a913c..c2c67d0516 100644 --- a/libavdevice/v4l.c +++ b/libavdevice/v4l.c @@ -84,11 +84,6 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) } s->time_base = ap->time_base; - if((unsigned)ap->width > 32767 || (unsigned)ap->height > 32767) { - av_log(s1, AV_LOG_ERROR, "Capture size is out of range: %dx%d\n", - ap->width, ap->height); - return -1; - } s->video_win.width = ap->width; s->video_win.height = ap->height; @@ -121,6 +116,9 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) } } + if(avcodec_check_dimensions(s1, s->video_win.width, s->video_win.height) < 0) + return -1; + desired_palette = -1; desired_depth = -1; for (j = 0; j < vformat_num; j++) { diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 6819d9cc9f..d4eb7c874a 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -526,11 +526,8 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap) frame_rate = ap->time_base.den; frame_rate_base = ap->time_base.num; - if((unsigned)width > 32767 || (unsigned)height > 32767) { - av_log(s1, AV_LOG_ERROR, "Wrong size (%dx%d)\n", width, height); - + if(avcodec_check_dimensions(s1, ap->width, ap->height) < 0) return -1; - } st = av_new_stream(s1, 0); if (!st) {