DirectShow: フィルタグラフのRun/Stop などの状態遷移について
こちらもDirectShowアプリケーションの開発者様からご指摘を頂いた点になります。
DirectShowアプリケーションがフィルタグラフの状態遷移を励起するAPI (Run, Stop, Pause など) を非常に高速かつ連続的にコールした場合、DirectShowアプリケーションが応答を停止してハングすることがあります。
こちらはDirectShow設計上の制限事項となります。DirectShowでは、それらの API はアプリケーションのユーザーインタフェース上のボタン操作に由来することを想定して設計されているため、人間の操作では不可能なくらい高速・連続的にコールするシナリオは想定されておりません。
恐れ入りますが、通常人間の操作で発生するオーダーの間隔を空けてコールいただけますようお願いいたします。
該当するAPIは以下の通りです。
- IMediaControl::Run
- IMediaControl::Pause
- IMediaControl::Stop
- IMediaControl::StopWhenReady
ご迷惑をおかけして申し訳ありませんが、よろしくお願いいたします。