Re: [PATCH/RFC 1/4] V4L: add three new ioctl()s for multi-size videobuffer management

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

 



On Thu, 7 Apr 2011, Hans Verkuil wrote:

> > On Thu, 7 Apr 2011, Hans Verkuil wrote:
> >
> >> On Wednesday, April 06, 2011 18:19:18 Guennadi Liakhovetski wrote:
> >> > On Tue, 5 Apr 2011, Hans Verkuil wrote:
> >> >
> >> > > On Tuesday, April 05, 2011 14:21:03 Laurent Pinchart wrote:
> >> > > > On Friday 01 April 2011 10:13:02 Guennadi Liakhovetski wrote:
> >> >
> >> > [snip]
> >> >
> >> > > > >   *	I O C T L   C O D E S   F O R   V I D E O   D E V I C E S
> >> > > > >   *
> >> > > > > @@ -1937,6 +1957,10 @@ struct v4l2_dbg_chip_ident {
> >> > > > >  #define	VIDIOC_SUBSCRIBE_EVENT	 _IOW('V', 90, struct
> >> > > > > v4l2_event_subscription) #define	VIDIOC_UNSUBSCRIBE_EVENT
> >> _IOW('V', 91,
> >> > > > > struct v4l2_event_subscription)
> >> > > > >
> >> > > > > +#define VIDIOC_CREATE_BUFS	_IOWR('V', 92, struct
> >> v4l2_create_buffers)
> >> > > > > +#define VIDIOC_DESTROY_BUFS	_IOWR('V', 93, struct
> >> v4l2_buffer_span)
> >> > > > > +#define VIDIOC_SUBMIT_BUF	 _IOW('V', 94, int)
> >> > > > > +
> >> > > >
> >> > > > In case we later need to pass other information (such as flags) to
> >> > > > VIDIOC_SUBMIT_BUF, you should use a structure instead of an int.
> >> > >
> >> > > I would just pass struct v4l2_buffer to this ioctl, just like
> >> QBUF/DQBUF do.
> >> >
> >> > As I said, I didn't like this very much, because it involves redundant
> >> > data, but if we want to call .buf_prepare() from it, then we need
> >> > v4l2_buffer...
> >>
> >> I don't see a problem with this. Applications already *have* the
> >> v4l2_buffer
> >> after all. It's not as if they have to fill that structure just for this
> >> call.
> >>
> >> Furthermore, you need all that data anyway because you need to do the
> >> same
> >> checks that vb2_qbuf does.
> >>
> >> Regarding DESTROY_BUFS: perhaps we should just skip this for now and
> >> wait for
> >> the first use-case. That way we don't need to care about holes. I don't
> >> like
> >> artificial restrictions like 'no holes'. If someone has a good use-case
> >> for
> >> selectively destroying buffers, then we need to look at this again.
> >
> > Sorry, skip what? skip the ioctl completely and rely on REQBUFS(0) /
> > close()?
> 
> Yes.

Ok, how about this: I remove the ioctl definition and struct 
v4l2_ioctl_ops callback for it, but I keep the span struct and the vb2 
implementation - in case we need it later? The vb2_destroy_bufs() will be 
used to implement freeing the queue as a particular case of freeing some 
buffers.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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