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
This commit is contained in:
Stefano Sabatini 2008-12-28 14:41:19 +00:00
parent ade8fb4d75
commit 5d91e92853
2 changed files with 4 additions and 9 deletions

View File

@ -84,11 +84,6 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
} }
s->time_base = ap->time_base; 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.width = ap->width;
s->video_win.height = ap->height; 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_palette = -1;
desired_depth = -1; desired_depth = -1;
for (j = 0; j < vformat_num; j++) { for (j = 0; j < vformat_num; j++) {

View File

@ -526,11 +526,8 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap)
frame_rate = ap->time_base.den; frame_rate = ap->time_base.den;
frame_rate_base = ap->time_base.num; frame_rate_base = ap->time_base.num;
if((unsigned)width > 32767 || (unsigned)height > 32767) { if(avcodec_check_dimensions(s1, ap->width, ap->height) < 0)
av_log(s1, AV_LOG_ERROR, "Wrong size (%dx%d)\n", width, height);
return -1; return -1;
}
st = av_new_stream(s1, 0); st = av_new_stream(s1, 0);
if (!st) { if (!st) {