Ogg Vorbis (again another fp decoder)

Posted by: Shonky

Ogg Vorbis (again another fp decoder) - 08/05/2002 02:59

Found another fixed point decoder by a guy called Nicolas Pitre (See his post to the vorbis-dev list here).

Downloaded, compiled pretty much straight out of the box and got this:


sh-2.03# time ./decoder < Feeder\ -\ Yesterday\ Went\ Too\ Soon\ -\ 02\ -\ Insomnia.ogg | ./pcmplay

Bitstream is 2 channel, 44100Hz
Encoded by: Xiphophorus libVorbis I 20011217

Done.

real 2m58.496s
user 0m51.710s
sys 0m10.660s
sh-2.03#
sh-2.03#


Sounded OK but I can't easily try it on decent speakers since I don't have my car at the moment. Took about 33% CPU which is pretty good too.

I do see the possibility of having some sort of Hijack hack to intercept an .OGG and decode it into a .WAV transparently which can be played back by the standard player software. I think I remember Mark mentioning something like this would be possible, but I can't seem to find it at the moment.... Aaaahhh here it is and it sounds like we have most of the pre-requisites he mentions...
Posted by: peter

Re: Ogg Vorbis (again another fp decoder) - 08/05/2002 03:40

Found another fixed point decoder by a guy called Nicolas Pitre

Yes, he's the guy that did lots of the StrongARM work on the Linux kernel. The -np in the name of car-player kernels is Nicolas Pitre, as we used his patches.

Downloaded, compiled pretty much straight out of the box

Yes, I did too. It sounds pretty good. 30% CPU is a bit more than MP3 decoding takes, but not prohibitively more.

NP's code is GPL, so we couldn't release it in the car player (we'd use the Xiph one that Emmett offered us), but something tells me it'll be useful for integration testing before the paperwork for the Xiph one gets sorted out. (Presumably the API is pretty much the same for the -np library, the trad Xiph library, and the Tremor library.)

Peter
Posted by: Shonky

Re: Ogg Vorbis (again another fp decoder) - 08/05/2002 03:49

Aaaahhh. I have seen the -np stuff a fair bit over on the LART list. I didn't put two and two together though.

I'm not really up on GPL exactly but can you not use it because it would require the rest of the player to become GPLed too? If so can it be some sort of library like it appears you have for WMA?

I realize the Xiph method is probably going to happen, but I think as Rob said in one of the other Vorbis threads, you guys are trying to get the next beta (or next stable release) out before anything else gets added. I just though it could be possible - and I like a challenge sometimes (especially while I wait 20-30 minuts for accuracy tests here at work at night)
Posted by: danthep

Re: Ogg Vorbis (again another fp decoder) - 13/05/2002 06:33

There are two GPL licenses the GPL and the LGPL.

If you want to incorporate (cut and paste code, or link to a library or etc etc) GPL code, then you must agree to release your code that uses the GPL code under the GPL license.

Some people like the GPL, but want to make useful libraries of code available for use by people who are not releasing their code under the GPL. Thus there is the LGPL. Under the LGPL you can link to LGPLed code without having to license your code under the GPL.

So, if the np decoder is LGPLed they could use it. If it is GPLed they cant.

Of course if the empeg software had a nice load-plugins-at-runtime interface, there would be nothing to stop end users compiling the GPLed code and placing on the player themselves.
Posted by: Roger

Re: Ogg Vorbis (again another fp decoder) - 13/05/2002 06:45

load-plugins-at-runtime

Technically, that would be in violation of the GPL as well. It prohibits dynamic linking. We could skirt the issue by loading stuff into a separate (GPL'ed) process, but that's just fancy footwork, and probably violates the spirit, if not the letter, of the GPL.

Posted by: danthep

Re: Ogg Vorbis (again another fp decoder) - 13/05/2002 07:33

Technically, that would be in violation of the GPL as well. It prohibits dynamic linking.

Yeah i've seen companies that do that seperate process stuff and agree it violates the spirit.

But my point was, and i'm no expert at this, the empeg guys wouldn't be in violation because the empeg code wouldn't be linking or loading any GPLed code. The empeg software wouldn't have the ogg decoder, it would just have an interface for 3rd parties to use.

The *user* would be the one who introduces the GPLed code to the system, when they compile and install the GPLed ogg decoder plugin themselves.

Also, and again i'm not 100% on this, but i think as they are not distributing binaries of the ogg decoder, but simply using it for their own personal use, the user would not be violating the GPL either, as it only kicks in when you start to distribute binaries of GPLed code.

Infact, if someone distributed binarys of just the plugin, with source available, would they be in violation? The plugin by itself, would just be an implementation of an interface, it wouldn't include any non-GPL code.