TechnologyDec 30, 2008

DivX Component for QuickTime not compatible with iPhone Simulator

Vikalp Jain

If you updated your iPhone SDK to 2.2 and find that movies no longer play in the iPhone Simulator, it is probably because of the QuickTime DivX component. With the most recent SDK (2.2) this particular component is incompatible with the iPhone Movie Player. You will likely see a message like:

[code lang=”objc”]Error loading /Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder:  dlopen(/Library/QuickTime/DivX Decoder.component/Contents/MacOS/DivX Decoder, 262): Symbol not found: _SCDynamicStoreCopyConsoleUser

Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis

Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration[/code]

Unfortunaltely, the only way to fix this is to delete the two offending files: DivXEncoder and DivXDecoder. These files should be in /Library/QuickTime

If you are still having trouble playing movie files, check that the file format is mp4 and conforms to the following specification (from Apple’s documentation for MPMoviePlayerController):

  • H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. Note that B frames are not supported in the Baseline profile

  • MPEG-4 Part 2 video (Simple Profile)