提交 b883ba75 编写于 作者: P Prashant Laddha 提交者: Mauro Carvalho Chehab

[media] vivid: add support for reduced fps in video out

If reduced fps flag is set then check if other necessary conditions
are true for the given bt timing. If yes, then reduce the frame rate.
For vivid transmitter, timeperframe_vid_out controls the frame rate.
Adjusting the timeperframe_vid_out by scaling down pixel clock by
factor of 1000 / 1001.
Signed-off-by: NPrashant Laddha <prladdha@cisco.com>
Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
上级 8d7322f4
......@@ -224,6 +224,7 @@ void vivid_update_format_out(struct vivid_dev *dev)
{
struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt;
unsigned size, p;
u64 pixelclock;
switch (dev->output_type[dev->output]) {
case SVID:
......@@ -245,8 +246,14 @@ void vivid_update_format_out(struct vivid_dev *dev)
dev->sink_rect.width = bt->width;
dev->sink_rect.height = bt->height;
size = V4L2_DV_BT_FRAME_WIDTH(bt) * V4L2_DV_BT_FRAME_HEIGHT(bt);
if (can_reduce_fps(bt) && (bt->flags & V4L2_DV_FL_REDUCED_FPS))
pixelclock = div_u64(bt->pixelclock * 1000, 1001);
else
pixelclock = bt->pixelclock;
dev->timeperframe_vid_out = (struct v4l2_fract) {
size / 100, (u32)bt->pixelclock / 100
size / 100, (u32)pixelclock / 100
};
if (bt->interlaced)
dev->field_out = V4L2_FIELD_ALTERNATE;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册