[RFC,0/2] media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL

Message ID cover.1691096157.git.soyer@irl.hu (mailing list archive)
Headers
Series media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL |

Message

Gergo Koteles Aug. 3, 2023, 9:28 p.m. UTC
  Hi,

Logitech Streamcam can be mounted in 'portrait mode' as well.
It reports the current roll (-90, 0, 90, 180) with
UVC_CT_ROLL_ABSOLUTE_CONTROL.

This RFC defines V4L2_CID_ROLL_ABSOLUTE, and maps
UVC_CT_ROLL_ABSOLUTE_CONTROL to make it available to
userspace.
Then, the userspace can rotate the stream based on the roll.

Is it better to use V4L2_CID_CAMERA_SENSOR_ROTATION for this?
The value set matches that control.
If yes, is it worth mapping UVC_CT_ROLL_ABSOLUTE_CONTROL to
V4L2_CID_CAMERA_SENSOR_ROTATION for this camera only?

Any feedback is greately appreciated.


Gergő Köteles (2):
  media: v4l2: ctrls: Add ROLL_ABSOLUTE control
  media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL

 .../userspace-api/media/v4l/ext-ctrls-camera.rst         | 5 +++++
 drivers/media/usb/uvc/uvc_ctrl.c                         | 9 +++++++++
 drivers/media/v4l2-core/v4l2-ctrls-defs.c                | 1 +
 include/uapi/linux/v4l2-controls.h                       | 2 ++
 4 files changed, 17 insertions(+)


base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5
  

Comments

Michael Riesch Aug. 4, 2023, 6:45 p.m. UTC | #1
Hi Gergő,

Interesting work! I would guess that there are a lot of cameras with an
accelerometer or gyroscope that could report the rotation.

On 8/3/23 23:28, Gergő Köteles wrote:
> Hi,
> 
> Logitech Streamcam can be mounted in 'portrait mode' as well.
> It reports the current roll (-90, 0, 90, 180) with
> UVC_CT_ROLL_ABSOLUTE_CONTROL.
> 
> This RFC defines V4L2_CID_ROLL_ABSOLUTE, and maps
> UVC_CT_ROLL_ABSOLUTE_CONTROL to make it available to
> userspace.
> Then, the userspace can rotate the stream based on the roll.

Should we also discuss pitch and yaw while we are at it?

As far as I know there are controls to set pan and tilt of a PTZ camera,
but there are no controls that report those angles.

> Is it better to use V4L2_CID_CAMERA_SENSOR_ROTATION for this?

IMHO that would make sense.

Best regards,
Michael

> The value set matches that control.
> If yes, is it worth mapping UVC_CT_ROLL_ABSOLUTE_CONTROL to
> V4L2_CID_CAMERA_SENSOR_ROTATION for this camera only?
> 
> Any feedback is greately appreciated.
> 
> 
> Gergő Köteles (2):
>   media: v4l2: ctrls: Add ROLL_ABSOLUTE control
>   media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL
> 
>  .../userspace-api/media/v4l/ext-ctrls-camera.rst         | 5 +++++
>  drivers/media/usb/uvc/uvc_ctrl.c                         | 9 +++++++++
>  drivers/media/v4l2-core/v4l2-ctrls-defs.c                | 1 +
>  include/uapi/linux/v4l2-controls.h                       | 2 ++
>  4 files changed, 17 insertions(+)
> 
> 
> base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5
  
Gergo Koteles Aug. 4, 2023, 9:33 p.m. UTC | #2
Hi Michael,

On Fri, 2023-08-04 at 20:45 +0200, Michael Riesch wrote:
> Hi Gergő,
> 
> Interesting work! I would guess that there are a lot of cameras with an
> accelerometer or gyroscope that could report the rotation.
> 

I think only the Streamcam in the UVC world, but who knows. :)

> On 8/3/23 23:28, Gergő Köteles wrote:
> > Hi,
> > 
> > Logitech Streamcam can be mounted in 'portrait mode' as well.
> > It reports the current roll (-90, 0, 90, 180) with
> > UVC_CT_ROLL_ABSOLUTE_CONTROL.
> > 
> > This RFC defines V4L2_CID_ROLL_ABSOLUTE, and maps
> > UVC_CT_ROLL_ABSOLUTE_CONTROL to make it available to
> > userspace.
> > Then, the userspace can rotate the stream based on the roll.
> 
> Should we also discuss pitch and yaw while we are at it?
> 

They are there with V4L2_CID_PAN_ABSOLUTE and V4L2_CID_TILT_ABSOLUTE.

> As far as I know there are controls to set pan and tilt of a PTZ camera,
> but there are no controls that report those angles.
> 

Aren't real PTZ cameras using the CT_PANTILT_ABSOLUTE_CONTROL for
panning and tilting? Or just to move the crop window?

> > Is it better to use V4L2_CID_CAMERA_SENSOR_ROTATION for this?
> 
> IMHO that would make sense.
> 
> Best regards,
> Michael
> 
> > The value set matches that control.
> > If yes, is it worth mapping UVC_CT_ROLL_ABSOLUTE_CONTROL to
> > V4L2_CID_CAMERA_SENSOR_ROTATION for this camera only?
> > 
> > Any feedback is greately appreciated.
> > 
> > 
> > Gergő Köteles (2):
> >   media: v4l2: ctrls: Add ROLL_ABSOLUTE control
> >   media: v4l2: map UVC_CT_ROLL_ABSOLUTE_CONTROL
> > 
> >  .../userspace-api/media/v4l/ext-ctrls-camera.rst         | 5 +++++
> >  drivers/media/usb/uvc/uvc_ctrl.c                         | 9 +++++++++
> >  drivers/media/v4l2-core/v4l2-ctrls-defs.c                | 1 +
> >  include/uapi/linux/v4l2-controls.h                       | 2 ++
> >  4 files changed, 17 insertions(+)
> > 
> > 
> > base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5