linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Manu Abraham <abraham.manu@gmail.com>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
	Andreas Oberritter <obi@linuxtv.org>,
	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 14:03:59 -0200	[thread overview]
Message-ID: <4ECFBC6F.3080607@redhat.com> (raw)
In-Reply-To: <CAHFNz9KkVzJ8719NOJLzcGJPf_LSaSUwNr1KgqSANCtkpX--tA@mail.gmail.com>

Em 25-11-2011 13:58, Manu Abraham escreveu:
> On Fri, Nov 25, 2011 at 8:52 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
>> On Friday, November 25, 2011 14:48:02 Mauro Carvalho Chehab wrote:
>>> 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.
>>
>> I have no problem with that. Something along those lines was my initial idea anyway,
>> but I forgot about it.
>>
>> I've taken a quick look at Manu's driver: it uses very few ioctls from audio.h and
>> video.h and it seems that that driver uses the video device as a classic video output
>> device able to handle compressed video (I presume an elementary video stream).
> 
> 
> How will you handle CI+ ? The CI+ descrambler is tightly married to
> the DVB decoder.
> So you will move the CA API also to V4L, eventually ?

No. The idea is to integrate frontend, demux and ca at the Media Controller, in order
to allow complex devices to use it. This should solve the issues with:
	drivers/staging/media/cxd2099/

allowing to move it out of staging.

Regards,
Mauro


  reply	other threads:[~2011-11-25 16:04 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
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 [this message]
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=4ECFBC6F.3080607@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).