cremes' CoreAudio and QuickTime Blog
Track the work I'm doing on a QuickTime Component to support the FLAC lossless compression codec via CoreAudio




Project Downloads:



My Other Projects:

External Links:














Click to see the XML version of this web page.

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

 

Monday, February 16, 2004
 

Oh, my head is throbbing. I've been banging it against the QT wall for the past two days. I'll be taking a break from this project today to work on my other project.

Here's an excerpt from a thread on the quicktime-api list. I'm having trouble getting the component to match by filename extension. This is necessary since FLAC files won't contain any regular QT data as they get shuffled around from platform to platform. The only way to tell it is FLAC would be if it is called "some_audio_file.flac". But QT isn't being very cooperative and it's pissing me off.

--- start message ---
From: cremes@mac.com
Subject: Re: QT Movie Import, filename matching
Date: February 16, 2004 11:02:47 AM CST
To: quicktime-api@lists.apple.com

On Feb 15, 2004, at 9:42 PM, chuck remes wrote:

>On Feb 15, 2004, at 5:50 PM, Steve Nicolai wrote:

>>QuickTime uses the thng and thga resources to find the importers. The component type must be 'eat '. The component subtype is
>> a finder file type if the component flag movieImportSubTypeIsFileExtension is not set, or an uppercase version of the file
>> extension if movieImportSubTypeIsFileExtension is set.
>>
>>If you have both a file type and an extension that you want to support, you need two components, generally a thng and a thga.
>>
>>Speculating on what QuickTime does internally, if it is given a file type, it will first search for a component:
>>
>>type 'eat '
>>subtype
>>manufacturer 0
>>flags 0
>>flagsMask movieImportSubTypeIsFileExtension
>>
>>If it doesn't find a component or a file type is not given, it then looks for an extension on the file. If it finds one, it then searches
>> for:
>>
>>type 'eat '
>>subtype
>>manufacturer 0
>>flags movieImportSubTypeIsFileExtension
>>flagsMask movieImportSubTypeIsFileExtension
>>
>>The mcfg resource isn't used by QuickTime to find components. I think it's used to register with Windows that QuickTime
>> supports these file types.
>>
> I've double-checked all of this and it appears just as you outlined. I'm now concerned that the reason it isn't working is due to
> some incorrect setting within the XCode project itself. I created the project from scratch and added files to it rather than cloning
> the ElectricImage project and replacing the files.
>
>I'd like to put a breakpoint in the code where QT interfaces to this component. Is there a recommended way of doing this? I've read
> all the archived messages on this list and coreaudio-api for using gdb with QT components, but none of them spelled out how to
> trap entry into the component. In other words, I'm not 100% certain this component is executing when the open file dialog comes
> up.

The experiment continues. I "cloned" the ElectricImage sample and added my files to it. After building, still no joy on matching by filename. At least I eliminated the possibility that it is related to my XCode project settings.

My next thought was to start changing things in the original ElectricImage sample until I broke the filename match. Imagine my surprise when it broke after I modified the EI_GraphicsImport.r resource file. This resource file contains a 'thng' and 'thga' resource of type 'grip' just like the EI_MovieImport.r resource file contains one of type 'eat '. However, the 'grip' resource seems to be the one controlling whether or not the OpenFile dialog box matches on the filename. If I remove this file from the project and compile the project with the MovieImporter providing the only 'thng' and 'thga' resources of type 'eat ', it will NOT match on filename. Adding it back in gets the match to work again.

I tried flipping the resource IDs so the MovieImport 'eat ' resource had a lower ID, but it didn't help.

So what I've learned from this is that I can't match by filename without a 'thng' and 'thga' resource that registers itself as type 'grip'. Having a properly configured 'thng' and 'thga' of type 'eat ' is insufficient for mapping by filename.

I am well and truly stuck. I'm trying to create an audio component, so the concept of a 'grip' component doesn't fit at all. Help?

cr
_______________________________________________
quicktime-api mailing list | quicktime-api@lists.apple.com
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/quicktime-api
Do not post admin requests to the list. They will be ignored.

--- end message ----

11:31:12 AM    comment []




Click here to visit the Radio UserLand website. © Copyright 2004 Chuck Remes.
Last update: 10/2/04; 11:47:30 AM.
This theme is based on the SoundWaves (blue) Manila theme.
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