EVR

1192 letters | 1092 views | コメントする

C♯で作ってる方の動画プレーヤで、OSがVistaかどうかを自動で判別し、
Vistaであれば新しい方式のEVRで、そうでなければVMR9で再生する仕組みを作った。
しかし、64bit版のVistaでは、EVRかVMRかに関わらず、DivX等の再生が出来なかった。
ただ、どうやらEVRはVMR9と違ってDirect3Dに関与しないみたいで、そのおかげで、
VirtualPCにインストールした32bit版のVistaでも動作する事がわかった。
32bit版のVistaにコーデックを入れて再生テストをしてみた所、DivXもMPEG2もバッチリ動いた。
すなわちこのC♯版の動画プレーヤは、64bitの環境でだけ不具合を起こしている。

.NETアプリって確か、32bitの環境では32bitコードで動作し、64bitの環境では64bitコードで動くはず。
64bitのアプリはプラグインも64bitでないといけないのと同じ仕組みで、
コーデックも64bit版を入れないといけないというオチだったんじゃないかと推測している。
で、今使ってるコーデックパックには、DivX等は32bit版しか含まれていなかったんじゃないかと。
おそらく、コーデックさえちゃんと用意すれば、このC♯版は64bit環境でも動くだろう。

しかしコーデックを探すのは面倒なので、Delphi版でEVRを実装して64bit環境で動かしてみた。
Divxも再生出来たし、VMR9でDelphiだと再生出来ないMPEG2も再生出来た。
つーことは、現行エロペガにEVRモードを付け足しただけの32bitアプリを作れば良いって事だな。
ようやく突破口が見えたか。

ただ、今のエロペガには海外製の動画再生エンジンを使っていて、
EVRでもVMRでもない再生エンジンやら、再生以外の部品やらもセットになっているから、
ソースコードの関連部分だけをちょいちょい直して再利用するのは面倒だ。
再生だけならかなり少ないコードで出来るから、再生エンジンは作り直しにしようかと。
ファイルの履歴を保存したりなどの、再生に関連しない部分だけ再利用する形か。
中身はまるまる変更だから、エロペガもバージョン4になるなぁ。
もちろん、真魚と同じで、公開できるのは次期Delphiを買ってから。
それまで完全に自分用ツール。

たぶん関連のある記事:

コメントは終了しています。