Why isn't my QuickTime Component recognized by iMovie '08?
Q: My QuickTime Movie Import Component supporting a custom file format works with iMovie HD but is being ignored by iMovie '08. What needs to be done to have iMovie '08 recognize it?
A: My QuickTime Movie Import Component supporting a custom file format works with iMovie HD but is being ignored by iMovie '08. What needs to be done to have iMovie '08 recognize it?
iMovie '08 requires that all components supporting your media (Importers('eat
'), Exporters('spit
'), Compressors('imco
'), Decompressors('imdc
') and so on) are thread-safe in order for the application to recognize and use them. If iMovie is asked to work with content requiring the use of a component that is not thread-safe, it will ignore that content.
For a discussion and some tips on how to make your QuickTime component thread-safe, see Technical Note TN2125, 'Thread-safe programming in QuickTime'.
Once you've successfully made your component thread-safe make sure to set the cmpThreadSafe
flag in your global component flags. This indicates to QuickTime (and applications such as iMovie) that your component can safely be used from background threads.
Additionally, if you've implemented an Export Component ('spit
' component type), it must support the MovieExportFromProceduresToDataRef
selector and have the canMovieExportFromProcedures
component flag set.
These requirements are new with iMovie '08.
Listing 1 Component thread-safe and export from procedures flags.
cmpThreadSafe = 1L << 28 // Component is thread-safe canMovieExportFromProcedures = 1 << 15 // Exporter implements MovieExportFromProceduresToDataRef |
Listing 2 Adding the cmpThreadSafe
flag.
// extended 'thng' template #define thng_RezTemplateVersion 1 #include <Carbon/Carbon.r> #include <QuickTime/QuickTime.r> resource 'thng' (256) { kSomeQTComponentType, 'DEMO', 'DEMO', 0, 0, 0, 0, 'STR ', 128, 'STR ', 129, 0, 0, kMyComponentVersion, // Registration Flags componentHasMultiplePlatforms | kOtherComponentRegistrationFlags, 0, { // Add Thread Safe Flag kMyComponentFlags | cmpThreadSafe, //*** ThreadSafe Flag Here 'dlle', 512, platformPowerPCNativeEntryPoint }; }; |
Document Revision History
Date | Notes |
---|---|
2007-10-03 | New document that discusses why iMovie '08 may ignore 3rd party QuickTime Components. |
Copyright © 2007 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2007-10-03