ネットで何時間も検索した後、私はこれに対する解決策を見つけるのに非常に必死です. YV12およびYUY2カラーモデルを出力するDirectShowでOGG Theoraデコーダーを起動して実行しました。
ここで、この出力用の RGB ピクセル操作フィルターを作成し、それをビデオ レンダラーに処理したいと考えています。thisと thisによると、それは本当に簡単で透過的であるべきですが、そうではありません。
たとえば、CheckInputType()
このチェックで実装しました:
if( IsEqualGUID(*mtIn->Type(), MEDIATYPE_Video )
&& IsEqualGUID(*mtIn->Subtype(), MEDIASUBTYPE_RGB565 ) )
{
return S_OK;
}
そして、Theora と私のデコーダーの間にその MSYUV を挿入し、私のために仕事をしてくれることを期待します (つまり、RGB に変換します)。問題は、(GraphEdit アプリケーションで) 毎回エラーが発生することです。そして、入力としてYV12であると100%確信しています(デバッガーでチェック)。私が考えることができる唯一の説明は、AVI デコンプレッサについての言及ですが、それに関するそれ以上の情報はありません。
- この自動機能を利用するには、AVI コンテナを使用する必要があるということですか?
- 奇妙なことに、たとえば WMV ビデオ (出力に YUV を含む) で機能しますが、この OGG デコーダーだけが問題を抱えています。では、おそらく、この OGG デコーダーが何を見逃しているのかが問題になるでしょうか?
MSYUV フィルターがカラー スペース コンバーターとして機能しないのは残念です。つまり、GraphEdit で表示して直接使用できます...
これに関するヒントをいただければ幸いです。最後の手段として、独自の YV12 -> RGB コンバーターをプログラミングします。