DirectShowのメリット値の変更をVBのコードから行いたいです。
できるのでしょうか?
レジストリをいじれば変更できますし、そういうコードをVBで書くことも可能でしょう。
但し、そうすべきであるとは思えません。メリット値はフィルタの仕様の1つでも
あるのですから。
そもそも、そういう場合は、自分でフィルタを選んでグラフに追加し、それを
繋げていけばいいだけのことですよね。メリット値を変更するメリットはあまり
思いつきません。
カノープスのキャプチャーボードで作成した、複数のMPEG2ファイルを
一つにするプログラマムを作成しました。
MPEG2の仕様に準じて、バイナリ値を変更して結合処理。
その一つにしたファイルなのですが、
Mpeg-2 Demultiplexer の フィルタを使われると、結合した動画が途中で止まってしまいます。(同じ症例が他でも報告されていました。)
Mpeg-2 Splitterや他のSplitterで再生すると、問題なくできます。
本当は、どんなSplitterでも再生できるのが理想なのですが、
結合法則を追求してもでどこが悪いのわかりません。
ようは、この曲者
Mpeg-2 Demultiplexerを使いたくないのです。
Mpeg-2 DemultiplexerとMpeg-2 Splitter
は同じファイルでsystem32に登録されていますが、
メリット値は、Mpeg-2 Demultiplexerのが高いです。
この二つのメリット値をVB6.0から、こっそり入れ替えたいです。
できれは、そのコードをご教授いただると嬉しいです。
レジストリをどように変更すればよいかも、わかりませんので・・・
それは本末転倒でしょう。単純に、正しく解析されない不正なファイルを
作っているだけ、という話のようですし。
また、自分が作ったアプリの範囲でのレジストリの値を書き換えるの
であれば構いませんが、システムに関する部分をユーザの同意もなく
「こっそり」書き換えるコードを仕込むのは、プログラマとしてやっては
いけないことですよね。
なお、DemultiplexerとSplitterとの差に関しては、
http://msdn.microsoft.com/library/ja/DirectX9_c/directx/htm/mpeg2supportindirectshow.asp
などに記述があります。