2012年3月29日木曜日

QuickTime Kit 2

前回 QuickTime Kit (QT Kit) を今後取り上げると書きましたが,Pineapple Blog のほうで若干 QT Kit を取り巻く環境について触れましたので,引用したいと思います.
QuickTime と AppKit の関係も何度も見直されてきた.10.3までは旧 Mac OS の設計(要するに QuickDraw)を引きずっていたが,10.4で導入された QTKit は AppKit と親和性の高いように設計された.ただ残念なことに旧来の QuickTime API を完全に置き換えるには至らず,10.5でようやく旧 QuickTime API をカバーするようになり,10.6の QuickTime X で積極的に旧APIを捨てるようになった.これで落ち着くかと思いきや,10.7で AV Foundation が導入(iOS 4 Core Media フレームワークからバックポート)されたので,従来 QuickTime/QTKit を使っていた部分の一部は AV Foundation へと移行することになる.
AppKit というのはCocoaフレームワークの上位部分(UIを司る部分)で,当然 Objective-C インタフェースです.一方,旧来の QuickTime API はCインタフェース(しかも 32-bit 止まり)で,旧ドローイングインタフェースである QuickDraw にあわせて作られていたためCocoaアプリから使うにはかなりちぐはぐな状況でした.

Appleはこの状況を改善すべく OS X 10.4 (Tiger) で QuickTime Kit (QT Kit) を導入します.QT Kit は完全な Objective-C インタフェースで,AppKitによるレンダリングとの親和性も高いものです.ところが10.4で用意された QT Kit は QuickTime API のすべてをカバーするものではなく,利用価値はそれほど高いものではありませんでした.

続く 10.5, 10.6 で QT Kit は 64-bit 化とともにカバーする機能も増え QuickTime API を置き換えて行きましたが,一方のAppKitによるレンダリングAPIは10.4以降日陰へと入っていきます.10.4の Core Image, 10.5 の Core Animation はAppKitのレンダリングAPIではなく,その下位のCインタフェースである Core Graphics を直接叩くことを(暗に)プログラマに要求しています.

このような事情故かどうかわかりませんが,OS X 10.7 (Snow Leopard) ではついに,iOS 4 の Core Media フレームワークから AV Foundation というムービー関係のAPIがバックポートされます.この AV Foundation のカバー範囲が QT Kit とおもいっきりかぶっている上に,AV Foundation はiOSと共通のフレームワークですから,今後は AV Foundation のほうを使うように圧力がかかるかもしれません.

とはいえ,QT Kit の単純さも捨てがたいので,ひとまず QT Kit の簡単な使い方から始めていくことにしたいと思います.

【追記】AV Foundation 1 に書かせていただいた事情で,今後 QT Kit ではなく AV Foundation を取り上げます. (2012-04-13)

0 件のコメント:

コメントを投稿