Browse Source

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
tags/v0.5
Stefano Sabatini 17 years ago
parent
commit
5d91e92853
2 changed files with 4 additions and 9 deletions
  1. +3
    -5
      libavdevice/v4l.c
  2. +1
    -4
      libavdevice/v4l2.c

+ 3
- 5
libavdevice/v4l.c View File

@@ -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++) {


+ 1
- 4
libavdevice/v4l2.c View File

@@ -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) {


Loading…
Cancel
Save