Re: v4l2 api: supported resolution negotiation
On 10/04/2015 08:49 PM, Sakari Ailus wrote: > On Sun, Oct 04, 2015 at 12:23:08PM +0300, Matwey V. Kornilov wrote: >> Hello, >> >> I learned from V2L2 API how to detect all supported formats using >> VIDIOC_ENUM_FMT. >> When I perform VIDIOC_S_FMT I don't know how to fill fmt.pix.width and >> fmt.pix.height, since I know only format. >> How should I negotiate device resolution? Could you point me? > > VIDIOC_ENUM_FRAMESIZES may give you hints, but it's optional. You can use > values you prefer to try if drivers support them; I think the GStreamer > v4lsrc tries very small and very large values. The driver will clamp them to > a supported values which are passed to the application from the IOCTL. > > http://hverkuil.home.xs4all.nl/spec/media.html#vidioc-enum-framesizes> > You can also call G_FMT first, then change the pixelformat and call S_FMT. This will only change the pixelformat and leave the resolution the same (unless the driver has some restrictions for the new pixelformat, but that's unlikely). Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: v4l2 api: supported resolution negotiation
Le dimanche 04 octobre 2015 à 21:49 +0300, Sakari Ailus a écrit : > I think the GStreamer > v4lsrc tries very small and very large values. The driver will clamp > them to > a supported values which are passed to the application from the > IOCTL. In GStreamer we try ENUM_FRAMESIZE, and when no supported, we fallback to try_fmt() with 1x1 (driver will raise it to the minimum) and then MAX,MAX (driver will lower it to the maximum). We assume that the driver supports a range, as iterating over all possibilities takes too much time. Nicolas signature.asc Description: This is a digitally signed message part
Re: v4l2 api: supported resolution negotiation
On Sun, Oct 04, 2015 at 12:23:08PM +0300, Matwey V. Kornilov wrote: > Hello, > > I learned from V2L2 API how to detect all supported formats using > VIDIOC_ENUM_FMT. > When I perform VIDIOC_S_FMT I don't know how to fill fmt.pix.width and > fmt.pix.height, since I know only format. > How should I negotiate device resolution? Could you point me? VIDIOC_ENUM_FRAMESIZES may give you hints, but it's optional. You can use values you prefer to try if drivers support them; I think the GStreamer v4lsrc tries very small and very large values. The driver will clamp them to a supported values which are passed to the application from the IOCTL. http://hverkuil.home.xs4all.nl/spec/media.html#vidioc-enum-framesizes> -- Regards, Sakari Ailus e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
v4l2 api: supported resolution negotiation
Hello, I learned from V2L2 API how to detect all supported formats using VIDIOC_ENUM_FMT. When I perform VIDIOC_S_FMT I don't know how to fill fmt.pix.width and fmt.pix.height, since I know only format. How should I negotiate device resolution? Could you point me? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html