Re: ac15 and 2.4.5-pre6, pwc format conversion
> all at the same time). I will *not* have a crippled driver into the Lin= > ux > kernel. If this is going to be policy, fine. But then this policy will = > apply > to ALL drivers equally, not just mine because suddenly Alan realizes he= I've had the others on the list for a while too, jus this one was very easy to fix and mindbogglingly annoying > been sleeping for the past 5 years and decides to implement a policy ha= > rdly > noone ever knew existed. The policy has been there since day 1. This is a kernel not a library. You've written some very nice conversion library routines and I do hope you contribute those in userspace where they belong - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
"Nemosoft Unv." wrote: > On 25-May-01 Alan Cox wrote: > > It breaks apps by doing conversions, and it breaks important apps like H263 > > codecs not silly little camera viewers, because you trash the performance > > This is a NULL argument. First, it doesn´t break anything; I think H263 is > smart to pick a YUV format if it´s available. Second, conversion has to be > done at one point or another. If the native format of the camera is RGB, > H263 will have to convert to YUV. Wether or not this is done in kernel space > or user space doesn´t matter: it has to be done. And in case the native > format of the camera doesn´t resemble anything in V4L, you will have TWO > conversion: first, in kernel from native to V4L palette, and then in your > tool from V4L to whatever format you need, while maybe the driver could do > it all in one stage. Sorry this is a slippery slope argument and it won't wash. The kernel is intended as the arbiter between userspace and hardware, and userspace and userspace. Format conversion has nothing to do with arbitration. Format conversion in kernelspace is far less flexible than userspace: you cannot replace your algorithms at will nor fix bugs at will. You cannot support assembly optimizations for format conversions without bloating the kernel. Finally, the example you describe is invalid. If your tool is doing -two- format conversions, then [again] the tool should be fixed. The kernel most definitely should not work around stupid shortcomings of userspace software. > Anyway, I am not going to debate this any further at this point. Johannes, > please remove my webcam driver from the USB source tree, whatever. I don't see Alan or Linus accepting such a change, even if Johannes does. > until the software > YUV/RGB conversion has been removed from ALL other video devices (preferably > all at the same time). Send a patch for this instead! Format conversion should not be in the kernel... Jeff -- Jeff Garzik | "Are you the police?" Building 1024| "No, ma'am. We're musicians." MandrakeSoft | - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, Coalescing two messages in one: On 25-May-01 Alan Cox wrote: > Nope. Its been policy since 2.0. Its both v4l1 and v4l2 policy. In fact its > fairly nonsensical to handle any format conversions in kernel unless the > device outputs a unique format of its own. Oh come on. 2.0 has been out since, what? 1996? Methinks you have had plenty of time to really do something about it then. You are now simply too late. > It breaks apps by doing conversions, and it breaks important apps like H263 > codecs not silly little camera viewers, because you trash the performance This is a NULL argument. First, it doesn´t break anything; I think H263 is smart to pick a YUV format if it´s available. Second, conversion has to be done at one point or another. If the native format of the camera is RGB, H263 will have to convert to YUV. Wether or not this is done in kernel space or user space doesn´t matter: it has to be done. And in case the native format of the camera doesn´t resemble anything in V4L, you will have TWO conversion: first, in kernel from native to V4L palette, and then in your tool from V4L to whatever format you need, while maybe the driver could do it all in one stage. On 25-May-01 Alan Cox wrote: >> > that none of the sound drivers does sample rate conversion although >> > some sound chips are locked at 48kHz only. >> >> True, but a number of audio tools will break, because they don=B4t supp= > > So fix the tools > >> if you limit the number of available palettes per driver. Plus, you wil= >> l get >> severe fragmentation of which program works with which driver. Which is >> unacceptable, in my opinion (and certainly NOT the idea behind a common= >> API!) > > Fix the tools. Gee, ¨Fix the tools¨ seems to be your mantra :-(. Anyway, breaking the tools doesn´t necessarely mean they are going to get fixed; not all are being actively maintained at the moment (okay, that´s a pity; still it´s a shame). And you are probably not going to get the endless streams of mails to the webcam developers which state: ¨I upgraded my kernel to 2.4.X and my webcam broke!¨ Do you really think we will enjoy replying time after time: ¨Yes, I know, but Alan Cox told me to do so¨. No. To a lot of users, and even application developers, this just plainly sucks. >> routines, while (nearly) nothing has been said about other (USB) webcam >> drivers which have conversion routines. > > I have those in my firing line too. It has always been the policy that > format > conversions go in user space. The kernel is an arbitrator of resources it > is not a shit bucket for solving other peoples incompetence. Now you are being insulting, really. There are a lot of competent people who put a lot of time and effort into these tools. But the Video4Linux API is not complete and not completely suitable for webcams. For example, it misses the quite fundamental call to query the available palettes; nor does the V4L API give any hint that the number of palettes might be severely limited. The first tools that were created had the luxury of hardware that did all the work for them, so why not use it? Webcams are not so lucky. There´s no need to penalize them, because if the change goes through, a lot of tools will not work with webcams but with TV cards. ... Anyway, I am not going to debate this any further at this point. Johannes, please remove my webcam driver from the USB source tree, until the software YUV/RGB conversion has been removed from ALL other video devices (preferably all at the same time). I will *not* have a crippled driver into the Linux kernel. If this is going to be policy, fine. But then this policy will apply to ALL drivers equally, not just mine because suddenly Alan realizes he has been sleeping for the past 5 years and decides to implement a policy hardly noone ever knew existed. - Nemosoft - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft >> Never mind the daylight << - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
On Fri, May 25, 2001 at 03:22:44PM +0200, Nemosoft Unv. wrote: > On 25-May-01 Erik Mouw wrote: > > On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: > > The format conversion shouldn't be there in the first place. Format > > conversion is policy, so it doesn't belong in kernel. Note for example > > that none of the sound drivers does sample rate conversion although > > some sound chips are locked at 48kHz only. > > True, but a number of audio tools will break, because they don´t support that > samplerate (mpg123 0.59r, one of the more popular MP3 players, segfaults > when it has to do conversion of 44.1 KHz to 48 KHz). Recording from such a > source is usually less of a problem, although some post-processing is > then necessary (not all tools support samplerate conversion natively). I consider that a bug in mpg123. Examples for rate conversion have been available for years, so fix mpg123. > The situation for video devices is worse. 80% of the video tools will break > if you limit the number of available palettes per driver. Plus, you will get > severe fragmentation of which program works with which driver. Which is > unacceptable, in my opinion (and certainly NOT the idea behind a common API!) I consider this a bug in the tools. I've been working with real-time video on sgi IRIX machines, and they do a couple of things right: - The hardware supports a limited set of video formats. Most high end stuff (Onyx+Sirius, Octane+DV, Onyx2+DIVO) only supports a couple of YUV or YUVA formats (in studios YUV422 or YUV422+A is the most used). Low end workstations (Indy, O2) supports some "consumer" formats like RGB or Y as well. - There are a couple of libraries (vl, cl, dmedia, audio, audiofile) that allows you to do all kinds of manipulations in userland. Fortunately sgi also recognises this, and they're porting their libraries to Linux (see oss.sgi.com). > You can blame the authors of those video tools, but that´s not really fair. > The original Video4Linux API was based upon TV grabber cards. Most of them > do YUV/RGB conversion in hardware, so most tools expected that all or most > palettes would always be available, since supporting a palette would not > require any extra CPU cycles [1]. Some tools like RGB, and others YUV, so > the authors happily selected the palette of their choice and never even > considered building in functions for doing conversion. And then I am not even > talking about the RGB/BGR mess. The original V4L API was *implemented* first on TV grabber cards, but was certainy written with other video equipment in mind. I remember I looked at the API with the sgi stuff in mind, and considered it quite sane. Erik -- J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department of Electrical Engineering, Faculty of Information Technology and Systems, Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands Phone: +31-15-2783635 Fax: +31-15-2781843 Email: [EMAIL PROTECTED] WWW: http://www-ict.its.tudelft.nl/~erik/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: ac15 and 2.4.5-pre6, pwc format conversion
> From: Erik Mouw [mailto:[EMAIL PROTECTED]] > > On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: > > On 25-May-01 Norbert Preining wrote: > > > According to ac ChangeLog: > > > o Rip format conversion out of the pwc driver (me) > > > | It belongs in user space.. > > > > > > This change is included in 2.4.5-pre6, but > > > drivers/usb/pwc-uncompress.c > > > pwc-uncompress.c:185: warning: implicit declaration of function > > > `vcvt_420i_420p' > > > > That´s what you get for ripping out the guts of a driver. > Have a nice day. > > The format conversion shouldn't be there in the first place. Format > conversion is policy, so it doesn't belong in kernel. Note for example > that none of the sound drivers does sample rate conversion although > some sound chips are locked at 48kHz only. Once upon a time there was an agreement (understanding ?) that this was to be a major 2.5 change (moving video conversion from kernel drivers to user space) and that lots of apps would need to be changed for this to be successful. ~Randy - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, On 25-May-01 Erik Mouw wrote: > On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: >> That´s what you get for ripping out the guts of a driver. Have a nice >> day. > > The format conversion shouldn't be there in the first place. Format > conversion is policy, so it doesn't belong in kernel. Note for example > that none of the sound drivers does sample rate conversion although > some sound chips are locked at 48kHz only. True, but a number of audio tools will break, because they don´t support that samplerate (mpg123 0.59r, one of the more popular MP3 players, segfaults when it has to do conversion of 44.1 KHz to 48 KHz). Recording from such a source is usually less of a problem, although some post-processing is then necessary (not all tools support samplerate conversion natively). The situation for video devices is worse. 80% of the video tools will break if you limit the number of available palettes per driver. Plus, you will get severe fragmentation of which program works with which driver. Which is unacceptable, in my opinion (and certainly NOT the idea behind a common API!) You can blame the authors of those video tools, but that´s not really fair. The original Video4Linux API was based upon TV grabber cards. Most of them do YUV/RGB conversion in hardware, so most tools expected that all or most palettes would always be available, since supporting a palette would not require any extra CPU cycles [1]. Some tools like RGB, and others YUV, so the authors happily selected the palette of their choice and never even considered building in functions for doing conversion. And then I am not even talking about the RGB/BGR mess. Then along came parallel-port and USB webcams, which have a number of ´native´ formats which only sometimes match the defined V4L palettes. So some conversion, albeit trivial, is necessary. Might as well do the full conversion to various YUV/RGB palettes then, to accomodate as much programs as possible (granted, some tools are really braindead). Which is exactly what I did, and therefor I was quite sarcastic in my previous mail because my driver was targeted for removal of ALL conversion routines, while (nearly) nothing has been said about other (USB) webcam drivers which have conversion routines. Johannes Erdfeld (current USB maintainer) said he would go over the other USB drivers and see which ones are eligeble for removal of YUV->RGB conversion (which are, btw: ov511 and cpia; ibmcam flatly refuses anything except RGB24). I warned him that if he does so, he will get a lot of angry looks from users. I do agree that the kernel may not be the proper place for these kind of conversions. But as I wrote to Alan Cox earlier today that if he wanted to fix this, he should fix the problem, which are ´simplistic´ programs and a hardware specific API (V4L1, and V4L2 isn´t that much better), and not target the drivers. But it will take something really radical (like removing the V4L API altogether), that will wake up the authors of ALL video tools and ´fix´ their programs. Alan Cox certainly isn´t going to do that himself, and neither am I :) In other words: if you want to break it, break it well. Don´t smash the saucer without the cup. - Nemosoft [1] There´s an additional problem, which has plagued my driver for quite some time: TV cards can scale the image to any size, again in hardware. For webcams which only have a few fixed sizes, some padding or cropping may be required (this can usually be programmed very easily, and requires only a few extra CPU cycles). Scaling on the fly is definitely out of the question, even for me. - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft >> Never mind the daylight << - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: > On 25-May-01 Norbert Preining wrote: > > According to ac ChangeLog: > > o Rip format conversion out of the pwc driver (me) > > | It belongs in user space.. > > > > This change is included in 2.4.5-pre6, but > > drivers/usb/pwc-uncompress.c > > pwc-uncompress.c:185: warning: implicit declaration of function > > `vcvt_420i_420p' > > That´s what you get for ripping out the guts of a driver. Have a nice day. The format conversion shouldn't be there in the first place. Format conversion is policy, so it doesn't belong in kernel. Note for example that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. Erik -- J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department of Electrical Engineering, Faculty of Information Technology and Systems, Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands Phone: +31-15-2783635 Fax: +31-15-2781843 Email: [EMAIL PROTECTED] WWW: http://www-ict.its.tudelft.nl/~erik/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
> According to ac ChangeLog: > o Rip format conversion out of the pwc driver (me) > | It belongs in user space.. > > This change is included in 2.4.5-pre6, but > drivers/usb/pwc-uncompress.c > still relies on this files: Looks like I managed to send Linus a partial patch only. My fault-will fix - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, On 25-May-01 Norbert Preining wrote: > Hi! > > According to ac ChangeLog: > o Rip format conversion out of the pwc driver (me) > | It belongs in user space.. > > This change is included in 2.4.5-pre6, but > drivers/usb/pwc-uncompress.c > still relies on this files: > gcc -D__KERNEL__ -I/usr/src/linux-2.4.5.6-packet/include -Wall > -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe > -mpreferred-stack-boundary=2 -march=k6 -DMODULE -DEXPORT_SYMTAB -c > pwc-uncompress.c > pwc-uncompress.c:25: vcvt.h: No such file or directory > pwc-uncompress.c: In function `pwc_decompress': > pwc-uncompress.c:158: warning: implicit declaration of function > `vcvt_420i_rgb24' > pwc-uncompress.c:161: warning: implicit declaration of function > `vcvt_420i_bgr24' > pwc-uncompress.c:164: warning: implicit declaration of function > `vcvt_420i_rgb32' > pwc-uncompress.c:167: warning: implicit declaration of function > `vcvt_420i_bgr32' > pwc-uncompress.c:171: warning: implicit declaration of function > `vcvt_420i_yuyv' > pwc-uncompress.c:185: warning: implicit declaration of function > `vcvt_420i_420p' That´s what you get for ripping out the guts of a driver. Have a nice day. - Nemosoft (the pwc module maintainer) - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft >> Never mind the daylight << - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, On 25-May-01 Norbert Preining wrote: Hi! According to ac ChangeLog: o Rip format conversion out of the pwc driver (me) | It belongs in user space.. This change is included in 2.4.5-pre6, but drivers/usb/pwc-uncompress.c still relies on this files: gcc -D__KERNEL__ -I/usr/src/linux-2.4.5.6-packet/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=k6 -DMODULE -DEXPORT_SYMTAB -c pwc-uncompress.c pwc-uncompress.c:25: vcvt.h: No such file or directory pwc-uncompress.c: In function `pwc_decompress': pwc-uncompress.c:158: warning: implicit declaration of function `vcvt_420i_rgb24' pwc-uncompress.c:161: warning: implicit declaration of function `vcvt_420i_bgr24' pwc-uncompress.c:164: warning: implicit declaration of function `vcvt_420i_rgb32' pwc-uncompress.c:167: warning: implicit declaration of function `vcvt_420i_bgr32' pwc-uncompress.c:171: warning: implicit declaration of function `vcvt_420i_yuyv' pwc-uncompress.c:185: warning: implicit declaration of function `vcvt_420i_420p' That´s what you get for ripping out the guts of a driver. Have a nice day. - Nemosoft (the pwc module maintainer) - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft Never mind the daylight - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: On 25-May-01 Norbert Preining wrote: According to ac ChangeLog: o Rip format conversion out of the pwc driver (me) | It belongs in user space.. This change is included in 2.4.5-pre6, but drivers/usb/pwc-uncompress.c pwc-uncompress.c:185: warning: implicit declaration of function `vcvt_420i_420p' That´s what you get for ripping out the guts of a driver. Have a nice day. The format conversion shouldn't be there in the first place. Format conversion is policy, so it doesn't belong in kernel. Note for example that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. Erik -- J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department of Electrical Engineering, Faculty of Information Technology and Systems, Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands Phone: +31-15-2783635 Fax: +31-15-2781843 Email: [EMAIL PROTECTED] WWW: http://www-ict.its.tudelft.nl/~erik/ - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
RE: ac15 and 2.4.5-pre6, pwc format conversion
From: Erik Mouw [mailto:[EMAIL PROTECTED]] On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: On 25-May-01 Norbert Preining wrote: According to ac ChangeLog: o Rip format conversion out of the pwc driver (me) | It belongs in user space.. This change is included in 2.4.5-pre6, but drivers/usb/pwc-uncompress.c pwc-uncompress.c:185: warning: implicit declaration of function `vcvt_420i_420p' That´s what you get for ripping out the guts of a driver. Have a nice day. The format conversion shouldn't be there in the first place. Format conversion is policy, so it doesn't belong in kernel. Note for example that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. Once upon a time there was an agreement (understanding ?) that this was to be a major 2.5 change (moving video conversion from kernel drivers to user space) and that lots of apps would need to be changed for this to be successful. ~Randy - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
On Fri, May 25, 2001 at 03:22:44PM +0200, Nemosoft Unv. wrote: On 25-May-01 Erik Mouw wrote: On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: The format conversion shouldn't be there in the first place. Format conversion is policy, so it doesn't belong in kernel. Note for example that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. True, but a number of audio tools will break, because they don´t support that samplerate (mpg123 0.59r, one of the more popular MP3 players, segfaults when it has to do conversion of 44.1 KHz to 48 KHz). Recording from such a source is usually less of a problem, although some post-processing is then necessary (not all tools support samplerate conversion natively). I consider that a bug in mpg123. Examples for rate conversion have been available for years, so fix mpg123. The situation for video devices is worse. 80% of the video tools will break if you limit the number of available palettes per driver. Plus, you will get severe fragmentation of which program works with which driver. Which is unacceptable, in my opinion (and certainly NOT the idea behind a common API!) I consider this a bug in the tools. I've been working with real-time video on sgi IRIX machines, and they do a couple of things right: - The hardware supports a limited set of video formats. Most high end stuff (Onyx+Sirius, Octane+DV, Onyx2+DIVO) only supports a couple of YUV or YUVA formats (in studios YUV422 or YUV422+A is the most used). Low end workstations (Indy, O2) supports some consumer formats like RGB or Y as well. - There are a couple of libraries (vl, cl, dmedia, audio, audiofile) that allows you to do all kinds of manipulations in userland. Fortunately sgi also recognises this, and they're porting their libraries to Linux (see oss.sgi.com). You can blame the authors of those video tools, but that´s not really fair. The original Video4Linux API was based upon TV grabber cards. Most of them do YUV/RGB conversion in hardware, so most tools expected that all or most palettes would always be available, since supporting a palette would not require any extra CPU cycles [1]. Some tools like RGB, and others YUV, so the authors happily selected the palette of their choice and never even considered building in functions for doing conversion. And then I am not even talking about the RGB/BGR mess. The original V4L API was *implemented* first on TV grabber cards, but was certainy written with other video equipment in mind. I remember I looked at the API with the sgi stuff in mind, and considered it quite sane. Erik -- J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department of Electrical Engineering, Faculty of Information Technology and Systems, Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands Phone: +31-15-2783635 Fax: +31-15-2781843 Email: [EMAIL PROTECTED] WWW: http://www-ict.its.tudelft.nl/~erik/ - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, Coalescing two messages in one: On 25-May-01 Alan Cox wrote: Nope. Its been policy since 2.0. Its both v4l1 and v4l2 policy. In fact its fairly nonsensical to handle any format conversions in kernel unless the device outputs a unique format of its own. Oh come on. 2.0 has been out since, what? 1996? Methinks you have had plenty of time to really do something about it then. You are now simply too late. It breaks apps by doing conversions, and it breaks important apps like H263 codecs not silly little camera viewers, because you trash the performance This is a NULL argument. First, it doesn´t break anything; I think H263 is smart to pick a YUV format if it´s available. Second, conversion has to be done at one point or another. If the native format of the camera is RGB, H263 will have to convert to YUV. Wether or not this is done in kernel space or user space doesn´t matter: it has to be done. And in case the native format of the camera doesn´t resemble anything in V4L, you will have TWO conversion: first, in kernel from native to V4L palette, and then in your tool from V4L to whatever format you need, while maybe the driver could do it all in one stage. On 25-May-01 Alan Cox wrote: that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. True, but a number of audio tools will break, because they don=B4t supp= So fix the tools if you limit the number of available palettes per driver. Plus, you wil= l get severe fragmentation of which program works with which driver. Which is unacceptable, in my opinion (and certainly NOT the idea behind a common= API!) Fix the tools. Gee, ¨Fix the tools¨ seems to be your mantra :-(. Anyway, breaking the tools doesn´t necessarely mean they are going to get fixed; not all are being actively maintained at the moment (okay, that´s a pity; still it´s a shame). And you are probably not going to get the endless streams of mails to the webcam developers which state: ¨I upgraded my kernel to 2.4.X and my webcam broke!¨ Do you really think we will enjoy replying time after time: ¨Yes, I know, but Alan Cox told me to do so¨. No. To a lot of users, and even application developers, this just plainly sucks. routines, while (nearly) nothing has been said about other (USB) webcam drivers which have conversion routines. I have those in my firing line too. It has always been the policy that format conversions go in user space. The kernel is an arbitrator of resources it is not a shit bucket for solving other peoples incompetence. Now you are being insulting, really. There are a lot of competent people who put a lot of time and effort into these tools. But the Video4Linux API is not complete and not completely suitable for webcams. For example, it misses the quite fundamental call to query the available palettes; nor does the V4L API give any hint that the number of palettes might be severely limited. The first tools that were created had the luxury of hardware that did all the work for them, so why not use it? Webcams are not so lucky. There´s no need to penalize them, because if the change goes through, a lot of tools will not work with webcams but with TV cards. ... Anyway, I am not going to debate this any further at this point. Johannes, please remove my webcam driver from the USB source tree, until the software YUV/RGB conversion has been removed from ALL other video devices (preferably all at the same time). I will *not* have a crippled driver into the Linux kernel. If this is going to be policy, fine. But then this policy will apply to ALL drivers equally, not just mine because suddenly Alan realizes he has been sleeping for the past 5 years and decides to implement a policy hardly noone ever knew existed. - Nemosoft - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft Never mind the daylight - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
Nemosoft Unv. wrote: On 25-May-01 Alan Cox wrote: It breaks apps by doing conversions, and it breaks important apps like H263 codecs not silly little camera viewers, because you trash the performance This is a NULL argument. First, it doesn´t break anything; I think H263 is smart to pick a YUV format if it´s available. Second, conversion has to be done at one point or another. If the native format of the camera is RGB, H263 will have to convert to YUV. Wether or not this is done in kernel space or user space doesn´t matter: it has to be done. And in case the native format of the camera doesn´t resemble anything in V4L, you will have TWO conversion: first, in kernel from native to V4L palette, and then in your tool from V4L to whatever format you need, while maybe the driver could do it all in one stage. Sorry this is a slippery slope argument and it won't wash. The kernel is intended as the arbiter between userspace and hardware, and userspace and userspace. Format conversion has nothing to do with arbitration. Format conversion in kernelspace is far less flexible than userspace: you cannot replace your algorithms at will nor fix bugs at will. You cannot support assembly optimizations for format conversions without bloating the kernel. Finally, the example you describe is invalid. If your tool is doing -two- format conversions, then [again] the tool should be fixed. The kernel most definitely should not work around stupid shortcomings of userspace software. Anyway, I am not going to debate this any further at this point. Johannes, please remove my webcam driver from the USB source tree, whatever. I don't see Alan or Linus accepting such a change, even if Johannes does. until the software YUV/RGB conversion has been removed from ALL other video devices (preferably all at the same time). Send a patch for this instead! Format conversion should not be in the kernel... Jeff -- Jeff Garzik | Are you the police? Building 1024| No, ma'am. We're musicians. MandrakeSoft | - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
Greetings, On 25-May-01 Erik Mouw wrote: On Fri, May 25, 2001 at 10:48:12AM +0200, Nemosoft Unv. wrote: That´s what you get for ripping out the guts of a driver. Have a nice day. The format conversion shouldn't be there in the first place. Format conversion is policy, so it doesn't belong in kernel. Note for example that none of the sound drivers does sample rate conversion although some sound chips are locked at 48kHz only. True, but a number of audio tools will break, because they don´t support that samplerate (mpg123 0.59r, one of the more popular MP3 players, segfaults when it has to do conversion of 44.1 KHz to 48 KHz). Recording from such a source is usually less of a problem, although some post-processing is then necessary (not all tools support samplerate conversion natively). The situation for video devices is worse. 80% of the video tools will break if you limit the number of available palettes per driver. Plus, you will get severe fragmentation of which program works with which driver. Which is unacceptable, in my opinion (and certainly NOT the idea behind a common API!) You can blame the authors of those video tools, but that´s not really fair. The original Video4Linux API was based upon TV grabber cards. Most of them do YUV/RGB conversion in hardware, so most tools expected that all or most palettes would always be available, since supporting a palette would not require any extra CPU cycles [1]. Some tools like RGB, and others YUV, so the authors happily selected the palette of their choice and never even considered building in functions for doing conversion. And then I am not even talking about the RGB/BGR mess. Then along came parallel-port and USB webcams, which have a number of ´native´ formats which only sometimes match the defined V4L palettes. So some conversion, albeit trivial, is necessary. Might as well do the full conversion to various YUV/RGB palettes then, to accomodate as much programs as possible (granted, some tools are really braindead). Which is exactly what I did, and therefor I was quite sarcastic in my previous mail because my driver was targeted for removal of ALL conversion routines, while (nearly) nothing has been said about other (USB) webcam drivers which have conversion routines. Johannes Erdfeld (current USB maintainer) said he would go over the other USB drivers and see which ones are eligeble for removal of YUV-RGB conversion (which are, btw: ov511 and cpia; ibmcam flatly refuses anything except RGB24). I warned him that if he does so, he will get a lot of angry looks from users. I do agree that the kernel may not be the proper place for these kind of conversions. But as I wrote to Alan Cox earlier today that if he wanted to fix this, he should fix the problem, which are ´simplistic´ programs and a hardware specific API (V4L1, and V4L2 isn´t that much better), and not target the drivers. But it will take something really radical (like removing the V4L API altogether), that will wake up the authors of ALL video tools and ´fix´ their programs. Alan Cox certainly isn´t going to do that himself, and neither am I :) In other words: if you want to break it, break it well. Don´t smash the saucer without the cup. - Nemosoft [1] There´s an additional problem, which has plagued my driver for quite some time: TV cards can scale the image to any size, again in hardware. For webcams which only have a few fixed sizes, some padding or cropping may be required (this can usually be programmed very easily, and requires only a few extra CPU cycles). Scaling on the fly is definitely out of the question, even for me. - Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000 URL: neverIRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft Never mind the daylight - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ac15 and 2.4.5-pre6, pwc format conversion
According to ac ChangeLog: o Rip format conversion out of the pwc driver (me) | It belongs in user space.. This change is included in 2.4.5-pre6, but drivers/usb/pwc-uncompress.c still relies on this files: Looks like I managed to send Linus a partial patch only. My fault-will fix - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/