DirectShowと戦うスレ ..
[2ch|▼Menu]
303:265
07/03/12 08:07:00
>>300
そうです、Transformメソッドの中で2回Deliverしてます。
サンプルの流れがいまいち理解できないです。
そこで今行っている処理の流れを分かる範囲でまとめてみました。

[キャプチャフィルタ]-[変換フィルタ(自作)]-[色空間変換フィルタ]-[VMR9]

[色空間変換フィルタ]の入力ピンからの[変換フィルタ]への呼び出し
CTransformFilter::Receive (CTransformFilter::InitializeOutputSampleを呼び出す)
 ↓
CTransformFilter::InitializeOutputSample (新しいサンプルを[キャプチャフィルタ]の出力ピンから取得する)
 ↓
CTransformFilter::Transform
  (サンプルの処理)
   ↓
  CBaseOutputPin::Deliver (IMemInputPin::Receiveを呼び出す) ←これを>>286のように2回呼び出しています
   ↓
  IMemInputPin::Receive ([変換フィルタ]の出力サンプルを取得する)
   ↓
  [色空間変換フィルタ]での処理
   ↓
  [VMR9]が付与されたタイムスタンプに従って画面に表示

疑問点
>>289さんの言う、CTransformFilter::Receive内でもDeliverしている、という記述がMSDNで見つけられませんでした。
 上記で言えばどの時点で発生するのでしょうか?
・最初のCTransformFilter::Receiveが呼び出されるタイミングが分かりません。
 サンプルが変換フィルタで処理されるサイクルはどのようになっているのでしょうか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4277日前に更新/216 KB
担当:undef