Re: Questions about image size listed in VIDIOC_ENUM_FMT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le vendredi 14 février 2025 à 07:08 +0000, Sakari Ailus a écrit :
> Hi Zhaoxuan,
> 
> On Fri, Feb 14, 2025 at 12:19:23PM +0800, Zhaoxuan Zhai wrote:
> > Hi all,
> > 
> > Sorry I made a mistake. It should be VIDIOC_ENUM_FRAMESIZES instead of
> > VIDIOC_ENUM_FMT. I'm sorry for the mistake.
> > 
> > 在 2025/2/14 12:08, Zhaoxuan Zhai 写道:
> > > Hi all,
> > > 
> > > We are working on a camera driver. We plan to use v4l2 interface to send
> > > image data to users. We have a question we'd like to ask.
> > > 
> > > The situation we are facing is as follows.
> > > 
> > > We have an image processing unit that can process raw data collected by
> > > the sensor into the V4L2_PIX_FMT_NV12M format and send it to the user.
> > > 
> > > However, due to the requirements of the V4L2_PIX_FMT_NV12M format, the
> > > width and height of the image must be divisible by 16.
> > > 
> > > For example, when the sensor provides an image size of 2104x1560, after
> > > NV12M encoding, it should be pading to  2112x1566. But the additional 8
> > > rows and 8 columns are padded with 0s and contain no actual content.
> > > 
> > > So, we would like to ask, in this case, what size should we list in
> > > VIDIOC_ENUM_FMT? Should it be the actual image size with content,
> > > 2104x1560, or the padded size, 2112x1566?"
> 
> I'd say the actual image size (i.e. where you have pixel data). The
> sizeimage field needs to reflect the padding and the user needs to be aware
> how the data is laid out in memory.

I'd be happy to see spec clarification in this regard. I also think
that image size is best.

For NV12M, you can absorb the padding in per plane bytesperline /
sizeimage of the v4l2_format structure. That means the enumerated size
will match the format. Though, for NV12 (single plane) you'd have to
set at least the padded height and implement the SELECTION API to
return the cropping area.

In practice, for application point of view, it would all have been
easier if the v4l2_format was always padded width/height, with the
display dimension explicitly provided. But I'm pretty sure upstream
drivers implement a mix.

Nicolas

> 
> Also cc Hans.
> 






[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux