public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: Re: [PATCH/RFC 1/4] V4L: add three new ioctl()s for multi-size videobuffer management
Date: Wed, 18 May 2011 22:58:21 +0300	[thread overview]
Message-ID: <4DD424DD.2070508@maxwell.research.nokia.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1105181642510.16324@axis700.grange>

Hi Guennadi and Laurent,

Guennadi Liakhovetski wrote:
> On Wed, 18 May 2011, Laurent Pinchart wrote:
> 
>> On Tuesday 17 May 2011 07:52:28 Sakari Ailus wrote:
>>> Guennadi Liakhovetski wrote:
> 
> [snip]
> 
>>>>> What about making it possible to pass an array of buffer indices to the
>>>>> user, just like VIDIOC_S_EXT_CTRLS does? I'm not sure if this would be
>>>>> perfect, but it would avoid the problem of requiring continuous ranges
>>>>> of buffer ids.
>>>>>
>>>>> struct v4l2_create_buffers {
>>>>>
>>>>> 	__u32			*index;
>>>>> 	__u32			count;
>>>>> 	__u32			flags;
>>>>> 	enum v4l2_memory        memory;
>>>>> 	__u32			size;
>>>>> 	struct v4l2_format	format;
>>>>>
>>>>> };
>>>>>
>>>>> Index would be a pointer to an array of buffer indices and its length
>>>>> would be count.
>>>>
>>>> I don't understand this. We do _not_ want to allow holes in indices. For
>>>> now we decide to not implement DESTROY at all. In this case indices just
>>>> increment contiguously.
>>>>
>>>> The next stage is to implement DESTROY, but only in strict reverse order
>>>> - without holes and in the same ranges, as buffers have been CREATEd
>>>> before. So, I really don't understand why we need arrays, sorry.
>>>
>>> Well, now that we're defining a second interface to make new buffer
>>> objects, I just thought it should be made as future-proof as we can.
>>
>> I second that. I don't like rushing new APIs to find out we need something 
>> else after 6 months.
> 
> Ok, so, we pass an array from user-space with CREATE of size count. The 
> kernel fills it with as many buffers entries as it has allocated. But 
> currently drivers are also allowed to allocate more buffers, than the 
> user-space has requested. What do we do in such a case?

That's a good point.

But even if there was no array, shouldn't the user be allowed to create
the buffers using a number of separate CREATE_BUF calls? The result
would be still the same n buffers as with a single call allocating the n
buffers at once.

Also, consider the (hopefully!) forthcoming DMA buffer management API
patches. It looks like that those buffers will be referred to by file
handles. To associate several DMA buffer objects to V4L2 buffers at
once, there would have to be an array of those objects.

<URL:http://www.spinics.net/lists/linux-media/msg32448.html>

(See the links, too!)

Thus, I would think that CREATE_BUF can be used to create buffers but
not to enforce how many of them are required by a device on a single
CREATE_BUF call.

I don't have a good answer for the stated problem, but these ones
crossed my mind:

- Have a new ioctl to tell the minimum number of buffers to make
streaming possible.

- Add a field for the minimum number of buffers to CREATE_BUF.

- Use the old REQBUFS to tell the number. It didn't do much other work
in the past either, right?

Regards,

-- 
Sakari Ailus
sakari.ailus@maxwell.research.nokia.com

  reply	other threads:[~2011-05-18 19:55 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-01  8:12 [PATCH/RFC 0/4] V4L: new ioctl()s to support multi-sized video-buffers Guennadi Liakhovetski
2011-04-01  8:13 ` [PATCH/RFC 1/4] V4L: add three new ioctl()s for multi-size videobuffer management Guennadi Liakhovetski
2011-04-04  7:05   ` Hans Verkuil
2011-04-04  7:38     ` Guennadi Liakhovetski
2011-04-04  8:06       ` Hans Verkuil
2011-04-04  8:23         ` Guennadi Liakhovetski
2011-04-05 12:02         ` Laurent Pinchart
2011-04-05 12:40           ` Guennadi Liakhovetski
2011-04-05 12:40           ` Hans Verkuil
2011-04-05 12:53             ` Laurent Pinchart
2011-04-05 11:59   ` Laurent Pinchart
2011-04-05 12:39     ` Guennadi Liakhovetski
2011-04-05 12:56       ` Laurent Pinchart
2011-04-05 14:53         ` Sakari Ailus
2011-04-05 12:21   ` Laurent Pinchart
2011-04-05 12:34     ` Hans Verkuil
2011-04-05 12:50       ` Laurent Pinchart
2011-04-05 12:52       ` Guennadi Liakhovetski
2011-04-05 12:58         ` Laurent Pinchart
2011-04-06 16:19       ` Guennadi Liakhovetski
2011-04-07  7:06         ` Hans Verkuil
2011-04-07  7:15           ` Guennadi Liakhovetski
2011-04-07  7:50             ` Hans Verkuil
2011-04-07  8:53               ` Guennadi Liakhovetski
2011-04-07  9:13                 ` Hans Verkuil
2011-04-07  9:17               ` Laurent Pinchart
2011-04-07  9:28                 ` Hans Verkuil
2011-04-11 11:27                   ` Sakari Ailus
2011-04-11  8:54   ` Sakari Ailus
2011-05-13  7:45   ` Guennadi Liakhovetski
2011-05-14 11:12     ` Hans Verkuil
2011-05-16 13:32     ` Sakari Ailus
2011-05-16 20:34       ` Guennadi Liakhovetski
2011-05-17  5:52         ` Sakari Ailus
2011-05-18 14:01           ` Laurent Pinchart
2011-05-18 14:48             ` Guennadi Liakhovetski
2011-05-18 19:58               ` Sakari Ailus [this message]
2011-06-06 13:10                 ` Guennadi Liakhovetski
2011-06-06 17:28                   ` Sakari Ailus
2011-06-07 12:14                     ` Guennadi Liakhovetski
2011-06-08  9:04                       ` Sakari Ailus
2011-05-22 10:18           ` Guennadi Liakhovetski
2011-05-22 12:17             ` Sakari Ailus
2011-05-18 13:59     ` Laurent Pinchart
2011-05-18 15:15       ` Guennadi Liakhovetski
2011-05-18 18:02         ` Sakari Ailus
2011-04-01  8:13 ` [PATCH/RFC 2/4] V4L: add videobuf2 helper functions to support multi-size video-buffers Guennadi Liakhovetski
2011-04-01 14:06   ` [PATCH/RFC 2/4 v2] " Guennadi Liakhovetski
2011-04-03 17:34     ` Pawel Osciak
2011-04-04  7:55       ` Guennadi Liakhovetski
2011-04-05 12:42         ` Laurent Pinchart
2011-04-05 12:38     ` Laurent Pinchart
2011-04-05 13:01       ` Guennadi Liakhovetski
2011-04-01  8:13 ` [PATCH/RFC 3/4] V4L: soc-camera: add support for new multi-size video-buffer ioctl()s Guennadi Liakhovetski
2011-04-01  8:13 ` [PATCH/RFC 4/4] V4L: sh_mobile_ceu_camera: support multi-size video-buffers Guennadi Liakhovetski
2011-04-03 17:34 ` [PATCH/RFC 0/4] V4L: new ioctl()s to support multi-sized video-buffers Pawel Osciak
2011-04-04  7:15   ` Guennadi Liakhovetski
2011-04-05 12:19     ` Laurent Pinchart
2011-04-05 12:48       ` Guennadi Liakhovetski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DD424DD.2070508@maxwell.research.nokia.com \
    --to=sakari.ailus@maxwell.research.nokia.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox