summaryrefslogtreecommitdiff
path: root/libavdevice
diff options
context:
space:
mode:
authorFederico Simoncelli <federico.simoncelli@gmail.com>2014-01-02 16:25:48 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-01-05 14:02:06 +0100
commitb1ad9312331759679a9c956233716a67ae681d89 (patch)
treec30372b317afa469534b834a8237d54d441060d7 /libavdevice
parent05286b6a9cc34bb5f4a9331df39b7c679b5d197d (diff)
v4l2: setting device parameters early
Setting the v4l2 device parameters may influence video properties such as width, height and pixel format. This patch moves v4l2_set_parameters to be executed before fetching the video properties, avoiding errors such as (pal vs ntsc): The v4l2 frame is 829440 bytes, but 691200 bytes are expected Signed-off-by: Federico Simoncelli <fsimonce@redhat.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavdevice')
-rw-r--r--libavdevice/v4l2.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index cb962b7be7..1ab6f1c03a 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -866,6 +866,9 @@ static int v4l2_read_header(AVFormatContext *s1)
avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
+ if ((res = v4l2_set_parameters(s1)) < 0)
+ return res;
+
if (s->pixel_format) {
AVCodec *codec = avcodec_find_decoder_by_name(s->pixel_format);
@@ -917,9 +920,6 @@ static int v4l2_read_header(AVFormatContext *s1)
s->frame_format = desired_format;
- if ((res = v4l2_set_parameters(s1)) < 0)
- return res;
-
st->codec->pix_fmt = avpriv_fmt_v4l2ff(desired_format, codec_id);
s->frame_size =
avpicture_get_size(st->codec->pix_fmt, s->width, s->height);