Skip to main content
Topic: QuickTime FLAC component? (Read 107543 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

QuickTime FLAC component?

Reply #25
There doesn't seem to have been any visible progress in the last 6 months, so I think we'll need to make things more appealing to developers.

I think we should create a 'bounty' for someone to implement a FLAC Quicktime component. I'd be willing to contribute $10 - what would other people pay?

We'd need a PayPal account or something for people to donate to, and someone trustworthy to manage it.

If someone claimed to have implemented a working component, there should be a set of tests to run through to verify that it works properly.

QuickTime FLAC component?

Reply #26
Quote
There doesn't seem to have been any visible progress in the last 6 months, so I think we'll need to make things more appealing to developers.

I think we should create a 'bounty' for someone to implement a FLAC Quicktime component. I'd be willing to contribute $10 - what would other people pay?

We'd need a PayPal account or something for people to donate to, and someone trustworthy to manage it.

If someone claimed to have implemented a working component, there should be a set of tests to run through to verify that it works properly.

I would be willing to contribute to this bounty fund.

We might need to come up with a better system for managing it, though.  It seems a little risky using Paypal, because like you said, we would have to find someone trustworthy to own the account.

QuickTime FLAC component?

Reply #27
Some ideas for what the requirements should cover:

Must be able to decode a 3 minute FLAC file in under x seconds.
Must be able to encode a 3 minute AIFF file in under x seconds.
Must be able to decode on-the-fly with a maximum CPU usage of x% on a 1GHz iMac G4.
Encode, and subsequent decode must result in a file which is bit-for-bit identical to the original (use MD5 checksums to confirm).

What else?

QuickTime FLAC component?

Reply #28
Quote
Must be able to decode a 3 minute FLAC file in under x seconds.
Must be able to encode a 3 minute AIFF file in under x seconds.

That makes no sense. These parameters depend more on CPU and compiler optimizations than the way the coder writes the QuickTime interface

The third requirement also is not up to the plugin developer. Unless you expect him to write altivec optimizations to the FLAC code.

Besides, if the code runs slow on PowerPC for some reason, it's not his fault, and jcoalson should look into it.


More realistic requirements would be: tag reading and writing, soundcheck support (maybe some way to do replaygain <-> soundcheck on the fly), etc.

QuickTime FLAC component?

Reply #29
Quote
More realistic requirements would be: tag reading and writing, soundcheck support (maybe some way to do replaygain <-> soundcheck on the fly), etc.

Sound Check is only an iTunes thing, and I don't think it can read from QuickTime (it certainly does not try to do SoundCheck on my Vorbis files, which are being treated as QuickTime movies). I have no idea of how extensible iTunes is format-wise.

Tag reading/writing is certainly possible, though.

QuickTime FLAC component?

Reply #30
Is there any reason for Apple not to adopt a FLAC option because of the GPL?

-jack-

QuickTime FLAC component?

Reply #31
Quote
Is there any reason for Apple not to adopt a FLAC option because of the GPL?

FLAC is BSD'd

Apple didn't adopt FLAC because they decided to go the proprietary route, plain and simple.

QuickTime FLAC component?

Reply #32
Yes, but as ALE/ALAC is used in the AirPort Express, there might also be some CPU/memory constraints that maybe other codec would not meet.

QuickTime FLAC component?

Reply #33
I have been working on a FLAC component for some time now, so here's the satus of the project:

- importer works but takes about 3 seconds to import a 20MB file. I could make instantaneous by writing a custom media handler, but then it would not be possible to edit the audio track. I have considered using idle importing but there is very little doc about it and no working example, so I don't know whether it would be possible.
- decoder is ok
- no exporter yet

to do :
- fix a bug which causes an export to AIFF for example to miss the first two seconds of the file
[update : fixed]
- add support for vorbis comments (by the way, I don't think it will be possible to uptate them from iTunes since iTunes doesn't even try to edit QuickTime files. But a script would be possible)
[update : done but this doesn't help with iTunes]
- iTunes doesn't recognize FLAC files right now, it may be because of the absence of metadata
- exporter component
- maybe altivec optimizations of the FLAC API

I hope to adress some of these issues within the next few days, since I'm leaving on July the 29th and will not be able to do further work on this project until September.

QuickTime FLAC component?

Reply #34
Quote
I have been working on a FLAC component for some time now

cool, what will the license be?

Quote
- maybe altivec optimizations of the FLAC API

someone has sent a patch that I have not yet applied that has an altivec version of LPC synthesis, and the author says he has some more.  I am going to try to include it in the upcoming beta if it doesn't take too long to get integrated into the build system.

Josh

QuickTime FLAC component?

Reply #35
Quote
Quote
I have been working on a FLAC component for some time now

cool, what will the license be?


The same as the FLAC core, I think, i.e. open source. Now I have absolutely no notions of what GPL or BSD or whatever exactly mean, I thought I'd just release the source code along with the binary 

Quote
Quote
- maybe altivec optimizations of the FLAC API

someone has sent a patch that I have not yet applied that has an altivec version of LPC synthesis, and the author says he has some more.  I am going to try to include it in the upcoming beta if it doesn't take too long to get integrated into the build system.


That would be nice, for export to flac and from flac at least. The CPU load during playback is already decent and during importing the component doesn't need to decode frames, all it does is look for frame sync codes in the file and parse frame headers.

The biggest issue is currently the fact that iTunes does not recognize flac files, although my codec is based on the OggVorbis codec which is perfectly recognized in iTunes. I'll have to find out why it is so.

The second biggest issue is loading time : with all optimizations turned on it takes about 3 seconds to import 20 MB, and playback is impossible before the file has been completely imported. That will lead to gaps between tracks, as with OggVorbis files. Loading time for large FLAC files would not be acceptable either. Some parts of my code can still be further optimized but I don't expect it to get much faster.
One solution would be to use idle importing, thus allowing playback before the importing is complete, but I have never seen working sample code or decent documentation about this method. I am currently discussing this issue on the quicktime-api mailing list.
I'll post a beta-release as soon as the component is compatible with iTunes.

QuickTime FLAC component?

Reply #36
Quote
Quote
Quote
I have been working on a FLAC component for some time now

cool, what will the license be?

The same as the FLAC core, I think, i.e. open source. Now I have absolutely no notions of what GPL or BSD or whatever exactly mean, I thought I'd just release the source code along with the binary 

perfect.  the FLAC libraries are BSD.

Quote
Quote
Quote
- maybe altivec optimizations of the FLAC API

someone has sent a patch that I have not yet applied that has an altivec version of LPC synthesis, and the author says he has some more.  I am going to try to include it in the upcoming beta if it doesn't take too long to get integrated into the build system.

That would be nice, for export to flac and from flac at least. The CPU load during playback is already decent and during importing the component doesn't need to decode frames, all it does is look for frame sync codes in the file and parse frame headers.

I tried the first altivec decode optimization: the testing of 400MB of 'flac -5' files dropped from 180 sec to 105 sec (42%), and that was just optimizing one routine.  so it looks promising.

Josh

QuickTime FLAC component?

Reply #37
Here's an alpha version of the component.

Note that it really deserves the name "alpha version" !

The component for MacOSX only right now (it uses Mach-O). It should be easy to compile a Carbon, MacOS 9 compatible version but I haven't had time to check it out.

The importer and decoder should decode successfully standard FLAC stream, ie 16 bits 44100 Hz and a reasonable blocksize. It has not been tested with any other sample size or rate, nor with variable blocksize streams.
There is currently a bug with the metadata, some names (with spaces in them ?) are appended with random characters. I haven't had time to fix this for the alpha.
Even though my test files decode without problems, there are still known (and certainly unknown too) possiblities where it will fail to decode the file, which might crash or freeze QuickTime Player. Use it at your own risks.
Because of all this do not use it for important data. There is no way it could modify the original files since it opens them in read-only mode, but there might be errors in the resulting files when you save or export the movie in QuickTime, so keep the originals anyway.

Progressive importing support is on the way (in fact it works but it is still slow and very heavy on the CPU, I'll have to optimize it), but I have disabled it in the alpha. You'll have to wait for the entire file to load before playing it (currently about 3 seconds for a 20MB / 2:30 file).

There is no encoder yet.

As for iTunes support :
Right now it is not possible to drag and drop a flac file on the iTunes Window. Someone from Apple told me that this was not possible for third party codecs, except for "a few hard-coded exceptions". He told me to file a bug report concerning this. I'll ask the author of the Ogg Vorbis plugin about it, since the OggVorbis codec works in iTunes.
So to use FLAC files in iTunes, the best solution is currently to open them in QuickTime (Pro ?) Player and save them as a QuickTime movie (there is no reencoding, it is only a reference to the original FLAC file, like an alias, so it will be very small, some kB). This fixes the issue of the loading time too. There used to be an utility which did the same for Ogg files, as far as I remember, maybe it can do it for FLAC files too.
Note that to open a FLAC file in QuickTime you have to hold command-option when dropping the file on QuickTime Player.

I have not yet included the source code since part of it is still a bit of a mess and since I have not yet updated the copyright notices from the original OggVorbis Component files, so I'm not sure about license issues. I'll make it available as soon as I come back and clean it up, sorry for the inconvenience.

Thanks to Steve Nicolai from the QuickTime component project for his help and for making the source code of his component available, and to Kevin Calhoun from Apple on the quicktime-api dev list.

I'm leaving on vacation today and will be away from my computer and from internet until late August, so I won't be able to answer e-mail or to work on the project during this time. Expect an update in September... sorry for the delay.

Josh -> I will be glad to update to a new version of the library with Altivec support. I use a slightly modified version of the current API but this shouldn't be a problem.

QT FLAC Decoder (alpha version) : http://damien.drix.free.fr/FLACDecoderAlpha.zip

Please don't give this link to everybody you know, this is a beta test and it IS potentialy buggy software. Anybody who installs it should come back here and check for updates until a stable version is released.

You can send mail to malgolad@free.fr for feedback, but anyway I won't be able to read your messages until I come back.

'til september,
Damien

QuickTime FLAC component?

Reply #38
Alright, I will give it a try if there is a Windows version available?

QuickTime FLAC component?

Reply #39
Hey, it works!   

Thanks Damien (and Josh).  The prospect of managing my FLAC collection in iTunes has me drooling all over my PowerBook.

QuickTime FLAC component?

Reply #40
cool, I will try it out once FLAC 1.1.1 goes out.  thanks.

Josh

QuickTime FLAC component?

Reply #41
I've tried this out and it works great!
It seems much less processor intensive listening to FLAC files in iTunes, than using MacAmp Lite X.
Would it be possible to write an Applescript that opens multiple FLAC files and saves them as Quicktime movies? When AAC first came out, I remember a program that did a similar thing with Quicktime. At the time iTunes couldn't handle AAC, and this program (I think it was an Applescript) was the only way to convert multiple files.

Thanks for the great work!

Andy

QuickTime FLAC component?

Reply #42
Oh this soooo rules!  THANK YOU DDRX, YOU ROCK!

BTW, I noticed that you can open the flac files in QT via the Open in New Player... menu selection as well (there is a bit of a pause for large files).  I also noticed there is an import function in iTunes, but this too does not work (I was looking for a better work around for getting the flac files into iTunes without first saving them in QT).  But hey, I can now listen to flac files in iTunes, yippeeeee!!!!!

Now just imagine having your flac files on your iPod and listening to them.  Better yet, imagine throwing your DAT machine away (or selling it) and replacing it with your iPod (record a show with your iPod and encode directly to a flac file).  That's the ultimate for me.

Again, DDRX YOU ROCK!

QuickTime FLAC component?

Reply #43
Can there be a windows version? Please......

QuickTime FLAC component?

Reply #44
I'm back from holiday now
Thanks to all for the feedback !
I'm going to have a look at the bugs you reported, including the Toast bug (the decoding fails and the resulting AIFF files to be burned to the disk are silent).
I hope to post an update in a couple of weeks. Meanwhiles, here's the current source code :
http://damien.drix.free.fr/FLACDecoderAlpha1_Source.zip (6.3 MB)
It is still a bit untidy, especialy for the decoder and the general structure of the project

As for the Windows version, the source should compile out-of-the-box but I have absolutely no experience in compiling anything for windows or setting the compilation parameters... I'll check it out when the component is more stable, I think.

Damien

QuickTime FLAC component?

Reply #45
I'd like to add my voice of appreciation for this plug-in. It works great! What I like best is that my flac files now are playable from the preview pane, saving me the trouble of opening them up in MacAmp to listen to them. This helps tremendously when organizing and checking my many flacs, for example when checking songs against text files, or checking song breaks, etc.

I look forward to the day when I can listen to flacs in iTunes. Many thanks.

QuickTime FLAC component?

Reply #46
Quote
As for iTunes support :
Right now it is not possible to drag and drop a flac file on the iTunes Window. Someone from Apple told me that this was not possible for third party codecs, except for "a few hard-coded exceptions". He told me to file a bug report concerning this. I'll ask the author of the Ogg Vorbis plugin about it, since the OggVorbis codec works in iTunes.
So to use FLAC files in iTunes, the best solution is currently to open them in QuickTime (Pro ?) Player and save them as a QuickTime movie (there is no reencoding, it is only a reference to the original FLAC file, like an alias, so it will be very small, some kB). This fixes the issue of the loading time too. There used to be an utility which did the same for Ogg files, as far as I remember, maybe it can do it for FLAC files too.
Note that to open a FLAC file in QuickTime you have to hold command-option when dropping the file on QuickTime Player.


One program that you can use to automate this a little is QTConvert

Hope this helps some,
Cheers,
Paul

QuickTime FLAC component?

Reply #47
Has anyone had any joy compiling the source for windows yet?

QuickTime FLAC component?

Reply #48
Hello,

I think I've corrected the Toast bug and the metadata bug
I'll post an update soon, there are still some other bugs to correct.

As for iTunes support, I can't do it (no way on the QuickTime side) but maybe you can : file bug reports complaining about the fact that iTunes doesn't support 3rd party QuickTime codecs and FLAC files in particular. That's how OggVorbis came to be recognized in iTunes.

Damien

QuickTime FLAC component?

Reply #49
Quote
As for iTunes support, I can't do it (no way on the QuickTime side) but maybe you can : file bug reports complaining about the fact that iTunes doesn't support 3rd party QuickTime codecs and FLAC files in particular. That's how OggVorbis came to be recognized in iTunes.


I've put in my request.... have you? If not Listen to 'da man'  (Damien that is...) and request support for all supported Quicktime formats in iTunes. Here is the link for the lazy... :-)
http://www.apple.com/feedback/itunes.html

 
SimplePortal 1.0.0 RC1 © 2008-2019