GoForce5500 on EM・ONE(その5)

tsurumaru2008-06-09

X01Tユーザさんのおかげで、いろいろ解ったので、次のステップへゴー


レジストリの関係を調べてみる

いちお、H.264/AVCの再生が当初の目的なので、.mp4 のレジストリから調べてみる。
あ、これは、X01Tですからね。


[HKEY_CLASSES_ROOT\Media Type\Extensions\.mp4]
"Media Type"="{e436eb83-524f-11ce-9f53-0020af0ba770}"
"Subtype"="{E1E0DBBB-AEEE-4188-ABD4-CD896062375E}"
"Source Filter"="{0FB94513-7814-49bc-A119-CE64332402BA}"

ふむ。んじゃ、この Media Type とは…

[HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb8c-524f-11ce-9f53-0020af0ba770}]
"Source Filter"="{E436EBB5-524F-11CE-9F53-0020AF0BA770}"
"0"="0,4,,2e736e64"

[HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb8d-524f-11ce-9f53-0020af0ba770}]
"Source Filter"="{E436EBB5-524F-11CE-9F53-0020AF0BA770}"
"1"="0,4,,464f524d,8,4,,41494643"
"0"="0,4,,464f524d,8,4,,41494646"

[HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb8b-524f-11ce-9f53-0020af0ba770}]
"Source Filter"="{e436ebb5-524f-11ce-9f53-0020af0ba770}"
"0"="0,4,,52494646,8,4,,57415645"


[HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb88-524f-11ce-9f53-0020af0ba770}]
"Source Filter"="{e436ebb5-524f-11ce-9f53-0020af0ba770}"
"0"="0,4,,52494646,8,4,,41564920"

と同じキーが4つも定義されちょるが、ここで定義しているSource Filter は、Media Type の CLSID とおんなじみたいです。ちなみに、dll群をregsvrした後の状態だと、これらのレジストリは既にセットされてました。

ふむ。んじゃ .mp4\Subtype はっていうと…

[HKEY_CLASSES_ROOT\CLSID\{0FB94513-7814-49BC-A119-CE64332402BA}\Pins\Input\Types\{e436eb83-524f-11ce-9f53-0020af0ba770}\{E1E0DBBB-AEEE-4188-ABD4-CD896062375E}]
@=""

ここでは、.mp4\Media Type + Subtype として何かを定義しちょる。んじゃ何を定義しているのかっていうと…

[HKEY_CLASSES_ROOT\CLSID\{0FB94513-7814-49BC-A119-CE64332402BA}]
@="NVIDIA OEM Source Filter"


[HKEY_CLASSES_ROOT\CLSID\{0FB94513-7814-49BC-A119-CE64332402BA}\Pins\Input]
"Direction"=dword:0
"IsRendered"=dword:0
"AllowedZero"=dword:0
"AllowedMany"=dword:0
"ConnectsToPin"="Output"

[HKEY_CLASSES_ROOT\CLSID\{0FB94513-7814-49BC-A119-CE64332402BA}\InprocServer32]
"ThreadingModel"="Both"
@="OEMSourceFilter.dll"

はぁ。名前の通り Source Filter を定義してます。


んじゃ、ここまでのレジストリEM-ONEに切ってみますよー

やっぱだみだ


えっと、んじゃこれから dll 経由でおっかけてみます。

まずは、NvH264Transform.dll

; これはあった
[HKEY_CLASSES_ROOT\Filter\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}]
@="NVIDIA H264 Transform"

[HKEY_CLASSES_ROOT\CLSID\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}\Pins\Output]
"Direction"=dword:1
"IsRendered"=dword:1
"AllowedZero"=dword:0
"AllowedMany"=dword:0
"ConnectsToPin"="Input"

[HKEY_CLASSES_ROOT\CLSID\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}\Pins\Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{e436eb7b-524f-11ce-9f53-0020af0ba770}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}\Pins\Input]
"Direction"=dword:0
"IsRendered"=dword:0
"AllowedMany"=dword:0
"ConnectsToPin"="Output"

[HKEY_CLASSES_ROOT\CLSID\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}\Pins\Input\Types\{73646976-0000-0010-8000-00AA00389B71}\{DF3194AE-B3CA-485d-B344-BFE28466BF5B}]
@=""

; これはあった
[HKEY_CLASSES_ROOT\CLSID\{1B0E2EAA-4B00-421C-B746-2F8E210CEBEF}\InprocServer32]
"ThreadingModel"="Both"
@="NvH264Transform.dll"

なかったヤツを登録


とか、ゴロゴロやってたら

なんかでた

細かい手順は後でまとめますが、とにかく出ました。AVCの動画が。

でも画面の向きが違うよ

しかも、一度WMVを再生した後で再生しないと固まります。あと、なんだかアホみたいに遅い。

どうすんだこれ?


■番外編

全然関係ないけど、"Render"で検索してたら、こんなレジストリキーが…

[HKEY_LOCAL_MACHINE\Software\Microsoft\MediaPlayer\Preferences]
"VideoOverlayKeyColor"=dword:00181818
"BlockShellLock"=dword:00000006
"RenderGDI"=dword:00000001

この "RenferGDI" を 0 にして、WMPを全画面にすると、あら不思議。今までの倍位の表示速度に。
EM-ONEでは、表示が横になって(しかも逆方向)、全画面以外はWMPのスキン表示を破壊します。
ありゃりゃ。