QTheora (0.9.0) | 2009-09-09 12:00 |
本フィルターでは、2つの固定的出力ピンを持つ。
一つは、Video 用 (QPinVideo) もう一つは、Audio 用 (QPinAudio) となる。
接続を行う。(下記参照)
出力ピンでは、インプリメントされない。
接続を解除する。動的再接続はサポートしない。
接続状態の情報を返す。
ピンの情報を返す。
下流フィルターからの MediaType 変更を受け付ける。
Video Renderer は、出力サーフェイスの都合で、ビットマップの Stride (Pitch) を変更 する場合がある。
出力可能な MediaType を提示する。
内部接続されたピンはない。
出力ピンでは、インプリメントされない。
フィルターグラフから、接続要求があった場合、出力ピンに対して、IPin::Connect() が 呼び出される。このメソッドで、接続処理を行う必要がある。
BaseClasses では、接続ネゴシエーションの複雑なロジックが実装されているが、ここでは、 簡易的な実装を行うものとする。
接続 MediaType が指定された場合、partial format (majortype & subtype) 指定の時は、 その出力フォーマットの候補を検索する。完全指定の場合は、完全一致で検索する。
本フィルターでは、フォーマットの指定は、Video の出力のみにサポートされ、以下の2つのいずれか を指定できる。
ピンの持つ出力 MediaType が入力ピンに受け入れられるかテスト (IPin::QueryAccept()) する。
入力ピンの IPin::ReceiveConnection() を呼び出す。
Push Model で出力を行うため、入力ピンに対して IMemInputPin を要求する。
入力ピンから提供される Allocator を使用するため、入力ピンに Allocator を 要求 (IMemInputPin::GetAllocator()) する。本フィルターからの Allocator の提供は行わない。 (レンダラーは、上流フィルターの Allocator を受け入れない場合がある。)
Allocator に必要なバッファーサイズの要求 (IMemAllocator::SetProperties()) を行う。
接続先のフィルターによっては、SetProperties() 呼び出しで、 QueryAccept() により、MediaType の修正が求められる場合がある。
IMemInputPin::NotifyAllocator() を呼び出し、Allocator を確定する。
接続プロセスを完了する。
なお、本フィルターでは、動的再接続はサポートしない。
[PageInfo]
LastUpdate: 2009-06-24 14:40:52, ModifiedBy: noumiakira
[License]
Creative Commons 2.1 Attribution-ShareAlike
[Permissions]
view:all, edit:members, delete/config:members