All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Oberritter <obi@linuxtv.org>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [RFCv2 PATCH 12/12] Remove audio.h, video.h and osd.h.
Date: Fri, 25 Nov 2011 02:09:26 +0100	[thread overview]
Message-ID: <4ECEEAC6.4080208@linuxtv.org> (raw)
In-Reply-To: <4ECE8C06.2070302@redhat.com>

On 24.11.2011 19:25, Mauro Carvalho Chehab wrote:
> Em 24-11-2011 16:07, Andreas Oberritter escreveu:
>> On 24.11.2011 18:58, Mauro Carvalho Chehab wrote:
>>> Em 24-11-2011 15:51, Andreas Oberritter escreveu:
>>>> On 24.11.2011 18:44, Hans Verkuil 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.
>>>>>
>>>>> And really remove them at some point in the future.
>>>>>
>>>>> But the important thing to realize is that the ABI hasn't changed (unless
>>>>> I made a mistake somewhere).
>>>>
>>>> So why don't you just leave the headers where they are and add a notice
>>>> about the new V4L API as a comment?
>>>>
>>>> What you proposed breaks compilation. If you add a warning, it breaks
>>>> compilation for programs compiled with -Werror. Both are regressions.
>>>
>>> I don't mind doing it for 3.3 kernel, and add a note at
>>> Documentation/feature-removal-schedule.txt that the
>>> headers will go away on 3.4. This should give distributions
>>> and app developers enough time to prevent build failures, and
>>> prepare for the upcoming changes.
>>
>> Are you serious?
>>
>> Breaking things that worked well for many years - for an artificially
>> invented reason - is so annoying, I can't even find the words to express
>> how much this sucks.
> 
> Andreas,
> 
> All the in-kernel API's are there to support in-kernel drivers.
> 
> Out of tree drivers can do whatever they want. As you likely know, several STB 
> vendors have their own API's. 
> 
> Some use some variants of DVBv3 or DVBv5, and some use their own proprietary
> API's, that are even incompatible with DVB (and some even provide both).
> 
> Even the ones that use DVBv3 (or v5) have their own implementation that diverges
> from the upstream one.
> 
> Provided that such vendors don't violate the Kernel GPLv2 license where it applies, 
> they're free do do whatever they want, forking the DVB API, or creating their own
> stacks.

You're encouraging people to do their own stuff instead of using and
contributing to a common API?

Anyway, you're talking about the DVB API as a whole, which of course
diverges a little bit from upstream in every implementation, because
patches to enhance the API are generally rejected if no in-kernel driver
uses the new function/flag/whatever at the time of its introduction. I
would have submitted many more API enhancements in the past, if you
wouldn't force that strict policy. Instead I usually have to wait until
another developer does the same job and then merge our work.

On the other hand, S2API was merged upstream with many unused "DTV_xxx"
commands and unused structs in the public header, being incomplete at
the same time (e.g. missing DiSEqC support and signal quality
measurements functions).

> So, keeping the in-kernel unused ioctl's don't bring any real benefit, as vendors
> can still do their forks, and applications designed to work with those hardware 
> need to support the vendor's stack.

Can you please list all unused ioctls? As you know, av7110 uses some of
them and Manu is currently developing another open source driver using
the audio and video APIs. Please don't pretend that all ioctls are
unused to justify a removal of the whole API.

> On the other hand, keeping an outdated API that doesn't fit well for the vendors
> that want to upstream their STB drivers is bad, as it creates confusion for
> them, and prevents innovation, as they may try to workaround on the limitation of
> an API designed for the first generation DVB standards.

Can you elaborate which parts of the current generation DVB standards
limit the use of the audio and video API, apart from the missing video
codec flags, which were sent to the mailing list as a patch in 2006?

As already said in another mail today, a comment explaining the
existence and benefits of the V4L video decoder API at the top of
linux/dvb/{audio,video}.h would stop the confusion you're talking about.

Btw.: How does V4l replace osd.h and audio.h? I know that osd.h has been
deprecated for many years, but all reasoning I've heard in this thread
until now was that V4L was superior to the DVB video decoder API.

> That's what Hans patches are addressing.
> 
> If you have a better approach, feel free to suggest it, provided that, at the end,
> the API that aren't used by non-legacy drivers are removed (or moved to driver's
> specific ioctl's).

OK. Can we agree on waiting for Manu's "non-legacy" driver to get
merged? After that we can remove unused ioctls - and only those. I
assume that "legacy" in your sentence means "unable to decode H.264",
which is a little bit odd, considering that large amounts of SDTV STBs
are still being sold worldwide and considering that analogue TV is still
being used in more than a handful of locations.

Regards,
Andreas

  parent reply	other threads:[~2011-11-25  1:09 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 [this message]
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
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=4ECEEAC6.4080208@linuxtv.org \
    --to=obi@linuxtv.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.