* [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional @ 2017-03-29 7:56 Hans Verkuil 2017-04-10 10:21 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 4+ messages in thread From: Hans Verkuil @ 2017-03-29 7:56 UTC (permalink / raw) To: Linux Media Mailing List The documentation for video capture and output devices claims that the video standard ioctls are required. This is not the case, they are only required for PAL/NTSC/SECAM type inputs and outputs. Sensors do not implement this at all and e.g. HDMI inputs implement the DV Timings ioctls. Just drop the mention of 'video standard' ioctls. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> --- diff --git a/Documentation/media/uapi/v4l/dev-capture.rst b/Documentation/media/uapi/v4l/dev-capture.rst index 32b32055d070..4218742ab5d9 100644 --- a/Documentation/media/uapi/v4l/dev-capture.rst +++ b/Documentation/media/uapi/v4l/dev-capture.rst @@ -42,8 +42,8 @@ Video capture devices shall support :ref:`audio input <audio>`, :ref:`tuner`, :ref:`controls <control>`, :ref:`cropping and scaling <crop>` and :ref:`streaming parameter <streaming-par>` ioctls as needed. The -:ref:`video input <video>` and :ref:`video standard <standard>` -ioctls must be supported by all video capture devices. +:ref:`video input <video>` ioctls must be supported by all video +capture devices. Image Format Negotiation diff --git a/Documentation/media/uapi/v4l/dev-output.rst b/Documentation/media/uapi/v4l/dev-output.rst index 25ae8ec96fdf..342eb4931f5c 100644 --- a/Documentation/media/uapi/v4l/dev-output.rst +++ b/Documentation/media/uapi/v4l/dev-output.rst @@ -40,8 +40,8 @@ Video output devices shall support :ref:`audio output <audio>`, :ref:`modulator <tuner>`, :ref:`controls <control>`, :ref:`cropping and scaling <crop>` and :ref:`streaming parameter <streaming-par>` ioctls as needed. The -:ref:`video output <video>` and :ref:`video standard <standard>` -ioctls must be supported by all video output devices. +:ref:`video output <video>` ioctls must be supported by all video +output devices. Image Format Negotiation ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional 2017-03-29 7:56 [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional Hans Verkuil @ 2017-04-10 10:21 ` Mauro Carvalho Chehab 2017-04-10 10:36 ` Hans Verkuil 0 siblings, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2017-04-10 10:21 UTC (permalink / raw) To: Hans Verkuil; +Cc: Linux Media Mailing List Em Wed, 29 Mar 2017 09:56:47 +0200 Hans Verkuil <hverkuil@xs4all.nl> escreveu: > The documentation for video capture and output devices claims that the video standard > ioctls are required. This is not the case, they are only required for PAL/NTSC/SECAM > type inputs and outputs. Sensors do not implement this at all and e.g. HDMI inputs > implement the DV Timings ioctls. > > Just drop the mention of 'video standard' ioctls. > > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> This is an API change that has the potential of breaking userspace. In the past, several applications were failing if VIDIOC_ENUMSTD ioctl is not implemented. So, I remember we had this discussion before, but I don't remember the dirty details anymore. Yet, looking at the code, it seems that we ended by making VIDIOC_ENUMSTD mandatory and implemented at the core. So, V4L2 core will make this ioctl available for all drivers. The core implementattion will, however, return -ENODATA if the driver doesn't set video_device.tvnorms, indicating that standard video timings are not supported. So, instead of the enclosed patch, the documentation should mention the standard ioctls, saying that G_STD/S_STD are optional, and ENUMSTD is mandatory. We could include a note about it may return -ENODATA, although the ENUMSTD documentation already states that it returns -ENODATA: https://linuxtv.org/downloads/v4l-dvb-apis-new/uapi/v4l/vidioc-enumstd.html Regards, Mauro > --- > diff --git a/Documentation/media/uapi/v4l/dev-capture.rst b/Documentation/media/uapi/v4l/dev-capture.rst > index 32b32055d070..4218742ab5d9 100644 > --- a/Documentation/media/uapi/v4l/dev-capture.rst > +++ b/Documentation/media/uapi/v4l/dev-capture.rst > @@ -42,8 +42,8 @@ Video capture devices shall support :ref:`audio input <audio>`, > :ref:`tuner`, :ref:`controls <control>`, > :ref:`cropping and scaling <crop>` and > :ref:`streaming parameter <streaming-par>` ioctls as needed. The > -:ref:`video input <video>` and :ref:`video standard <standard>` > -ioctls must be supported by all video capture devices. > +:ref:`video input <video>` ioctls must be supported by all video > +capture devices. > > > Image Format Negotiation > diff --git a/Documentation/media/uapi/v4l/dev-output.rst b/Documentation/media/uapi/v4l/dev-output.rst > index 25ae8ec96fdf..342eb4931f5c 100644 > --- a/Documentation/media/uapi/v4l/dev-output.rst > +++ b/Documentation/media/uapi/v4l/dev-output.rst > @@ -40,8 +40,8 @@ Video output devices shall support :ref:`audio output <audio>`, > :ref:`modulator <tuner>`, :ref:`controls <control>`, > :ref:`cropping and scaling <crop>` and > :ref:`streaming parameter <streaming-par>` ioctls as needed. The > -:ref:`video output <video>` and :ref:`video standard <standard>` > -ioctls must be supported by all video output devices. > +:ref:`video output <video>` ioctls must be supported by all video > +output devices. > > > Image Format Negotiation Thanks, Mauro ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional 2017-04-10 10:21 ` Mauro Carvalho Chehab @ 2017-04-10 10:36 ` Hans Verkuil 2017-04-10 10:49 ` Hans Verkuil 0 siblings, 1 reply; 4+ messages in thread From: Hans Verkuil @ 2017-04-10 10:36 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List On 04/10/2017 12:21 PM, Mauro Carvalho Chehab wrote: > Em Wed, 29 Mar 2017 09:56:47 +0200 > Hans Verkuil <hverkuil@xs4all.nl> escreveu: > >> The documentation for video capture and output devices claims that the video standard >> ioctls are required. This is not the case, they are only required for PAL/NTSC/SECAM >> type inputs and outputs. Sensors do not implement this at all and e.g. HDMI inputs >> implement the DV Timings ioctls. >> >> Just drop the mention of 'video standard' ioctls. >> >> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> > > This is an API change that has the potential of breaking userspace. > > In the past, several applications were failing if VIDIOC_ENUMSTD ioctl is > not implemented. So, I remember we had this discussion before, but I don't > remember the dirty details anymore. > > Yet, looking at the code, it seems that we ended by making VIDIOC_ENUMSTD > mandatory and implemented at the core. So, V4L2 core will make this > ioctl available for all drivers. The core implementattion will, however, > return -ENODATA if the driver doesn't set video_device.tvnorms, indicating > that standard video timings are not supported. > > So, instead of the enclosed patch, the documentation should mention the > standard ioctls, saying that G_STD/S_STD are optional, and ENUMSTD is > mandatory. I don't think so. In v4l2-dev.c ENUMSTD is only enabled if the driver supports the s_std ioctl: if (is_vid || is_vbi || is_tch) { /* ioctls valid for video or vbi */ if (ops->vidioc_s_std) set_bit(_IOC_NR(VIDIOC_ENUMSTD), valid_ioctls); And in case you are wondering: if you have two inputs, one SDTV and one HDTV, then you have both s_std and s_dv_timings ioctls and if you switch to the HDTV input, then tvnorms is set to 0, causing ENUMSTD to return -ENODATA. If you switch back, then the driver will fill in tvnorms to something non-0. Regards, Hans > > We could include a note about it may return -ENODATA, although the ENUMSTD > documentation already states that it returns -ENODATA: > https://linuxtv.org/downloads/v4l-dvb-apis-new/uapi/v4l/vidioc-enumstd.html > > Regards, > Mauro > >> --- >> diff --git a/Documentation/media/uapi/v4l/dev-capture.rst b/Documentation/media/uapi/v4l/dev-capture.rst >> index 32b32055d070..4218742ab5d9 100644 >> --- a/Documentation/media/uapi/v4l/dev-capture.rst >> +++ b/Documentation/media/uapi/v4l/dev-capture.rst >> @@ -42,8 +42,8 @@ Video capture devices shall support :ref:`audio input <audio>`, >> :ref:`tuner`, :ref:`controls <control>`, >> :ref:`cropping and scaling <crop>` and >> :ref:`streaming parameter <streaming-par>` ioctls as needed. The >> -:ref:`video input <video>` and :ref:`video standard <standard>` >> -ioctls must be supported by all video capture devices. >> +:ref:`video input <video>` ioctls must be supported by all video >> +capture devices. >> >> >> Image Format Negotiation >> diff --git a/Documentation/media/uapi/v4l/dev-output.rst b/Documentation/media/uapi/v4l/dev-output.rst >> index 25ae8ec96fdf..342eb4931f5c 100644 >> --- a/Documentation/media/uapi/v4l/dev-output.rst >> +++ b/Documentation/media/uapi/v4l/dev-output.rst >> @@ -40,8 +40,8 @@ Video output devices shall support :ref:`audio output <audio>`, >> :ref:`modulator <tuner>`, :ref:`controls <control>`, >> :ref:`cropping and scaling <crop>` and >> :ref:`streaming parameter <streaming-par>` ioctls as needed. The >> -:ref:`video output <video>` and :ref:`video standard <standard>` >> -ioctls must be supported by all video output devices. >> +:ref:`video output <video>` ioctls must be supported by all video >> +output devices. >> >> >> Image Format Negotiation > > > > Thanks, > Mauro > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional 2017-04-10 10:36 ` Hans Verkuil @ 2017-04-10 10:49 ` Hans Verkuil 0 siblings, 0 replies; 4+ messages in thread From: Hans Verkuil @ 2017-04-10 10:49 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List On 04/10/2017 12:36 PM, Hans Verkuil wrote: > On 04/10/2017 12:21 PM, Mauro Carvalho Chehab wrote: >> Em Wed, 29 Mar 2017 09:56:47 +0200 >> Hans Verkuil <hverkuil@xs4all.nl> escreveu: >> >>> The documentation for video capture and output devices claims that the video standard >>> ioctls are required. This is not the case, they are only required for PAL/NTSC/SECAM >>> type inputs and outputs. Sensors do not implement this at all and e.g. HDMI inputs >>> implement the DV Timings ioctls. >>> >>> Just drop the mention of 'video standard' ioctls. >>> >>> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> >> >> This is an API change that has the potential of breaking userspace. >> >> In the past, several applications were failing if VIDIOC_ENUMSTD ioctl is >> not implemented. So, I remember we had this discussion before, but I don't >> remember the dirty details anymore. >> >> Yet, looking at the code, it seems that we ended by making VIDIOC_ENUMSTD >> mandatory and implemented at the core. So, V4L2 core will make this >> ioctl available for all drivers. The core implementattion will, however, >> return -ENODATA if the driver doesn't set video_device.tvnorms, indicating >> that standard video timings are not supported. >> >> So, instead of the enclosed patch, the documentation should mention the >> standard ioctls, saying that G_STD/S_STD are optional, and ENUMSTD is >> mandatory. > > I don't think so. In v4l2-dev.c ENUMSTD is only enabled if the driver supports > the s_std ioctl: > > if (is_vid || is_vbi || is_tch) { > /* ioctls valid for video or vbi */ > if (ops->vidioc_s_std) > set_bit(_IOC_NR(VIDIOC_ENUMSTD), valid_ioctls); > > And in case you are wondering: if you have two inputs, one SDTV and one HDTV, then > you have both s_std and s_dv_timings ioctls and if you switch to the HDTV input, > then tvnorms is set to 0, causing ENUMSTD to return -ENODATA. If you switch back, > then the driver will fill in tvnorms to something non-0. Note that v4l2-compliance will verify that you can't enumerate standards if the input/output doesn't indicate STD support. So this patch is really correct. Regards, Hans > > Regards, > > Hans > >> >> We could include a note about it may return -ENODATA, although the ENUMSTD >> documentation already states that it returns -ENODATA: >> https://linuxtv.org/downloads/v4l-dvb-apis-new/uapi/v4l/vidioc-enumstd.html >> >> Regards, >> Mauro >> >>> --- >>> diff --git a/Documentation/media/uapi/v4l/dev-capture.rst b/Documentation/media/uapi/v4l/dev-capture.rst >>> index 32b32055d070..4218742ab5d9 100644 >>> --- a/Documentation/media/uapi/v4l/dev-capture.rst >>> +++ b/Documentation/media/uapi/v4l/dev-capture.rst >>> @@ -42,8 +42,8 @@ Video capture devices shall support :ref:`audio input <audio>`, >>> :ref:`tuner`, :ref:`controls <control>`, >>> :ref:`cropping and scaling <crop>` and >>> :ref:`streaming parameter <streaming-par>` ioctls as needed. The >>> -:ref:`video input <video>` and :ref:`video standard <standard>` >>> -ioctls must be supported by all video capture devices. >>> +:ref:`video input <video>` ioctls must be supported by all video >>> +capture devices. >>> >>> >>> Image Format Negotiation >>> diff --git a/Documentation/media/uapi/v4l/dev-output.rst b/Documentation/media/uapi/v4l/dev-output.rst >>> index 25ae8ec96fdf..342eb4931f5c 100644 >>> --- a/Documentation/media/uapi/v4l/dev-output.rst >>> +++ b/Documentation/media/uapi/v4l/dev-output.rst >>> @@ -40,8 +40,8 @@ Video output devices shall support :ref:`audio output <audio>`, >>> :ref:`modulator <tuner>`, :ref:`controls <control>`, >>> :ref:`cropping and scaling <crop>` and >>> :ref:`streaming parameter <streaming-par>` ioctls as needed. The >>> -:ref:`video output <video>` and :ref:`video standard <standard>` >>> -ioctls must be supported by all video output devices. >>> +:ref:`video output <video>` ioctls must be supported by all video >>> +output devices. >>> >>> >>> Image Format Negotiation >> >> >> >> Thanks, >> Mauro >> > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-04-10 10:50 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-03-29 7:56 [PATCH] dev-capture.rst/dev-output.rst: video standards ioctls are optional Hans Verkuil 2017-04-10 10:21 ` Mauro Carvalho Chehab 2017-04-10 10:36 ` Hans Verkuil 2017-04-10 10:49 ` Hans Verkuil
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox