知識マップ: Media Foundation入門 - COM視点でAPIを理解する

記事「Media Foundation入門 - COM視点でAPIを理解する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、Media FoundationがCOMを土台にしたメディア処理プラットフォームであることを、初期化・オブジェクト受け渡し・設定・列挙・非同期処理という5つの地点から説明している。COMライブラリの初期化(CoInitializeEx)はMedia Foundation自身の初期化(MFStartup)の前提になり、IMFSourceReaderやIMFAttributes、IMFTransformといった部品はいずれもIUnknownを基底に持つCOMインターフェースとしてHRESULTを返す。IMFActivateは実体を後で作るための入口で、MFTEnumExの列挙結果からActivateObjectを呼んで初めてIMFTransformが得られる。非同期処理はMTAで動くwork queueのスレッドから呼ばれるため、STA側のUIオブジェクトを直接扱わずに結果だけを橋渡しする設計が必要になる。

Media FoundationとCOMの関係の知識マップMedia FoundationがCOMを基盤にしたメディア処理プラットフォームであること、初期化・オブジェクト表現・設定・列挙・非同期処理の各地点でCOMの性質が現れること、MTAのwork queueとUIのapartmentモデルを橋渡しする必要があることを示す図利用する前提とする利用する前提とする利用する利用する利用する利用する利用する利用する利用する利用する利用する利用する利用する利用する利用する推奨される対応前提とする利用する前提とするMedia FoundationCOM(コンポーネントオブジェクトモデル)MFStartupCoInitializeExIUnknownHRESULTIMFSourceReader(Source Reader)IMFTransform(MFT)IMFAttributesIMFActivate(Activation Object)IMFSinkWriter(Sink Writer)Media SessionTopology(トポロジー)IMFSourceReaderCallbackwork queueCOMアパートメントモデル(STA/MTA)COMスマートポインタ(ComPtr/wil::com_ptr)メディアタイプの取り決め(media type negotiation)

概念間の関係(全21件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Media Foundation
Windowsが提供する、メディアの再生・変換・エンコード/デコードを行うためのCOMベースのフレームワーク。
COM(コンポーネントオブジェクトモデル)
公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。
MFStartup
Media Foundationプラットフォーム自体を初期化するAPIで、CoInitializeExによるCOM初期化とは別に呼ぶ必要がある。
IMFSourceReader(Source Reader)
Media Foundationが提供する、メディアファイルからサンプルを同期的または非同期的に読み出すための入口となるインターフェイス。
IMFTransform(MFT)
デコーダー・エンコーダー・映像変換器などをパイプラインへ差し込むための共通モデルを表すMedia FoundationのCOMインターフェース。
IMFAttributes
GUIDをキーにしたkey/valueストアを表すMedia FoundationのCOMインターフェースで、設定値やメディア形式の情報を保持する。
IMFActivate(Activation Object)
列挙されたオブジェクトの本体を後で作るためのヘルパーオブジェクトを表すMedia FoundationのCOMインターフェース。
Media Session
topologyに沿ってsource・transform・sinkのデータフローや再生・停止・シーク・A/V同期をプラットフォーム側で管理するMedia Foundationの仕組み。
IMFSourceReaderCallback
Source Readerを非同期モードで使うときに実装するコールバックインターフェースで、ReadSampleの完了時にwork queueのスレッドから呼ばれる。
work queue
Media Foundationが非同期処理を実行するために持つスレッドの仕組みで、そのスレッドはMTA(Multi-Threaded Apartment)で動く。
COMスマートポインタ(ComPtr/wil::com_ptr)
COMインターフェースポインタのAddRef/Releaseをスコープに応じて自動管理するC++のラッパー型。
メディアタイプの取り決め(media type negotiation)
ネイティブタイプの列挙、major typeの確認、SetCurrentMediaTypeでの指定、GetCurrentMediaTypeでの確定値の読み直しという手順で、Source Readerとやり取りする出力形式を決める一連の処理。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。