public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Nemosoft Unv." <webcam@smcc.demon.nl>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Craig Milo Rogers <rogers@isi.edu>,
	Xavier Bestel <xavier.bestel@free.fr>,
	Christoph Hellwig <hch@infradead.org>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Termination of the Philips Webcam Driver (pwc)
Date: Fri, 27 Aug 2004 23:42:30 +0200	[thread overview]
Message-ID: <200408272342.30619@smcc.demon.nl> (raw)
In-Reply-To: <Pine.LNX.4.58.0408271157540.14196@ppc970.osdl.org>

Greetings,

On Friday 27 August 2004 21:06, Linus Torvalds wrote:
> On Fri, 27 Aug 2004, Craig Milo Rogers wrote:
> > 	If you read Nemosoft's final driver release (which has been
> > reposted, and of which I now have a copy), you can see that he was
> > rewriting his code to move the proprietary codecs out of the kernel
> > entirely, and into user-mode libraries to be linked with consenting
> > applications
>
> That sounds quite good, in my opinion.

And not even too good to be true. In PWC 9.0 I introduced a RAW mode that 
passes the compressed stream through unmodified, together with some support 
ioctl()s.

> Whenever somebody says "accept the driver to help users", they are
> missing the big picture. A binary driver SCREWS OVER users on other
> architectures. It pretty much guarantees that those other architectures
> will never be supported. (And that's totally ignoring the maintenance
> issues even on regular x86).

Well, there's cross-compiling. You're probably not aware of this, but the 
most recent PWC major version increase included some changes that would 
make it a lot easier for me to cross-compile the real decompressor core to 
any platform that GCC supports. The code is (was) turned into a library 
(.a) which can be used as a user-program library, or turned into a kernel 
module with a bit of glue code. So far, 6 different platforms in various 
'flavors' were supported, and the number was growing. 

Still not a perfect solution, but it means less and less people were 
'screwed over', with relatively little effort (all they had to do was point 
me to a cross-compiler toolchain...). I think I was supporting more 
platforms than nVidia ever will :-P

> > 	Linus, would you adress a moot issue, please?  If Nemosoft (or
> > someone else) were to release some of the codecs in question as one or
> > more open-source loadable kernel modules (similar to sound card
> > support modules in the ALSA system), while other codecs remain
> > binary-only loadable kernel modules (distributed outside the kernel,
> > but using the same hook as the open-source loadable modules), would
> > the pwc driver and codec extension hook be allowable, in your opinion,
> > please?
>
> I'd be leery.

[snip]

> So I'd personally much prefer the user mode approach. At that point it's
> still closed-source, but at least there is not even a whiff of a "hook"
> inside the kernel.

My problem with that is that it makes using such cams a lot harder for both 
users and developers of webcam tools. Basicly, every tool that wanted to 
use webcam X that has some binary-only library would need to specifically 
support it, use probing routines, check which formats are supported, set up 
the decompressor, push the data through it, etc. Conversely, every user 
that wanted to use webcams X, Y and Z would need to check first if they are 
all supported by the program(s) he would like to use.

The point is, the current API for video devices is the Video4Linux of 
Video4Linux2 interface. It's relative simple one, but it _works_ the same 
on all hardware, either TV card or webcam. What you're proposing is 
fragmenting that support into programs that support X, Y or Z, or only a 
subset, or none, based on whether or not the developer of said tool had the 
time, skill and desire to incorporate these libraries into their program.

So instead of putting the support burden on one person (me), you want to 
distribute it among a few dozen software developers. I don't think that's 
really smart. It also takes the fun out of hacking a small webcam tool 
together for whatever purpose, if you need a ton of extra tools, libraries 
and program just to get one image.

A solution could be something like JACK for the ALSA sound cards, but then 
for video. But you need a compelling reason, and somebody (somebodies) to 
design, write and maintain it.

Anyway... wether or not PWC was illegal under the GPL, technically 
undesirable or just not good enough, is irrelevant now. The damage has been 
done, and that's just sad.

 - Nemosoft



  parent reply	other threads:[~2004-08-27 21:48 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-26 23:32 Termination of the Philips Webcam Driver (pwc) Craig Milo Rogers
2004-08-26 23:47 ` Christoph Hellwig
2004-08-27  0:03   ` Linus Torvalds
2004-08-27  8:43     ` Christoph Hellwig
2004-08-27  9:48       ` Craig Milo Rogers
2004-08-27 17:28       ` Linus Torvalds
2004-08-27 17:37         ` Xavier Bestel
2004-08-27 18:13           ` Linus Torvalds
2004-08-27 18:55             ` Craig Milo Rogers
2004-08-27 19:06               ` Linus Torvalds
2004-08-27 19:34                 ` Jeff Garzik
2004-08-27 21:42                 ` Nemosoft Unv. [this message]
2004-08-27 22:49                   ` Marek Habersack
2004-08-27 23:40                     ` Dmitry Torokhov
2004-08-28 17:42                       ` Pavel Machek
2004-08-27 23:04                   ` Craig Milo Rogers
2004-08-27 21:59                 ` non-i386 architectures (Re: Termination of the Philips Webcam Driver (pwc)) Daniel Egger
2004-08-27 19:06               ` Termination of the Philips Webcam Driver (pwc) Martin J. Bligh
2004-08-27 19:12             ` Alex Belits
2004-08-27 21:36             ` Anton Altaparmakov
2004-08-27 21:42               ` Anton Altaparmakov
2004-08-27 22:26                 ` Geert Uytterhoeven
2004-08-27 21:52               ` Linus Torvalds
2004-08-27 22:22                 ` Jeff Garzik
2004-08-28  0:45                   ` Paul Jakma
2004-08-28  0:53                     ` Craig Milo Rogers
2004-08-28 10:29             ` Norbert van Nobelen
2004-08-29 14:37         ` Alan Cox
2004-08-28  9:26     ` chris
2004-08-29 14:41       ` Alan Cox
2004-08-29 14:36     ` Alan Cox
2004-08-29 18:09       ` Linus Torvalds
2004-08-29 18:57         ` Alan Cox
2004-08-29 19:40         ` Greg KH
2004-08-30  9:35         ` Craig Milo Rogers
  -- strict thread matches above, loose matches on Subject: below --
2004-08-27 10:14 Koos Vriezen
2004-08-27 11:03 ` Marcus Metzler
2004-08-28  2:16 lkml-mail
2004-08-28  5:30 ` Greg KH

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=200408272342.30619@smcc.demon.nl \
    --to=webcam@smcc.demon.nl \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rogers@isi.edu \
    --cc=torvalds@osdl.org \
    --cc=xavier.bestel@free.fr \
    /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