Media Framework

After Apple announced they were deprecating QuickTime for Java, in CatDV 8 we abstracted all the dependencies on QTJava into the “CatDV Media Framework”, with QTJava being just one implementation of the MFMovieControl interface, and other technologies being developed as well to meet the same interface.

Protected player

Initially the only new player was one based on JMF (the Java Media Framework), plus a “remote” protected player which used QuickTime for Java in another process to protect against crashes, as previously any bugs in QuickTime’s native code (or in any 3rd party codecs that were installed) would crash the whole application.

At this time both the main CatDV process and the remote helper process are still 32- bit (of necessity because the underlying QuickTime 7 libraries are 32-bit only).

Xuggle and DSJ players

In CatDV 9 we started compiling the QTJava components separately, so the main CatDV process could now be compiled and run without QTJava. Additionally, extra players were developed, as JMF turned out to have very limited codec support and poor performance. The main new player was Xuggle, a Java wrapper around FFmpeg, but the DSJ DirectShow for Windows player was also added: