Re: [PATCH 2/9 v7] V4L: add two new ioctl()s for multi-size videobuffer management

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

 



On Tuesday, September 27, 2011 19:08:38 Laurent Pinchart wrote:
> Hi Hans,
> 
> On Tuesday 27 September 2011 12:34:20 Hans Verkuil wrote:
> > On Thursday, September 08, 2011 09:45:15 Guennadi Liakhovetski wrote:
> > > A possibility to preallocate and initialise buffers of different sizes
> > > in V4L2 is required for an efficient implementation of a snapshot
> > > mode. This patch adds two new ioctl()s: VIDIOC_CREATE_BUFS and
> > > VIDIOC_PREPARE_BUF and defines respective data structures.
> > > 
> > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> > > ---
> 
> [snip]
> 
> > > @@ -2096,6 +2098,33 @@ static long __video_do_ioctl(struct file *file,
> > > 
> > >  		dbgarg(cmd, "type=0x%8.8x", sub->type);
> > >  		break;
> > >  	
> > >  	}
> > > 
> > > +	case VIDIOC_CREATE_BUFS:
> > > +	{
> > > +		struct v4l2_create_buffers *create = arg;
> > > +
> > > +		if (!ops->vidioc_create_bufs)
> > > +			break;
> > 
> > Just as with REQBUFS you need to add code here to handle priority checking:
> > 
> > 		if (ret_prio) {
> > 			ret = ret_prio;
> > 			break;
> > 		}
> 
> Speaking of prio support, how is locking handled here ?

Define 'here'. Are you talking about video_ioctl2() as a function? Or prio
support in particular?

> Does video_ioctl2() 
> require drivers to synchronize all ioctl calls or can it work with fine-grain 
> locking ?

It should always work OK with fine-grained locking.

Regards,

	Hans

>  
> > > +		ret = check_fmt(ops, create->format.type);
> > > +		if (ret)
> > > +			break;
> > > +
> > > +		ret = ops->vidioc_create_bufs(file, fh, create);
> > > +
> > > +		dbgarg(cmd, "count=%d @ %d\n", create->count, create->index);
> > > +		break;
> > > +	}
> 
> 
--
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