2014年5月7日水曜日

AV Kit と AV Foundation への移行 (Moving to AV Kit and AV Foundation)

WWDC 2014 が近づいているので,この機会に WWDC 2013 を振り返ってみる.

WWDC 2013 のビデオアーカイブに Moving to AV Kit and AV Foundation (AV Kit と AV Foundation への移行)という項目がある.その冒頭に QuickTime API の歴史紹介があるのだが,若干補足を加えてリストアップしておく.

Mac OS 7, 8, 9

QuickTime は Mac OS 7 で初めて導入された.もちろん足回りは QuickDraw だ.QuickTime API は静止画を扱えたが,その後 QuickTime VR のようなパノラマ静止画も扱えるように拡張された.(その後 QuickTime VR は姿を消すことになる.)

Mac OS X 10.0 (Cheetah),  10.1 (Puma)

OS X ではウィンドウシステムとして Quartz Compositor が導入されている.この Quartz Compositor と OS X のネイティブ2D描画APIである Core Graphics (マーケティング名は Quartz 2D)を併せて Quartz と呼ぶ.

この時代の QuickTime API は App Kit にラッパクラス NSMovie と NSMovieView があり,また足回りに QuickDraw 互換APIが使えた.NSMovie と NSMovieView はその後非推奨となり,現在ではドキュメントすら残されていない.

Mac OS X 10.2 (Jaguar), 10.3 (Panther)

OS X はJaguarから足回りが大幅に強化されている.まず Quartz Compositor が OpenGL ベースになり,その名も Quartz Extreme という名前になった.また実験的に Core Graphics をGPUに対応させた Quartz 2D Extreme も導入された.(後に撤回される.)

一方アプリケーション側から見た QuickTime API は変化無しだ.

Mac OS X 10.4 (Tiger), 10.5 (Leopard)

Tigerに搭載された QuickTime は表向き QuickTime 7 という名で通っている.Tigerからは QT Kit というアプリケーションフレームワークが追加され,元々 App Kit にあった NSMovie, NSMovieView は QTMovie, QTMovieView に置き換えることになった.ただしTigerの時点では完全に QuickTime API を置き換えるものではなく,旧来の QuickTime API も併用する必要があった.

内部的にはTigerから Core Image, Core Video, Core Audio と言った Core Media フレームワーク(グラフィックスに関する部分は Quartz Core とも呼ぶ)が導入され,また QuickDraw API をエミュレートせずに直接 OpenGL を叩くようになった.

Mac OS X 10.6 (Sow Leopard)

Tigerで導入された QT Kit はLeopardで完成度を上げていき,Snow Leopard の QuickTime X で完全に旧 QuickTime API をカバーするようになった.

Mac OS X 10.7 (Lion)

Lionは OS X の事情というよりは並行して開発されていた iOS 4 に合わせる形で AV Foundation というフレームワークを導入したOSだ.AV Foundation は QuickTime とは互換性のない一から起こされたAPIで,モダンな機能を多数備えている.従来の QuickTime, QT Kit も使えるものの,アップルは代わりに AV Foundation を使用することを強く推奨し始めた.(そもそもiOSには QuickTime が無いため AV Foundation を使わざるを得ない.)

Lionの時点ではCheetahにあった NSMovieView  やTigerにあった QTMovieView は非推奨になっており,代わりにプログラマは NSView から独自のムービープレイヤーを作る必要があった.(iOSには MediaPlayer というフレームワークがあったが OS X には移植されなかった.)

Mac OS X 10.8 (Mountain Lion)

AV Foundation のうちビデオ圧縮を担当する部分を Video Toolbox として独立させた.

Mac OS X 10.9 (Mavericks)

Lion以来欠けていた AV Foundation のラッパクラス AVPlayerView が AV Kit として導入された.

0 件のコメント:

コメントを投稿