いろいろアプデ とりあえず2つ

BonDriver_HDUS 人柱13

08/09/08 人柱13
・受信レベル取得処理を少し変更
添付のReadme.txtより

ソースをチラリと見てみましたが、自分には無駄でした…。(笑)
2chのスレ (SKNET MonsterTV HDUS Part16)を見るとBonDriver_HDUSについていろいろやり取りされているのがわかりますが、その辺りが反映されているのでしょうか?
(以下転載)

930 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 09:58:41 id:Vpfl52oM
新ドライバが不安定なのは電波レベルの取得に時間がかかるからです
BonDriver_HDUSの今の実装ではアプリからレベル取得要求がある度に
遅い処理するから間に合わなくなります
HDUS側のバッファーが空になった時にレベル取得して変数に保存するようにして
アプリからのレベル取得要求には変数の値返すだけにすれば改善されるはず
それと、以前BUFF_SIZEを2倍にされてましたが、一気に処理しなければならない量が増えてしまいますので
MAX_BUFF_COUNTの方を増やした方が良いですよ
こちらはいくら増やしても副作用はありません
使っている分しかメモリ食わないので5000とかでもいいくらいです


933 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 10:11:06 id:UPLvkOoK
>>930
うーん、ってことは、受信レベルの取得はなるべく行わない方がいいってことですか?

壊れたデータが入ると、MPEG2/AAC/デマクサがアプリエラーになる場合があるから、
受信レベルを監視して、受信レベルが低くなったら、エンジンを停止するってことを
考えていたけど・・・。

うーん、難しいですね。


935 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 11:47:04 id:Vpfl52oM
>>933
いやそんなことは無いですよ
大切なのは流れを妨げないこと
平行処理を心がければ良いんです
例えばアプリで対処するなら、BonDriverからデータを受け取りきった直後(バッファーが空になった時)に
取得すればいいんです
ハードは平行処理ですので、貯めている隙に


936 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 12:05:35 id:Vpfl52oM
言葉が足りなかったので補足です
BonDriverから受け取りー>B25処理ー>TS保存or描画
のループの中に遅い処理をシリアルに入れてはダメで
裏で平行処理する必要があります
もちろんBonDriverから受け取りを妨害してはいけません

BonDriver_HDUS側で対処してもらえるとみんなhappyになれるかも…


955 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 14:40:57 id:PThAi2td
信号レベル取得に関してBonDriver_HDUSでは
get_level1 と get_level2 の両方行ってるけど
実際に使ってるのは get_level1 のほうだけです。

で元々のhduslvlc.c(up0035にあるソース)で時間を簡易計測してみた。
120回まわして get_level1 と get_level2 の所要時間の平均を取ったところ
average[1]= 2.7250[ms]
average[2]= 7.0417[ms]

大雑把に、この結果から信号レベル取得の時間を推測すると
平均[1]+[2]=9.7667[ms]かかっているということになり、
get_level2 の取得を省略すれば約7ms稼げることになる。

ただし、この検証はTSを受信してデータを取り出しながらではないので・・・

    • -
★BonDriver_HDUS の作者さん、 とりあえず、get_level2 はスキップしませんか? そういえばまだ、hduslvlc.cの作者さんに、get_level2 の値の意味教えてもらえていないんだった・・・

Petit地デジ Ver0.06c

0.06bとあわせて記載しておきます。

08/09/07 Ver.0.06b

  • NIT処理のメモリアクセス違反の可能性を修正してみた


08/09/07 Ver.0.06b

  • Meru-coさんの修正をProgManager.cppに組み込んだ

添付のreadme.txtより

これかな?

SKNET MonsterTV HDUS Part16

946 名前:名無しさん@編集中[sage] 投稿日:2008/09/07(日) 13:29:15 ID:4ULYHRmq
>>877
Petit地デジ 使わせていただいてます。

BonTsEngineに以下のような不具合があるようなので、次回公開時、修正していただけませんか?
http://pc11.2ch.net/test/read.cgi/avi/1217639680/539-547



【半田は】亀によるts抜きスレ【基本】

539 名前:名無しさん@編集中[sage] 投稿日:2008/09/02(火) 23:24:57 id:KKuGJmp7
Uniden 3波チューナー + BonDriver_U3ID0.dll で、HDUS用の「Petit地デジ」を使ってみたくて、
BonDriver_U3ID0.dllを改造して、チャンネルスキャンができるようにしたのですが、
途中でエラーが出て異常終了してしまいます。

110CS の ND12 をスキャンしたところで落ちるようで、Petit地デジを起動して、
チューナーのリモコンを使って 110CS のチャンネル 323 を選局しても落ちます。

HDUSTest使用時も同様に落ちるのですが、これは BonDriver_U3ID0.dllとソフトとの相性が悪いのでしょうか?
EpgDataCap_Bonとの組み合わせでは落ちません。

エラーメッセージは、HDUSTest.exe ver.0.4.4が
例外 unknown software exception (0xc000000d) がアプリケーションの 0x78138aa0 で発生しました。
Petit地デジ ver.0.05が
例外 不明なソフトウェア例外 (0xc0000417) がアプリケーションの 0x00446863 で発生しました。
でした。

BonDriver_U3ID0.dllの改造内容ですが、受信バッファ量ではなく、受信感度を返すようにしました。
一度チャンネルスキャンができれば良いので、適当な数字を返すようにしただけですが。
オリジナルのBonDriver_U3ID0.dllでも、落ちてしまいます。


547 名前:Meru-co[sage] 投稿日:2008/09/03(水) 14:08:15 ID:1RO8KOi+
ND12の件。(トリ忘れた

[ProgManager.cpp]
>修正前
if(!m_pProgDatabase->m_ServiceList[0].bIsUpdated) return false;
 *pwServiceID = m_ServiceList[0].wServiceID;

>修正後
if(m_pProgDatabase->m_ServiceList.size()==0) return false;
if(!m_pProgDatabase->m_ServiceList[0].bIsUpdated) return false;
 *pwServiceID = m_pProgDatabase->m_ServiceList[0].wServiceID;

CSは契約してないので(そもそも見る時間がない)報告助かります。
CS-ND12に限らず起きる可能性はありました。ご報告ありがとうございます。
改造版BonTsEngine搭載してるなら同様の不具合は出ます。


BonTestNewUI.1.41m8 の Readme を読むと

1.41m8

  • BonTsEngineバグ修正。(ND12視聴時のサービスID取得バグ)

とあるので、コレを取り込んだんだと思います。メジャーバージョンナンバーは0.06のまま、マイナーバージョンabcってことも考えるとバグ修正バージョンってことでしょうね。こういうわかりやすいのは好感が持てます。

ただ、うちの環境ではイマイチ安定しません…ビットマップもそうなんですが、BonDriver_HDUSのバージョンを人柱13にしてキャプチャすると、ほぼ100%クラッシュします。仕方ないので人柱12に戻しましたが、なんでかなー??