From: Hans Verkuil <hverkuil@xs4all.nl>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
media-workshop@linuxtv.org,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [media-workshop] Agenda for the Edinburgh mini-summit
Date: Sun, 01 Sep 2013 13:13:19 +0200 [thread overview]
Message-ID: <5223214F.6010206@xs4all.nl> (raw)
In-Reply-To: <Pine.LNX.4.64.1308312231270.26694@axis700.grange>
On 08/31/2013 10:36 PM, Guennadi Liakhovetski wrote:
> On Sat, 31 Aug 2013, Laurent Pinchart wrote:
>
>> Hi Guennadi,
>>
>> On Saturday 31 August 2013 20:38:54 Guennadi Liakhovetski wrote:
>>> On Sat, 31 Aug 2013, Hans Verkuil wrote:
>>>> On 08/30/2013 03:01 PM, Hans Verkuil wrote:
>>>>> OK, I know, we don't even know yet when the mini-summit will be held but
>>>>> I thought I'd just start this thread to collect input for the agenda.
>>>>>
>>>>> I have these topics (and I *know* that I am forgetting a few):
>>
>> [snip]
>>
>>>>> Feel free to add suggestions to this list.
>>>>
>>>> I got another one:
>>>>
>>>> VIDIOC_TRY_FMT shouldn't return -EINVAL when an unsupported pixelformat is
>>>> provided, but in practice video capture board tend to do that, while
>>>> webcam drivers tend to map it silently to a valid pixelformat. Some
>>>> applications rely on the -EINVAL error code.
>>>>
>>>> We need to decide how to adjust the spec. I propose to just say that some
>>>> drivers will map it silently and others will return -EINVAL and that you
>>>> don't know what a driver will do. Also specify that an unsupported
>>>> pixelformat is the only reason why TRY_FMT might return -EINVAL.
>>>>
>>>> Alternatively we might want to specify explicitly that EINVAL should be
>>>> returned for video capture devices (i.e. devices supporting S_STD or
>>>> S_DV_TIMINGS) and 0 for all others.
>>>
>>> Just to make sure I understand right - that kind of excludes cameras,
>>> right? Still, even for (other) video capture devices, like TV decoders, is
>>> there a real serious enough reason to _change_ the specs, which says
>>>
>>> http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-g-fmt.html
>>>
>>> EINVAL
>>>
>>> The struct v4l2_format type field is invalid or the requested buffer
>>> type not supported.
>>
>> I think Hans meant unsupported fmt.pix.pixelformat (or the equivalent for
>> multiplane) values.
>
> Good, then I understood him correctly :)
>
>> For instance the uvcvideo driver will return a default
>> fourcc if an application tries an unsupported fourcc,
>
> Yes, that's what I would do too and that's what the spec dictates.
>
>> some other drivers
>> return -EINVAL.
>
> that just seems plain wrong to me. So, as I said, to not break the
> userspace we can extend the specs, but not prohibit the currently defined
> behaviour. So, that last option:
>
>>>> Alternatively we might want to specify explicitly that EINVAL should be
>>>> returned for video capture devices (i.e. devices supporting S_STD or
>>>> S_DV_TIMINGS) and 0 for all others.
>
> I'm not sure I like a lot, unless those drivers are very special and they
> all already behave like that.
Almost (have to check though) all TV capture drivers behave like that, yes.
Very unfortunate.
On the other hand webcam apps must assume that TRY_FMT will just map an unsupported
pixel format to a valid pixel format since that is what uvc does. And a webcam app
that doesn't support uvc can't be called a webcam app :-)
Regards,
Hans
> Thanks
> Guennadi
>
>>> If we have a spec, that says A, and some drivers drivers do A, but others
>>> do B, and we want to change the specs to B? Instead of either changing the
>>> (wrong) drivers to A (yes, some applications expect that wrong behaviour)
>>> or at least extending the spec to allow both A and B?
>>
>> --
>> Regards,
>>
>> Laurent Pinchart
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
next prev parent reply other threads:[~2013-09-01 11:13 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 13:01 Agenda for the Edinburgh mini-summit Hans Verkuil
2013-08-30 13:21 ` Oliver Schinagl
2013-08-30 13:31 ` Mauro Carvalho Chehab
2013-08-30 16:54 ` [media-workshop] " Laurent Pinchart
[not found] ` <CACHYQ-qyuP+MjWNc7bVHhUa0xxzQHEmb3JFe+9n6C0GzOnj54A@mail.gmail.com>
2013-08-31 0:03 ` Laurent Pinchart
[not found] ` <CACHYQ-qDD5S5FJvzT-oUBe+Y+S=CB_ZN+QNQPpu+BFE-ZPr45g@mail.gmail.com>
2013-08-31 20:19 ` Laurent Pinchart
[not found] ` <CA+M3ks7whrGtkboVcstoEQBRTkiLGF7Hf9nEsYEkyUD6=QPG9w@mail.gmail.com>
2013-09-04 10:48 ` Mauro Carvalho Chehab
2013-09-05 11:37 ` Hugues FRUCHET
2013-09-06 13:45 ` Laurent Pinchart
2013-09-07 9:31 ` Pawel Osciak
2013-09-10 9:44 ` Laurent Pinchart
2013-09-09 10:32 ` Hans Verkuil
2013-09-10 7:36 ` Hugues FRUCHET
2013-09-10 7:54 ` Hans Verkuil
2013-08-30 13:54 ` Hans Verkuil
2013-08-31 6:43 ` Hans Verkuil
2013-08-31 18:38 ` [media-workshop] " Guennadi Liakhovetski
2013-08-31 20:25 ` Laurent Pinchart
2013-08-31 20:36 ` Guennadi Liakhovetski
2013-09-01 11:13 ` Hans Verkuil [this message]
2013-08-31 14:40 ` Sakari Ailus
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=5223214F.6010206@xs4all.nl \
--to=hverkuil@xs4all.nl \
--cc=g.liakhovetski@gmx.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=media-workshop@linuxtv.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