Skip to content

Handling of reduced FPS in V4L2

Jose Abreu linux-media lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 12 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3videodev2.h: Add new DV flag CAN_DETECT_REDUCED_FPSinclude/uapi/linux/videodev2.h+7 -00 replies
2/3v4l2-dv-timings: Introduce v4l2_calc_timeperframe helperdrivers/media/v4l2-core/v4l2-dv-timings.c include/media/v4l2-dv-timings.h+50 -00 replies
3/3cobalt: Use v4l2_calc_timeperframe helperdrivers/media/pci/cobalt/cobalt-v4l2.c+7 -23 replies

Reviews trailers per patch

None of the 3 patches has a Reviewed-by or Acked-by.

PatchHans Verkuil
1/3
2/3
3/3T-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/3] Handling of reduced FPS in V4L2

Hi all,

This is a follow up patch from this discussion [1]. It should be seen more as a starting point to introduce better handling of time per frame in v4l2. Quoting Hans Verkuil from [1]:

1) "Add a flag V4L2_DV_FL_CAN_DETECT_REDUCED_FPS. If set, then the hw can detect the difference between regular fps and 1000/1001 fps. Note: this is only valid for timings of VIC codes with the V4L2_DV_FL_CAN_REDUCE_FPS flag set."

2) "Allow V4L2_DV_FL_REDUCED_FPS to be used for receivers if V4L2_DV_FL_CAN_DETECT_REDUCED_FPS is set."

3) "For standard VIC codes the pixelclock returned by query_dv_timings is that of the corresponding VIC timing, not what is measured. This will ensure fixed fps values"

4) "g_parm should calculate the fps based on the v4l2_bt_timings struct, looking at the REDUCES_FPS flags. For those receivers that cannot detect the difference, the fps will be 24/30/60 Hz, for those that can detect the difference g_parm can check if both V4L2_DV_FL_CAN_DETECT_REDUCED_FPS and V4L2_DV_FL_REDUCED_FPS are set and reduce the fps by 1000/1001."

-----------
In terms of implementation:
- Point 1) is done in patch 1/3
- Point 2) and 3) should be done by a HDMI Receiver driver (I think?).
- Point 4) is done in patch 2/3.
- The patch 3/3 is a simple implementation (which was not tested) in the cobalt driver
-----------

[1] https://patchwork.kernel.org/patch/9609441/

Best regards,
Jose Miguel Abreu

Cc Carlos Palminha <[email protected]>
Cc Mauro Carvalho Chehab <[email protected]>
Cc Hans Verkuil <[email protected]>

Jose Abreu (3):
[media] videodev2.h: Add new DV flag CAN_DETECT_REDUCED_FPS [media] v4l2-dv-timings: Introduce v4l2_calc_timeperframe helper [media] cobalt: Use v4l2_calc_timeperframe helper

 drivers/media/pci/cobalt/cobalt-v4l2.c    |  9 +++++--
 drivers/media/v4l2-core/v4l2-dv-timings.c | 39 +++++++++++++++++++++++++++++++
 include/media/v4l2-dv-timings.h           | 11 +++++++++
 include/uapi/linux/videodev2.h            |  7 ++++++
 4 files changed, 64 insertions(+), 2 deletions(-)
Signature · 1 line
1.9.1