2007/05/28(月)PCastTV2の衛星放送に関するiEPG情報

我が家ではマンション上部のコンバータによってUHF帯に衛星放送が流れてきているという特殊な事情がある。従って、特別なチューナーなしにUHF対応のアナログキャプチャボードで衛星放送が見られたりする。

さて、PC-MV5DX/PCIというキャプチャボードを愛用しているのだが、これの視聴ソフトPCastTV2が、EPGで衛星放送を扱えるようにできていない。PCastTV2はBuffaloブランドのキャプチャ製品共通のソフトであるが、対応機器に衛星チューナー搭載のものがないのが原因である。

そこで今回のミッションは、なんとかしてPCastTV2でUHF33,35チャンネルをNHK BS1,BS2のEPG情報に割り当て、GUIや録画ファイル名に反映させて幸せになるというもの。

[1]PcastTV2のインストール

そもそもPCastTV2はPC-MV5DX/PCIにインストールできるようになっていない。しかし動いてしまえばMV5DXに対応しているようである。従って、インストール時にレジストリをいじってやる。
[HKLM\SYSTEM\ControlSet*(使っているコントロールセット)\Control\DeviceClasses\{65E8773D-8F56-11D0-A3B9-00A0C9223196}##?#PCI#VEN_14F1&DEV_8800&SUBSYS_051E1154&REV_05#4&CF81C54&0&10F0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}#GLOBAL\Device Parameters

]の値
BUFFALO PC-MV5DX/PCI Video Capture



BUFFALO PC-MV52DX/PCI Video Capture

に書き換え、PCastTV2をインストール。
インストール後、文字列を元に戻しPCastTV2を起動。

このままだとPCastTV2がMV5DXを認識していない場合があるので、その場合はPCastTVを立ち上げる必要がある。

さらに録画しても容量0のファイルができる場合はドライバをインストールし直す。ここまでやればたぶんOK。

[2]pcast_iepgloc.datの設定

受信するEPG情報を決めているファイルは、

C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG\pcast_iepgloc.dat

である(標準のインストール先の場合)。
このファイル中の受信放送エリアの行は、



Lct=東京(東京)

7001=NHK総合<001>,7002=NHK教育<003>, ...



となっている。自分の受信エリアのLctを探し、その下の行を書き換える。

=の前の4桁の数字は、SO-NET TV王国

http://www.so-net.ne.jp/tv/bangumi/

中の放送局コード。
PCastTV2はEPG情報をここ決めうちでダウンロードしているようだ(EPGサイト設定できるけど、リンククリックしたときに開くだけっぽい)。

上記サイトで地域選び、番組表から番組名をクリックしアドレスをみたときに、?st_cd=となっている部分が放送局コードになる。
放送局名はTV王国にあわせる。<>は自分が設定したチャンネル。たとえば、9002=NHK衛星第2<035>と追記してやると、衛星第2の情報がダウンロードされ、PCastTV2のGUIに衛星第2の列が追加される。
[3]でも番組名が出てこないんですが・・・・・・

列が追加され、情報もダウンロードしているのに、なぜか番組タイトルが表示されない。どういうこっちゃ!? と思って調べた。
ダウンロードしたEPG情報は、

C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG

内の

SEPG.txt(は日付)

に記録される。これがTV王国が提供してる生データか、PCastがパースし直したものかは謎だが、それをさらに加工して表示用のデータ、

EEPG.txt(は日付)

に直している。
調べてみると、先の例でいう衛星第2=放送局コード9002の番組はSEPGの方には記録されているが、EEPGには記録されていない。そこで放送局コードの数字をいじって、PCastがどういう挙動をしているのか確認してみた。放送局リストみたいなものを持っていて、一致しないものを捨てているのかと思いきや、シンプルに、

放送局コードが、

・8999以下->通し

・9000以上->捨て
という挙動であるようだ(8999と9000の境界以外は適当にしか確認していない)。

TV王国のサイトを眺めてみると、9000以上はWOWOWやNHK衛星にしか使われていないようで、地上派オンリーだからそれでいいということらしい。

となってくるとこの判定部分を探せばいいということになる。ついにOllyDbgの出番が来た、それ解析解析~と・・・・・・思ったのだが、使用許諾確認したら逆アセンブル、書き換え禁止となっている。とはいえしゃくに障るので、バイナリ読むのだったら問題ないと考え、それらしい名前のCEpgDll.dllをバイナリエディタで開いてみた。

さて、一文字目を検査して8,9の場合分けだと探しづらい。この際、このコードを書いた人間が一番単純にやっていると考えて、パースしたあと、atoiで数値変換->比較という流れであると想定。

ねらいが正しければ、8999(0x2327)か9000(0x2328)がどこかに見つかるはず。

・・・・・・1カ所あった、28230000が(リトルエンディアン)。あれその前が、0x3Dになってる。3Dってたしか・・・

C・M・P

ここでほぼ確定。アドレス0x2C32からの、3D 28 23 00 00の部分をいじってやればいいっぽい。たとえば、9999(=3D F0 27 00 00)とかに。とはいえ使用許諾があるので書き換えはできないわけで。

Buffalo様何とかしてください。
OK キャンセル 確認 その他