From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Andreas Oberritter <obi@linuxtv.org>
Cc: Manu Abraham <abraham.manu@gmail.com>,
Hans Verkuil <hverkuil@xs4all.nl>,
linux-media@vger.kernel.org,
Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [RFCv2 PATCH 12/12] Remove audio.h, video.h and osd.h.
Date: Fri, 25 Nov 2011 11:48:02 -0200 [thread overview]
Message-ID: <4ECF9C92.2040607@redhat.com> (raw)
In-Reply-To: <4ECF8359.5080705@linuxtv.org>
Em 25-11-2011 10:00, Andreas Oberritter escreveu:
> On 24.11.2011 19:47, Mauro Carvalho Chehab wrote:
>> Em 24-11-2011 16:13, Manu Abraham escreveu:
>>> On Thu, Nov 24, 2011 at 11:38 PM, Mauro Carvalho Chehab
>>> <mchehab@redhat.com> wrote:
>>>> Em 24-11-2011 16:01, Manu Abraham escreveu:
>>>>> On Thu, Nov 24, 2011 at 11:14 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>>>>>> On Thursday, November 24, 2011 18:08:05 Andreas Oberritter wrote:
>>>>>>> Don't break existing Userspace APIs for no reason! It's OK to add the
>>>>>>> new API, but - pretty please - don't just blindly remove audio.h and
>>>>>>> video.h. They are in use since many years by av7110, out-of-tree drivers
>>>>>>> *and more importantly* by applications. Yes, I know, you'd like to see
>>>>>>> those out-of-tree drivers merged, but it isn't possible for many
>>>>>>> reasons. And even if they were merged, you'd say "Port them and your
>>>>>>> apps to V4L". No! That's not an option.
>>>>>>
>>>>>> I'm not breaking anything. All apps will still work.
>>>>>>
>>>>>> One option (and it depends on whether people like it or not) is to have
>>>>>> audio.h, video.h and osd.h just include av7110.h and add a #warning
>>>>>> that these headers need to be replaced by the new av7110.h.
>>>>>
>>>>>
>>>>> That won't work with other non av7110 hardware.
>>>>
>>>> There isn't any non-av7110 driver using it at the Kernel. Anyway, we can put
>>>> a warning at the existing headers as-is, for now, putting them to be removed
>>>> for a new kernel version, like 3.4.
>>>
>>>
>>> No, that's not an option. The to-be merged saa716x driver depends on it.
>>
>> If the driver is not merged yet, it can be changed.
>>
>>> A DVB alone device need not depend V4L2 for it's operation.
>>
>> Why not? DVB drivers with IR should implement the input/event/IR API. DVB drivers with net
>> should implement the Linux Network API.
>
> DVB doesn't specify IR. There's no such thing like a DVB IR device.
>
> IP over DVB is implemented transparently. No driver needs to do anything
> but register its device's MAC address, therefore no driver implements
> the Linux Network API.
>
>> There is nothing wrong on using the ALSA API for audio and the V4L2 API for video,
>> as both API fits the needs for decoding audio and video streams, and new features
>> could be added there when needed.
>
> Yes. There's nothing wrong with it and I'm not complaining. I don't care
> about the implementation of the API in ivtv either. Just don't remove
> the API from dvb-core, period.
>
>> Duplicated API's that become legacy are removed with time. Just to mention two
>> notable cases, this happened with the old audio stack (OSS), with the old Wireless
>> stack.
>
> I can still use iwconfig and linux/wireless.h is still available on my
> system.
Yes, but both iwconfig and the API changed.
> ALSA still provides OSS emulation and the real OSS stack was marked
> deprecated but still present for ages.
OSS driver submission stopped years ago. I remember it clearly as they denied cx88-oss
driver submission (2004 or 2005). The saa7134-oss and bttv-oss drivers were dropped in 2007[1]
in favor of the alsa drivers. The only hardware that are still there at OSS are the
legacy ones that probably no alsa developer has anymore.
[1] http://kerneltrap.org/mailarchive/linux-kernel/2007/11/9/398438/thread
> In contrast, you want to remove a
> stable API and introduce a new *completely untested* API between 3.3 and
> 3.4.
Please read the patches again. The API for the devices are still there:
any binary compiled for older kernels will still work with av7110 and ivtv.
With the patches applied, the only difference is that the header file has
renamed, as they were moved to device-specific headers.
It should be noticed that, while both av7110 and ivtv uses the same ioctl's, av7110
creates devices over /dev/dvb, while ivtv uses it over /dev/video?. So, in practice,
each driver has a different API.
There are no plans to remove the API for av7110.
As discussed on this thread, it seems that the agreed plans for the ivtv API is to put
it into the standard kernel procedure to get rid of legacy API. That means that the API
will be there for a few kernel versions.
Hans proposal is to remove the ivtv API on 3.8, with seems reasonable. So, the first
API removal will happen in about 18 months from now (assuming about 2 months per kernel
version).
>> Do you have any issues that needs to be addressed by the V4L2 API for it to fit
>> on your needs?
>
> I don't want to be forced to use the V4L2 API for no reason and no gain.
As already explained on the other email, there are gains on using it, like the support
for other types of encoding, the pipeline setup, sub-device control, shared buffer interface
with GPU, proper support for SoC, etc.
Also, currently, just one device uses it (av7110). I don't think that the chipset is
still manufactured. At least Google didn't help finding anything:
http://www.google.com/search?q=av7110&tbm=shop&hl=en
On the other hand, there are thousands of devices using V4L2 API.
As both API's provide support for decoded video, one API has to be deprecated in favor
to the other. We should select for deprecation the one that is more restrictive
and that has just one driver using it.
>
>>> Also, it doesn't
>>> make any sense to have device specific headers to be used by an application,
>>> when drivers share more than one commonality.
>>
>> The only in-kernel driver using audio/video/osd is av7110.
>
> Once again: Manu is going to submit a new driver soon.
The API is there for several years (since 2002?), with just one driver supporting it.
It shouldn't be hard to convert Manu's work to the V4L2. I can help him on converting
his driver to use the V4L2 API if needed.
> You're trying to remove an API that you've never used. The people who
> use the API want it to stay.
As I said, it will stay there. Nobody will remove av7110 or remove the old API from it.
The idea is that no new driver should use it, as it is a legacy one-driver-only API.
If your complain is about the removal of audio.h, video.h and osd.h, then my proposal is
to keep it there, writing a text that they are part of a deprecated API, but keeping
the rest of the patches and not accepting anymore any submission using them, removing
the ioctl's that aren't used by av7110 from them.
Regards,
Mauro
next prev parent reply other threads:[~2011-11-25 13:48 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-24 13:38 Remove audio and video DVBv5 API Hans Verkuil
2011-11-24 13:38 ` [RFCv2 PATCH 01/12] v4l2: add VIDIOC_(TRY_)DECODER_CMD Hans Verkuil
2011-11-24 13:38 ` [RFCv2 PATCH 02/12] v4l spec: document VIDIOC_(TRY_)DECODER_CMD Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 03/12] ivtv: implement new decoder command ioctls Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 04/12] v4l2-ctrls: add new controls for MPEG decoder devices Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 05/12] Document decoder controls Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 06/12] ivtv: implement new " Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 07/12] cx18/ddbridge: remove unused headers Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 08/12] ivtv: extend ivtv.h with structs and ioctls from dvb/audio.h and video.h Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 09/12] ivtv: use the new ivtv-specific ioctls from ivtv.h Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 10/12] av7110: replace audio.h, video.h and osd.h by av7110.h Hans Verkuil
2011-11-24 23:24 ` Oliver Endriss
2011-11-25 15:35 ` Klaus Schmidinger
2011-11-24 13:39 ` [RFCv2 PATCH 11/12] Replace audio.xml and video.xml with av.xml Hans Verkuil
2011-11-24 13:39 ` [RFCv2 PATCH 12/12] Remove audio.h, video.h and osd.h Hans Verkuil
2011-11-24 17:08 ` Andreas Oberritter
2011-11-24 17:37 ` Mauro Carvalho Chehab
2011-11-24 17:59 ` Manu Abraham
2011-11-24 18:01 ` Andreas Oberritter
2011-11-24 23:32 ` Oliver Endriss
2011-11-24 17:44 ` Hans Verkuil
2011-11-24 17:51 ` Andreas Oberritter
2011-11-24 17:58 ` Mauro Carvalho Chehab
2011-11-24 18:07 ` Andreas Oberritter
2011-11-24 18:25 ` Mauro Carvalho Chehab
2011-11-24 18:34 ` Manu Abraham
2011-11-25 1:09 ` Andreas Oberritter
2011-11-25 2:44 ` Mauro Carvalho Chehab
2011-11-25 12:55 ` Andreas Oberritter
2011-11-25 15:18 ` Mauro Carvalho Chehab
2011-11-25 15:25 ` Hans Verkuil
2011-11-25 16:00 ` Mauro Carvalho Chehab
2011-11-24 18:01 ` Manu Abraham
2011-11-24 18:08 ` Mauro Carvalho Chehab
2011-11-24 18:13 ` Manu Abraham
2011-11-24 18:47 ` Mauro Carvalho Chehab
2011-11-24 18:51 ` Manu Abraham
2011-11-24 19:05 ` Manu Abraham
2011-11-25 12:00 ` Andreas Oberritter
2011-11-25 13:48 ` Mauro Carvalho Chehab [this message]
2011-11-25 13:59 ` Manu Abraham
2011-11-25 14:41 ` Andreas Oberritter
2011-11-25 15:38 ` Mauro Carvalho Chehab
2011-11-25 16:03 ` Andreas Oberritter
2011-11-25 16:26 ` Mauro Carvalho Chehab
2011-11-25 16:51 ` Manu Abraham
2011-11-25 22:06 ` Andreas Oberritter
2011-11-26 5:55 ` Oliver Endriss
2011-11-26 6:25 ` Manu Abraham
2011-11-26 11:32 ` Mauro Carvalho Chehab
2011-11-26 11:59 ` Mauro Carvalho Chehab
2011-11-26 12:46 ` Oliver Endriss
2011-11-26 11:49 ` Hans Verkuil
2011-11-26 20:27 ` Andreas Oberritter
2011-11-27 18:28 ` Mauro Carvalho Chehab
2011-11-26 21:58 ` Manu Abraham
2011-11-27 19:03 ` Mauro Carvalho Chehab
2011-11-27 19:27 ` Manu Abraham
2011-11-27 21:39 ` Mauro Carvalho Chehab
2011-11-27 22:24 ` Manu Abraham
2011-11-27 22:50 ` Mauro Carvalho Chehab
2011-11-26 22:11 ` Manu Abraham
2011-11-25 15:22 ` Hans Verkuil
2011-11-25 15:52 ` Mauro Carvalho Chehab
2011-11-26 10:44 ` Hans Verkuil
2011-11-25 15:58 ` Manu Abraham
2011-11-25 16:03 ` Mauro Carvalho Chehab
2011-11-25 16:11 ` Manu Abraham
2011-11-24 23:25 ` Oliver Endriss
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=4ECF9C92.2040607@redhat.com \
--to=mchehab@redhat.com \
--cc=abraham.manu@gmail.com \
--cc=hans.verkuil@cisco.com \
--cc=hverkuil@xs4all.nl \
--cc=linux-media@vger.kernel.org \
--cc=obi@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;
as well as URLs for NNTP newsgroup(s).