You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
v4l2: set the average framerate instead of codec timebase.
Codec timebase is supposed to be set by decoders only.
This commit is contained in:
@@ -634,11 +634,11 @@ static int v4l2_set_parameters(AVFormatContext *s1)
|
|||||||
return AVERROR(errno);
|
return AVERROR(errno);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s1->streams[0]->codec->time_base.den = tpf->denominator;
|
s1->streams[0]->avg_frame_rate.num = tpf->denominator;
|
||||||
s1->streams[0]->codec->time_base.num = tpf->numerator;
|
s1->streams[0]->avg_frame_rate.den = tpf->numerator;
|
||||||
|
|
||||||
s->timeout = 100 +
|
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});
|
(AVRational){1, 1000});
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -779,7 +779,7 @@ static int v4l2_read_header(AVFormatContext *s1)
|
|||||||
avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt);
|
avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt);
|
||||||
st->codec->width = s->width;
|
st->codec->width = s->width;
|
||||||
st->codec->height = s->height;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user