Updated: 10/2/04; 11:45:24 AM.
cremes' blog
An online journal covering my experiences with I/OKit, CoreAudio and OpenDarwin.
        

Tuesday, February 10, 2004

Final post for the night.

I finished slogging through the ACAppleIMA4Codec and ACAppleIMA4Decoder classes. It's neat how C++ classes build upon themselves and use inherited functionality, but tracing execution through the subclasses and parent classes can be difficult.

Enough grousing... I think I get it. I'm looking at the decoder first because an obvious Day One target is being able to decode the FLAC stream and output linear PCM.

Here's what I don't get. How does QuickTime know how to play an audio format it hasn't seen before? If I drop in a fully functional FLAC decoder into /Library/QuickTime, QT would have the ability to decode the stream data but would QT be aware of this? How?

From the old Component Manager I can see how an application can seek to match itself up with a codec (by passing in a componentType, componentSubType, etc., etc.) but what about the MoviePlayer application. How can it open and recognize enough information from the file to match up with the right codec?

I don't even know where to look to find these answers. I'll probably ask on quicktime-api, but I'd appreciate any pointers in the comments section or via email to me.
11:00:06 PM    comment []



Minor but important style note regarding the Apple example source.

Any method variable that is named "in" (such as "inPropertyID") indicates that this variable is being passed in to the method for some operation.

Any method variable named "out" (such as "outWritable") indicates that this variables value will be returned to the caller and used in some fashion.

[edit] Any method variable named "io" (such as "ioPropertyDataSize") indicates that the caller is passing in a value for the method to use and the method may pass back a changed value to the caller.

Makes the code easier to read and understand.
10:12:59 PM    comment []



© Copyright 2004 Chuck Remes.
 
February 2004
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29            
Jan   Mar


My Programming Project Home Pages:

Helpful Radio Links:

Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.