Question

I have a 64-bit Mac OS X Cocoa app that uses AV Foundation for most of its media I/O needs, however I would like it to also be able to read other formats, most notably Motion JPEG inside of an AVI container, but possibly others too (other codecs and formats supported by 3rd party QuickTime plug-ins). This of course leads me to QTKit, since QuickTime itself isn't available to 64-bit apps.

This is a video processing and editing app, so I need to grab the decoded sample data.

I have already gotten around the largest performance issues with frame grabbing in QTKit. For those interested, you want to step the QTMovie to the desired frame sample time, then grab it with QTMovie's -frameImageAtTime with the QTMovieFrameImageSessionMode attribute enabled, and set QTMovieFrameImageType to give you a CVPixelBufferRef instead of an NSImage.

However, I'm at a loss when it comes to obtaining the decoded PCM audio data. This was pretty easy back in the QuickTime 7 days, but of course I can't call the QuickTime API from a 64-bit app. I don't see anything relevant in the QTMovie class, or if I go down to the QTTrack level either. So... How does a 64-bit app get PCM audio from QTKit or QuickTime?

Thanks

Was it helpful?

Solution

I'm just struggling with a similar problem. The QT API parts which are necessary to extract the audio data are simply not available to 64-bit applications. All relevant posts to get any audio data refer to MovieAudioExtractionFillBuffer and the like.

My solution will be an application and project split, thus I will have a 32-bit audio extractor process and a 64-bit main application process using some IPC memory transfer to get the audio data around.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top