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: 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

DateNotes
2007-10-03First Version

Posted: 2007-10-03


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.