From: Stefano Sabatini Date: Fri, 26 Dec 2008 10:12:57 +0000 (+0000) Subject: Check that the device is a capture device immediately after opening X-Git-Tag: v0.5~1473 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7274a48035f9b97c2d8bae202ac6688dca81ff10;p=coroid%2Fffmpeg_saccubus.git Check that the device is a capture device immediately after opening the device. Originally committed as revision 16318 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavdevice/v4l.c b/libavdevice/v4l.c index 2b0ce0c7c..4a5328ade 100644 --- a/libavdevice/v4l.c +++ b/libavdevice/v4l.c @@ -103,14 +103,6 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) goto fail; } - /* no values set, autodetect them */ - if (s->video_win.width <= 0 || s->video_win.height <= 0) { - if (ioctl(video_fd, VIDIOCGWIN, &s->video_win, sizeof(s->video_win)) < 0) { - av_log(s1, AV_LOG_ERROR, "VIDIOCGWIN: %s\n", strerror(errno)); - goto fail; - } - } - if (ioctl(video_fd, VIDIOCGCAP, &s->video_cap) < 0) { av_log(s1, AV_LOG_ERROR, "VIDIOCGCAP: %s\n", strerror(errno)); goto fail; @@ -121,6 +113,14 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) goto fail; } + /* no values set, autodetect them */ + if (s->video_win.width <= 0 || s->video_win.height <= 0) { + if (ioctl(video_fd, VIDIOCGWIN, &s->video_win, sizeof(s->video_win)) < 0) { + av_log(s1, AV_LOG_ERROR, "VIDIOCGWIN: %s\n", strerror(errno)); + goto fail; + } + } + desired_palette = -1; desired_depth = -1; for (j = 0; j < vformat_num; j++) {