]> git.sesse.net Git - ffmpeg/commitdiff
v4l2: set the average framerate instead of codec timebase.
authorAnton Khirnov <anton@khirnov.net>
Mon, 7 Jan 2013 17:54:50 +0000 (18:54 +0100)
committerAnton Khirnov <anton@khirnov.net>
Sun, 13 Jan 2013 15:31:09 +0000 (16:31 +0100)
Codec timebase is supposed to be set by decoders only.

libavdevice/v4l2.c

index fd2ab385c0cf6ab52208aee7a20dc58464f96a27..eb5de151f345d2d27e936eddd6643aa7985c9017 100644 (file)
@@ -634,11 +634,11 @@ static int v4l2_set_parameters(AVFormatContext *s1)
             return AVERROR(errno);
         }
     }
-    s1->streams[0]->codec->time_base.den = tpf->denominator;
-    s1->streams[0]->codec->time_base.num = tpf->numerator;
+    s1->streams[0]->avg_frame_rate.num = tpf->denominator;
+    s1->streams[0]->avg_frame_rate.den = tpf->numerator;
 
     s->timeout = 100 +
-        av_rescale_q(1, s1->streams[0]->codec->time_base,
+        av_rescale_q(1, s1->streams[0]->avg_frame_rate,
                         (AVRational){1, 1000});
 
     return 0;
@@ -779,7 +779,7 @@ static int v4l2_read_header(AVFormatContext *s1)
             avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt);
     st->codec->width = s->width;
     st->codec->height = s->height;
-    st->codec->bit_rate = s->frame_size * 1/av_q2d(st->codec->time_base) * 8;
+    st->codec->bit_rate = s->frame_size * av_q2d(st->avg_frame_rate) * 8;
 
     return 0;
 }