2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

BonDriver共有ツール総合 その2

1 :名無しさん@編集中:2015/04/07(火) 20:25:07.03 ID:n6IDd8Gi.net
BonDriver共有ツール総合

※前スレ
http://peace.2ch.net/test/read.cgi/avi/1366339738/

321 :名無しさん@編集中:2015/09/19(土) 23:12:57.82 ID:W5x7rP0N.net
>>318,319
詳細な解説ありがとうございます。
パフォーマンスの実情を踏まえて安全側にふるのはまさにその通りだと思います。

仰る通り、xtne6f氏がEDCBを改良してくれたのでBondriverのCOM問題は実質解決ですね。

322 :名無しさん@編集中:2015/09/20(日) 14:13:51.94 ID:klFkVMgH.net
>>319
解析おつかれさまです。
詳細な報告、非常に参考になります。

323 :名無しさん@編集中:2015/09/21(月) 20:06:23.79 ID:GRggE4EQ.net
>>320

GIUDとコマンドの件ありがとうございます。
dllからそれを引き出すとは、BonDriverProxyの作者さん、スゴイ解析力ですね!。
とても関心します。

この様に初期化部分を作って   http://www1.axfc.net/u/3537512
動かしてみてます。
結果ですが、確かに[0x0c 読出] [0x0d 読出] [0x14 書込] コマンドとして
全てS_OKで返って来るところまで来たのですが、今の所グラフの動作には至っておりません。
pIKsPropertySetの引数についていまいち理解できないので、おおよその検討で引数を入れています。


後、guidPropSet値なんですが、これをHDUS用のソースに入っているものと比較した時に
同じ9E1781E1なので不思議に思って調べていくと、ドライバのinfを見るとコメントの
記述の仕方が同じ。ドライバーsysの中を調べてみるとASICENとの記述が両方ともに。
ASICENとHDUSとPLEXでネットで検索すると、HDUSもPXシリーズも台湾のASICEN社の
製品だと理解しました。 
それでHDUSとPLEXのリモコンが完全互換なんだと、納得です。

324 : ◆SALrG1ld3mTc :2015/09/22(火) 06:55:06.68 ID:knSVcOol.net
>>323
スミマセン、良く見たらdwPropID==0x14はデスクランブルさせる場合のオプション用っぽかったので、
本筋には関係無さそうでした
#M2_DECオプションを有効にする場合は0x14でそれ用の初期化を行う、みたいな感じっぽいです
その辺もまとめると、多分こんな感じになるのかなと思いますヽ(;´ー`)ノ
ttp://pastebin.com/KLvqDwir

325 :名無しさん@編集中:2015/09/23(水) 01:01:15.12 ID:FbNy3djd.net
>>324 結果から言いますと、

ついにフィルタグラフにrunが掛かりました。
チューナーに対する初期設定がうまくいったようです。

現状の改変ソースを参考資料としてアップしてみます。
http://www1.axfc.net/u/3538282
一部constがビルドで引っ掛かるとこがありましたので、
constを抜いて、仮にg_M2_Dec = 0を入れて起動させています。

BonDriverProxyの作者さん。モノスゴイ解析力ですねぇ。
コマンドの解釈や、GetKey2の処理をよく新たに見つけ出したものだと驚きます。

一点質問なのですが、M2_DECオプションを有効にした場合
ハード上もしくはドライバ上でデスクランブルすると解釈して
いいのでしょうか?

326 : ◆SALrG1ld3mTc :2015/09/24(木) 07:28:51.80 ID:gsOg05yg.net
>>325
> 一点質問なのですが、M2_DECオプションを有効にした場合
> ハード上もしくはドライバ上でデスクランブルすると解釈して
> いいのでしょうか?

全然調べていませんが、恐らくドライバで行われるんだと思います
linux版のドライバにはまるもさん作の「ARIB STD-B25 仕様確認テストプログラム」が
ほぼそのまま組み込まれているようなので、多分windows版でも同じなんでしょう
#もちろん、内蔵カードリーダにカードを刺しておく事が前提でしょう

327 : ◆SALrG1ld3mTc :2015/09/24(木) 07:33:48.18 ID:gsOg05yg.net
あともうちょっと調べたら、>>320で書いた
> 一応、このIKsPropertySetは他のdwPropIDでSetChannel()やらGetTsStream()の中からも使われているようですが、
はやっぱり使われてるみたいですね
特にGetTsStream()から呼ばれる方はコンテンツの復号(MULTI2ではなく独自のスクランブルの)を行うために必須のようです
適当にですがコードに起こしてみました
ttp://pastebin.com/2cxf0Sb5

SetChannel()の方では、m_pcDShow->SetChFreq( iFreq );の後に、
---
m_pcDShow->SetChannel(BSならtrue CSならfalse, TSID, SID);
---
と言う感じで呼びます
TSIDはそのTSストリームのTSID、SIDは(恐らく)そのTSストリームのサービスの適当なSIDか0で、
これらは(SetChFreq()に渡す周波数とともに)iniファイルから読み出して設定します
なお、この処理はS側のみでT側では必要ありません

GetTsStream()の方では、m_LastBuffにデータを取得した後、
---
m_pcDShow->Decode(m_LastBuff->pbBuff, m_LastBuff->dwSize);
---
と言う感じです
手元にはテストできる環境が無いので、ちゃんと動く可能性はだいぶ低そうですが(;´Д`)

328 :名無しさん@編集中:2015/09/24(木) 19:44:37.76 ID:YSiFFSy0.net
なにこの難解なスレw

329 :名無しさん@編集中:2015/09/24(木) 23:27:54.23 ID:cIFUPuu/.net
>>327 結果からですが。

動きましたーー!。
まだ地上波のみですがTvTestで表示できましたー!

衛星側はまだ作りこまないと何もできませんが、とりあえず地上波側の表示はできました。

>>327 の新しいコードと入れ替えて動かしてみるとTSデータの取得が始まって最初の数秒はパケット数が少ないのですが、
途中からパケットが多くなってそこでエラー停止していたので一時バッファだと思われるバッファをを倍にしてみたところ
動作するようになりました。
このバッファを倍にして他に影響ないのかよく理解していないのですが、とりあえずこれで動きます。

この停止が起きた時に100%ではないのですが、デバイスドライバが離脱することがあることがわかりました。
その辺りの耐久性がないようです。ネットで時々書き込みを見るPLEXチューナーを見失う現象は、
このことではないかと考えています。
このバッファオーバーによるものと思われる対処としては、バッファが溜まり過ぎた時の処理を見直すか、
バッファを増やしてにして他に悪影響ないようであればiniでバッファ量を指定できるようにしようと考えています。

今後はゆっくりですが先に衛星側の作りこみ、チューナーとキャプチャ(現在固定)の選択の仕方変更、
iniでバッファ量を指定、その後TSバッファがらみでメモリコピーを多用しているところがあり、ポインタ処理に
置き換えれば若干パフォーマンスアップを狙えそうな所があるので、その辺りに手を付けるつもりです。

開発資料として現状のソース公開しておきます。

http://www1.axfc.net/u/3539440

BonDriverProxyの作者さん、またまた大感謝です。
これだけのコードを解析から引っ張りだしてくるとは・・・・
今では、何かの実を食べた「能力者」なのではないかと思っていますyo。

330 : ◆SALrG1ld3mTc :2015/09/25(金) 07:28:16.61 ID:rOivCOgP.net
>>329
あ、動きましたか
Decode()の処理相当の部分を追いかけてる時に、なんか凄く冗長だったので、無駄だと思われる部分をかなり削って、
でも実はやっぱり必要だったりして…とか少し思ってたんですがヽ(;´ー`)ノともあれ動いたようで何よりです

これらのロジックがちゃんと動くなら、後は普通のBDA系のBonDriverと同じなので、PLEX機器用のBonDriverが
バイナリしかないと言う状況は近々終わりそうですね
どうせならBonDriver_HDUSベースよりも、近年の改良・整理されたBonDriver_BDAをベースにした方が
良いかもしれません
ぜひ良いものをつくって公開して下さいヽ(´ー`)ノ

リンク先のソースでの使用方法をパッと見た感じでは、CBonTuner::RecvProc()でDecode()を呼んでいますが、
呼ぶなら現在の位置ではなく、
---
memcpy(pItem->pbBuff, pSys->m_bRecvBuff, pItem->dwSize);
---
の行の直後に、
---
m_pcDShow->Decode(pItem->pbBuff, pItem->dwSize);
---
とした方が良いんじゃないでしょうか
細かい単位で頻繁にシステムコールを呼び出すよりも、ある程度まとめてから呼んだ方が良いと思うので

また、多分勘違いだと思うのですがCBonTuner::SetChannel()からも呼んでいますが、Decode()は188*nの
単位での呼び出ししか想定していないので、この呼び出しでメモリ破壊が起きてるかも…

あと、もしPLEX_FUNC_0x0CやPLEX_FUNC_0x0Dの呼び出しで得られる結果が毎回同じなら、
鍵(dwKey)は最初に一度つくればDecode()呼び出すたびに毎回つくらなくても良くなりますね

とりあえずそんな感じですよ

331 : ◆SALrG1ld3mTc :2015/09/25(金) 07:30:50.13 ID:rOivCOgP.net
>>328
スミマセン、確かにだいぶスレ違いですね…
過去ソースの無いBonDriverでトラブるパターンが結構多かったもので、
ちゃんとソース付きのが出てきたら良いなと…(;´Д`)

332 :名無しさん@編集中:2015/09/25(金) 08:17:51.05 ID:OyXy4mfw.net
まあPLEX系でソースありになればうれしい

333 :名無しさん@編集中:2015/09/25(金) 08:28:42.66 ID:AbX8MWdv.net
PLEXのbondriver専用スレ立ててやるのがいいかもね
ベースが同じだから旧製品からこれから発売される新製品まで全対応出来るし

334 :名無しさん@編集中:2015/09/25(金) 09:58:37.86 ID:d0hb4BNi.net
世の中すごい人達がいるもんだ
Proxy系にはいつもお世話になってます。あざーっす

335 :名無しさん@編集中:2015/09/25(金) 14:49:59.66 ID:Az6h2rPs.net
>>331
参考になって楽しいですよ。

336 :名無しさん@編集中:2015/09/25(金) 17:21:27.62 ID:O0Vq2wbo.net
難解発言した人も悪気は無いと思うよ
俺は何も理解できなけれど、何かが発展して言ってるというのは、飛ばし読みしてても面白い
嫌いなのは出し惜しみだから

337 :名無しさん@編集中:2015/09/25(金) 18:02:27.13 ID:L2vPzgGJ.net
>>333
ASICENじゃないのはまた別に解析が必要そう(GUIDも違う)

338 :名無しさん@編集中:2015/09/25(金) 19:09:07.25 ID:eCL+WuMi.net
【PLEX】PX-S1UD/BCUD Part4 【ドングル】©2ch.net
http://peace.2ch.net/test/read.cgi/avi/1441037359/

こっちのBCUDの方も頼むわ
必要ならBCUD送るよ

339 :名無しさん@編集中:2015/09/25(金) 23:12:53.33 ID:ydjL2w8B.net
BondriverProxyを使用して1つのチューナーを2つのTVTestから視聴しようと試みています(もちろん同じ番組)
Bondriver_Proxy.dll
Bondriver_Proxy_splitter.dll(splitterを間にかませたもの)
から同時に視聴しようとするとBondrvier_Proxy.exeがクラッシュします(splitterの有無を統一すれば動作)
こういう使い方は無理でしょうか

340 :339:2015/09/26(土) 00:53:58.53 ID:ULbc/8bD.net
考え直してsplitter有りで統一して運用方法を工夫することにしました
1つのチューナーを別のBondriverでって無茶な使い方ですよね。スレ汚しすみませんでした

341 :名無しさん@編集中:2015/09/26(土) 11:12:22.35 ID:GuD/O58I.net
新ドライバーでPT2のバグ直ったのかな?

342 :名無しさん@編集中:2015/09/26(土) 18:45:35.57 ID:kGGMlB+o.net
バグとは?

343 :名無しさん@編集中:2015/09/26(土) 19:20:36.45 ID:SBq10ySz.net
買ったら新しいPCを生やしてしまうバグ

344 :名無しさん@編集中:2015/09/26(土) 23:24:33.74 ID:Vrno3hSp.net
>>342
32bit Windowsでメモリが4GB以上だと0Mbps病が発症する問題かな?

345 :名無しさん@編集中:2015/09/27(日) 00:00:03.52 ID:Z/H6YHq8.net
バグっちゃバグなんだろうけど、どうせ物理アドレス考えれば原理的に使えないんだろうし・・

346 :名無しさん@編集中:2015/09/27(日) 18:54:00.64 ID:w2qquhAH.net
>>339-340
---
TVTest1 - BonDriver_Proxy.dll --------------------------|- BonDriverProxy - 対象BonDriver
TVTest2 - BonDriver_Splitter.dll - BonDriver_Proxy.dll -|
---
なら可能ですが、
---
TVTest1 - BonDriver_Proxy.dll -|- BonDriverProxy -|- 対象BonDriver(A)
TVTest2 - BonDriver_Proxy.dll -|         |- BonDriver_Splitter.dll - (A)と同じ対象BonDriver
---
はできないです
下の形では、BonDriverProxyと言う一つのプロセスが同じBonDriverを複数回読み込む事になりますが、
大抵のBonDriverは一つのプロセスから複数回読み込まれる事を想定しておらず、その様な使い方をした場合は、
BonDriver内部で管理変数の上書き破壊等が発生する事になります
https://github.com/u-n-k-n-o-w-n/BonDriverProxy/blob/61460a3caf1eaf6adaa785e58a80e8a9e676050a/ReadMe.txt#L65-L67
#で書いてるのはその様な場合の話です

その状態で処理を続けた場合にどうなるのかはそれぞれのBonDriver次第で、またホストプロセスの構造にもよるとは
思いますが、例えばBonDriverProxyがBonDriver_PTやBonDriver_PT3をこのように使用した場合を考えると、
恐らくBonDriver側で管理されているメモリへのアクセスに関してスレッド間での競合が発生し、落ちる事になるでしょう
#これは、ポインタを返す方のGetTsStream()等は非同期で呼び出される事を(恐らくBonDriverのAPIの仕様として)
#想定していない為、スレッド1に返したメモリ領域をまだスレッド1が使用しているのに、スレッド2が解放してしまう、
#と言う事が起こるからです

ダラダラと書きましたが、要はその形での使用はBonDriverProxy側だけで何とかできる範囲ではないので、できないです、
と言う事になります(;´Д`)

347 : ◆SALrG1ld3mTc :2015/09/27(日) 18:56:17.02 ID:w2qquhAH.net
ズレた(;´Д`)>>346は当方です

348 : ◆SALrG1ld3mTc :2015/09/27(日) 19:04:05.28 ID:w2qquhAH.net
>>338
少し見てみましたが、BonDriverで復号的な事はやっておらず、変わった事やってるのは
SetChannel()とGetSignalLevel()の中くらいにみえますね
その変わった事の内容は
ttp://pastebin.com/qTDSa8pw
な感じです

ttp://www1.axfc.net/u/3506839
のBonDriver_BDASのソースなら、
CBonTuner::LockChannel()の中の
---
pIRequest->put_Locator(pILocator);
---
の後で、
---
CustomSetChannnel((WORD)lTSID);
---
みたいに呼んで使います

CustomGetSignalLevel()の方は、CBonTuner::GetSignalLevel()の頭で呼んで、多分RSSIが2バイト値で
返って来るので、これで得た値を元にfloatのCNRとして計算したのを返してるようです
こちらはBonDriver_BDASが行ってるように、BDA標準の方法でとれるなら使う必要は無いかもしれませんね

どっちにしろ、インタフェースの型が良くわからなかったので関数ポインタ経由で無理やり呼び出しており、
まともに機能するかどうかはわかりませんが(;´Д`)

349 :339:2015/09/27(日) 19:27:17.62 ID:AF71QNeR.net
>>346
レスありがとうございます
今は
TVTest1 - BonDriver_Proxy.dll -|--------||------- BonDriverProxy - BonDriver_Splitter.dll - 対象BonDriver(A)
TVTest2 - BonDriver_Proxy.dll -|
のようにしています。これで録画しながら軽くしたTSを視聴したいという目的は達成できました
運用開始直後に一度だけBonDriverProxyがクラッシュしたのですが(慌ててレポート取り逃した)それ以降は何度試しても正常動作しています
たぶん大丈夫でしょう。お手数をお掛けいたしました。素晴らしいソフトに感謝です

350 :338:2015/09/27(日) 23:17:28.55 ID:TgOHQ+jD.net
>>348
レスありがとうございます
BDASに上げてもらったコード組み込んで試してみます

351 :名無しさん@編集中:2015/09/28(月) 00:02:56.68 ID:P8iLFU2e.net
>>348
教えてもらったコードでTSID指定でBSのチャンネル取れるようになりました
それと動作させるのになんらかの初期化コードが要るようなんですが、わからないですかね?
バイナリで公開されているBondriverでスイッチを入れてからでないと動かないんです

352 :名無しさん@編集中:2015/09/28(月) 00:50:07.72 ID:R5uGdt/w.net
>>351
>>288このあたり以降が関係していないかな?

353 :名無しさん@編集中:2015/09/28(月) 02:24:33.40 ID:P8iLFU2e.net
BonDriver_BDAS Ver.0.03
http://www1.axfc.net/u/3541290

[更新履歴]
Ver. 0.03
・カスタムコード追加によりTSID指定でBSのチャンネルが取れるようになった


これにPLEXチューナーの初期化処理を入れなきゃなんないってことかな?
>>327のやつを組み込めばいいのかな?別のBondriver用みたいだけどね

354 : ◆SALrG1ld3mTc :2015/09/28(月) 20:51:07.19 ID:cGa3TeDv.net
>>350-353
うーん、とりあえずOpenTuner()終わりまでにはW3PEやW3U3でやってるような特殊な処理は
入ってないように見えますね
基本的に普通のBDA系BonDriverと同じで、BonDriver_BDASで言うところの
CBonTuner::LoadAndConnectTunerDevice()内の、
---
string::size_type n = 0;
wstring semName = displayName;
while ((n = semName.find('\\', n)) != string::npos) {
semName.replace(n, 1, 1, '/');
}
---
が、
---
string::size_type n = 0;
wstring semName = displayName;
bool find = false;
if (semName.find(L"vid_3275", n, 8) != string::npos)
find = true;
if (semName.find(L"pid_0085", n, 8) != string::npos)
find = true;
if (!find)
continue;
while ((n = semName.find('\\', n)) != string::npos) {
semName.replace(n, 1, 1, '/');
}
---
みたいな感じになってるくらいです
あと、m_pTunerDeviceとm_pCaptureDeviceをAddFilter()する時は、friendlyName.c_str()使わずに、
それぞれL"DVB-S Tuner"とL"DVB-S Capture"で固定ですね

355 : ◆SALrG1ld3mTc :2015/09/28(月) 20:53:12.62 ID:cGa3TeDv.net
BonDriver_BSCSをどのタイミングまで使えばBonDriver_BDASが使えるようになるのかわかるでしょうか?
DLLをロードするだけ、CreateBonDriver()まで、OpenTuner()まで、最初のSetChannel()まで、と少しづつ
機能を使っていって、どの段階でBonDriver_BDASが使えるようになるのかがわかれば、どこに鍵になる処理が
あるのかのヒントになりそうです

…CustomSetChannnel()のChannelをtypoしてるのにさっき気付きました(;´Д`)失礼しました

356 :名無しさん@編集中:2015/09/28(月) 22:07:14.15 ID:P8iLFU2e.net
>>355
わかりました
特殊なチューナー初期化コードは必要ないということなんですね

>BonDriver_BSCSをどのタイミングまで使えばBonDriver_BDASが使えるようになるのかわかるでしょうか?
>DLLをロードするだけ、CreateBonDriver()まで、OpenTuner()まで、最初のSetChannel()まで、と少しづつ

うーん…それはVSのデバッガ使って追わないといけないんですよね
今度時間あるときにやってみますね

357 :名無しさん@編集中:2015/09/28(月) 22:10:26.52 ID:P8iLFU2e.net
>>355
必要ならBCUD送ってもいいですけどね

358 :名無しさん@編集中:2015/09/28(月) 23:43:04.50 ID:P8iLFU2e.net
BonDriver_BDAS Ver.0.04
http://www1.axfc.net/u/3541846

Ver. 0.04
・BonDriver_BDAT Ver.1.05 までの更新内容をだいたい取り込んでおいた
・あとはチューナーのスイッチが入るようになれば完成

359 :名無しさん@編集中:2015/09/29(火) 01:14:08.78 ID:1EOqt+1D.net
>>355,356

356さんとは別人ですけど。
OpenTunerを超えれば使えるようになる様です。

360 : ◆SALrG1ld3mTc :2015/09/29(火) 19:37:36.41 ID:D0eEl3nI.net
>>359
おお、ありがとうございます
一応ですが、CreateBonDriver()までやっただけでは使えないと言う事ですよね?
OpenTuner()の処理は一通り追ってみたつもりだったんですが、もう少し眺めてみます…

>>357
まあどうしても気になったら自分で買ってきますw

361 :名無しさん@編集中:2015/09/29(火) 20:16:30.10 ID:1EOqt+1D.net
>>360

>一応ですが、CreateBonDriver()までやっただけでは使えないと言う事ですよね?

そうです。

OpenTuner は 13B0 からだと思いますが 1401 から複数出てくる jnz 13F9 を順に
jmp 13F9 に変えつつどこで BonDriver_BSAS.dll で映るようになるか試した所
以下でした。

.text:10001433 jnz short loc_100013F9 を
.text:10001433 jmp short loc_100013F9 に変更

ですのでその直前が怪しいのではないかと思われます。
中身はまだ追えていませんけども。

.text:1000142C call sub_100029B0

362 :名無しさん@編集中:2015/09/29(火) 20:24:58.19 ID:1EOqt+1D.net
×BonDriver_BSAS.dll
○BonDriver_BDAS.dll (Ver.0.04) です。

363 : ◆SALrG1ld3mTc :2015/09/30(水) 00:03:21.03 ID:Vq8gxJyY.net
>>361-362
おかげでそれっぽい処理見つけられましたヽ(´ー`)ノ
とりあえずざっとコード化してみました
ttp://pastebin.com/1baKs0Ge
CBonTuner::LoadAndConnectCaptureDevice()の
---
return S_OK;
---
の直前で呼んでみて下さい…

364 :名無しさん@編集中:2015/09/30(水) 13:27:46.89 ID:75ir4n1u.net
>>363
そのコード自分が入れて試してみましたところ、まだ動かないですね
Channnelのtypoは直しときました

365 :名無しさん@編集中:2015/09/30(水) 17:25:14.54 ID:75ir4n1u.net
スカパー!用のBonDriver_BDAのInitializeHookと
同じようなことやってるみたいですねえ

366 :名無しさん@編集中:2015/09/30(水) 17:29:36.85 ID:75ir4n1u.net
-1、-2、-3、-4とかは
E_XXXなどのリターンコードなんでしょうね

367 :名無しさん@編集中:2015/09/30(水) 17:46:19.36 ID:75ir4n1u.net
いやリターンコードじゃないかもですね
よくもまあCOMを逆汗してCコードに書き直しできましたね

368 :名無しさん@編集中:2015/09/30(水) 17:58:38.66 ID:75ir4n1u.net
CheckAndSetTunerDependCode(displayName);←ここでInitializeHook()が実行される
// connect 成功なので、このまま関数を終了する
return S_OK;

ホラ、スカパーBonDriver_BDAと同じですね

369 : ◆SALrG1ld3mTc :2015/09/30(水) 18:37:12.96 ID:Vq8gxJyY.net
>>364-368
これだと思ったんですが…
>>363の関数は当方が処理を意訳してコード化しただけなので、エラーコードなども適当に決めた物です
単に、何かがエラーになった場合にどこでエラーになってるのかわかれば良いとの考えなので、
値自体には別に意味はありませんヽ(;´ー`)ノ

> スカパー!用のBonDriver_BDAのInitializeHookと
> 同じようなことやってるみたいですねえ

チューナ毎に違う特殊処理を行うわけですから、似てるのはある意味当然なんでしょうね
もっとも、BonDriver_BSCSの場合はチューナデバイスとキャプチャデバイスを接続した後に、
チューナデバイスの出力ピンに対してIKsPropertySetを要求しているので、若干タイミングが違いますね

とりあえず、その関数がエラーで返って来てるのか、そうでないのかですね
もし-4で返って来てたりするなら、コメントにしてる部分をいかしてみてくれませんか?
---
//BYTE inst[32];
pIKsPropertySet->Set(guidPropSet, 0x500, NULL/*inst*/, 0/*sizeof(inst)*/, &dw, sizeof(dw))
---

---
BYTE inst[32];
pIKsPropertySet->Set(guidPropSet, 0x500, inst, sizeof(inst), &dw, sizeof(dw))
---
#意味があるかどうかよくわからなかったのでコメント化してましたが、必要なのかもしれないです

370 :名無しさん@編集中:2015/09/30(水) 19:20:03.36 ID:75ir4n1u.net
>>369
すごい!動きました!

371 :名無しさん@編集中:2015/09/30(水) 19:36:29.67 ID:vDo9Votk.net
GJ
BSCSが選択したTSIDが記憶されてるから
その領域の初期化とかしてんのかな

372 :名無しさん@編集中:2015/09/30(水) 20:06:45.73 ID:7g+Kag58.net
コメントありの状態だとエラー -4 で、コメントをはずせば動きました。

信号レベル表示が100.00dbから変化しないのですけど皆さんどうです?

373 :名無しさん@編集中:2015/09/30(水) 20:08:09.58 ID:75ir4n1u.net
なんかチャンネルをマップしたテーブルか構造体をセットするAPIがあった気がする

374 :名無しさん@編集中:2015/09/30(水) 20:12:04.53 ID:75ir4n1u.net
>>372
WORD rssi = CustomGetSignalLevel();
ってところのrssiから算出するらしいけど、計算法がわからなかったんで
まだやってないです

375 :名無しさん@編集中:2015/09/30(水) 20:44:13.62 ID:75ir4n1u.net
>>372
うちでも100.00dbから変化しないです

376 :名無しさん@編集中:2015/09/30(水) 20:46:09.45 ID:75ir4n1u.net
【PLEX】PX-S1UD/BCUD Part4 【ドングル】©2ch.net
http://peace.2ch.net/test/read.cgi/avi/1441037359/

今後はこちらでやりましょう

377 :名無しさん@編集中:2015/09/30(水) 22:53:56.90 ID:5v+HmoLx.net
BCUDはlinux版のドライバ作ってほしいわ

378 :radi_sh ◆w66DTUAjabhm :2015/09/30(水) 23:28:07.35 ID:rEjCCeRa.net
横から飛び入り参加で申し訳ないです
PX-W3PE/S3U3系のBonDriverですが、GetSignalLevel()にもカスタム処理が入ってますね
↓みたいな感じで得た値を1/100しているみたいです
http://pastebin.ca/3178992

379 :名無しさん@編集中:2015/10/01(木) 00:34:46.86 ID:36rLzu6a.net
Win8から対話型サービス ダイアログ検出のウインドウって標準で無効になってるのね
Win10でも、細工したらSpinelとかをサービス化してもセッション0に切り替えてウインドウ出るようになったよ、って報告しときます。

380 :名無しさん@編集中:2015/10/01(木) 00:51:36.26 ID:MZuoeh7L.net
>>369
時間のある時で良いので教えて下さい。

ttp://www1.axfc.net/u/3506839 にあるWORD CBonTuner::CustomGetSignalLevel() ですが
・BonDriver_BSCS.dll のオフセット 1590 からで良いですか?
・if (w > 0x0bb8) w = 0x0bb8; (0xbb8 = 3000) は不等号が逆だったりしないでしょうか?
if (w < 0x0bb8) w = 0x0bb8;

381 : ◆SALrG1ld3mTc :2015/10/01(木) 09:17:21.48 ID:FXKDgKxt.net
>>380
その通りで、不等号逆です(;´Д`)失礼しました
直後の処理で3000引いてるので、ここで負の値にならないようにでしょうね…
ちなみにオフセット0x1590はCBonTuner::GetSignalLevel()で、CBonTuner::CustomGetSignalLevel()は
その冒頭の0x15d8までの処理を切り出して当方が勝手に関数化した物です
そこから関数の終わりまで計算をごちゃごちゃやってるのがCNRの計算でしょう
---
float f = (float)CustomGetSignalLevel();
f -= 3000;
f = sqrt(f) / 64;
float f5 = pow(f, 5);
float f4 = pow(f, 4);
float f3 = pow(f, 3);
float f2 = pow(f, 2);
f = (f4 * 14.341f) - (f5 * 1.6346f) - (f3 * 50.259f) + (f2 * 88.977f) - (f * 89.565f) + 58.857f;
return f;
---
多分こんな感じです

>>378
ですね
W3PEの方はドライバからもらった値を小加工して返すだけなのであんまり面倒無いですねヽ(´ー`)ノ

382 :名無しさん@編集中:2015/10/01(木) 19:43:14.90 ID:MZuoeh7L.net
>>381
ありがとうございます。
CNRの計算式まで書いてもらえるとは思ってもいなかったです。

PX-BCUDのCNR計算方法はLinux DVB PT3ドライバと同じですね。
簡単な経緯は以下に。
http://peace.2ch.net/test/read.cgi/avi/1441037359/56

383 : ◆SALrG1ld3mTc :2015/10/01(木) 22:31:16.47 ID:FXKDgKxt.net
>>381
大体完成したようで何よりですヽ(´ー`)ノ

> PX-BCUDのCNR計算方法はLinux DVB PT3ドライバと同じですね。

そうなんですよねー
コードに起こしてからコレなんか見た事あるなと思って、PT3の旧SDKのソース(WinDriverが
使われてるのでSDKが殆どドライバのソースです)見直してみたら同じコードだったので、
もっと早くに気づいてたら慣れない浮動小数点絡みのアセンブラシコシコ読まなくても
済んだのに、と思いましたヽ(;´ー`)ノ

384 : ◆SALrG1ld3mTc :2015/10/01(木) 22:33:08.76 ID:FXKDgKxt.net
>>381 ×
>>382
失礼しました…

385 :名無しさん@編集中:2015/10/02(金) 12:22:42.58 ID:3H8JtadY.net
なんだよおまえら難しい話ばっかりしやがってW3PEユーザーのおれが酒でも奢ってやんよ

386 :名無しさん@編集中:2015/10/02(金) 13:41:23.95 ID:r6wj63lv.net
W3PEのオプソ版Bondriverは完成したの?
なら買ってくるけど

387 :名無しさん@編集中:2015/10/02(金) 13:46:35.42 ID:zd63mJaJ.net
スレみてると導入すげー大変そう

388 :名無しさん@編集中:2015/10/02(金) 23:29:06.90 ID:/iOd8IkH.net
>>386
完成はしたものの、正直微妙な出来のドライバーをBDAでなんとか動かしている感じのPlex製品より、BonDriverを念頭に設計された(といっても過言ではなさそうな)PTシリーズの方が遥かに良い。
PTシリーズは今だにドライバーのアップデートも行ってくれたし。

389 :388:2015/10/02(金) 23:29:56.41 ID:/iOd8IkH.net
>>388
正直微妙というのはPlexのデバイスドライバののと。一応。

390 :388:2015/10/02(金) 23:31:30.58 ID:/iOd8IkH.net
>>389
>デバイスドライバののと。
デバイスドライバのこと。

391 :名無しさん@編集中:2015/10/04(日) 18:58:25.55 ID:O5+npm4O.net
PTのSDKが更新されたから
OPENTUNER_RETURN_DELAY=10
の問題が直ったかと期待したけど放置だった・・・
がっかり

392 :名無しさん@編集中:2015/10/04(日) 19:35:58.04 ID:YPXySW80.net
>>391
マジか!
たしか誰かがearthsoftに報告したよね。

393 :名無しさん@編集中:2015/10/04(日) 23:18:22.21 ID:O5+npm4O.net
具体的に、Sleep(10)を何処に入れればいいのでしょうか?

if( enISDB == PT::Device::ISDB_T ){
if( iTuner == 0 ){
m_EnumDev[iDevID]->bUseT0 = FALSE;
}else{
m_EnumDev[iDevID]->bUseT1 = FALSE;
}
}else{
if( iTuner == 0 ){
m_EnumDev[iDevID]->bUseS0 = FALSE;
}else{
m_EnumDev[iDevID]->bUseS1 = FALSE;
}
}

394 :名無しさん@編集中:2015/10/05(月) 17:38:38.17 ID:JzcAbdKy.net
bondriverproxyは導入難しいの?
環境新しくするから入れてみようかと思ってたんだが

395 :名無しさん@編集中:2015/10/05(月) 19:27:58.27 ID:g9FKjFgP.net
当人のレベルによるから難しいのかどうか聞かれても困るよね。
やってみればすぐわかること。

396 : ◆SALrG1ld3mTc :2015/10/06(火) 07:51:21.09 ID:pOPt5JpK.net
>>393
---
if( enISDB == PT::Device::ISDB_T ){
if( iTuner == 0 ){
m_EnumDev[iDevID]->bUseT0 = TRUE;
}else{
m_EnumDev[iDevID]->bUseT1 = TRUE;
}
Sleep(10); // ここです
}else{
if( iTuner == 0 ){
m_EnumDev[iDevID]->bUseS0 = TRUE;
}else{
m_EnumDev[iDevID]->bUseS1 = TRUE;
}
}
---
必要なのは、CPT1Manager::OpenTuner()とCPT1Manager::OpenTuner2()にだけで、
CPT1Manager::CloseTuner()の似た部分はさわる必要ありませんよ
あと、良かったらこちら↓もどうぞ…
http://peace.2ch.net/test/read.cgi/avi/1430828601/114-121n

>>394
>>395さんもおっしゃってますが、ひとまず試してみてわからない点があれば
聞いていただければと思いますヽ(;´ー`)ノ

397 :名無しさん@編集中:2015/10/06(火) 17:54:08.01 ID:4DCMKwci.net
>>396
これってPT3でも同様の問題がありますでしょうか?

398 :名無しさん@編集中:2015/10/06(火) 18:09:13.54 ID:gedYKS5x.net
>>396
ありがとうございます。
やってみます。

399 :名無しさん@編集中:2015/10/06(火) 18:09:40.22 ID:gedYKS5x.net
>>397
ないと思います。

400 :名無しさん@編集中:2015/10/08(木) 12:40:52.39 ID:zkaToWlG.net
>>396
327 名無しさん@編集中 sage 2015/10/08(木) 11:44:06.32 ID:q73TjTj5
>>326
コーティング規約云々以前に必要のないSleepが入っているよ。
あと、72行目のNULLも必要ない。
適当に追加しているようだけど、一度全部追ってからの方がいいよ。
反論する前に聞く耳を持ったほうがいい。
正直、不足。

401 :名無しさん@編集中:2015/10/08(木) 13:34:26.82 ID:phdzIbYI.net
>>400
>>396のは正解のソース。修正が必要なのは別のソース。

402 :名無しさん@編集中:2015/10/10(土) 00:35:54.70 ID:ou3/liYg.net
出張なさっておられる

403 :名無しさん@編集中:2015/10/10(土) 17:04:46.73 ID:ay8m38a5f
遅ればせながら
BonDriverProxyにB25パッチ(b25_patch_for_bdpx_ver.1.1.5.5)当てて見ました
BonDriver_PT3(生)->BonDriver_Splitter->BonDriverProxy->LAN->BonDriver_Proxy
->TvTest(0.9.0)
がTVTestのチューナーでチューニング空間が 0:チューニング空間0
1:チューニング空間1
2:チューニング空間2
となってチューニング空間を認識できないようでチャンネルスキャンもできません
TVTestのチューナーから選択すると正常に再生されます
B25パッチを当てていないオリジナルでは正常です
これって、私だけ?
どなたか教えて

404 :名無しさん@編集中:2015/10/10(土) 18:05:54.42 ID:1xBt+dKs.net
操作ミスで連投失礼
遅ればせながら
BonDriverProxyにB25パッチ(b25_patch_for_bdpx_ver.1.1.5.5)当てて見ました
BonDriver_PT3(生)->BonDriver_Splitter->BonDriverProxy->LAN->BonDriver_Proxy
->TvTest(0.9.0)
がTVTestのチューナーでチューニング空間が 0:チューニング空間0
1:チューニング空間1
2:チューニング空間2
となってチューニング空間を認識できないようでチャンネルスキャンもできません
TVTestのチューナーから選択すると正常に再生されます
B25パッチを当てていないオリジナルでは正常です
これって、私だけ?
どなたか教えて

405 :名無しさん@編集中:2015/10/11(日) 09:54:44.44 ID:1amKenyMI
現在のBonDriverProxy(Ex)は1.1.6.3だと思いますが
1.1.5.5用パッチってそのまま当たるんでしたっけ?
それに1.1.5.5って >>96 だとしたら>> 98 のコメントにもありましたが
ソース足りなくありません?

自分は >>54 の1.1.5.3用を当てた後、
ローカルで更新してる1.1.6.3ですが
B25_DECODE=1 でも 0でも問題なく動作しています

406 :名無しさん@編集中:2015/10/11(日) 13:08:32.13 ID:fJOo/5Y1.net
403です
自己解決しました
Proxyのプロパティで文字セットを"設定なし"にしていたためでした
修正して解決です

407 :名無しさん@編集中:2015/10/12(月) 17:41:07.90 ID:XuthCV7Z.net
BonDriverProxyEXでB25デコードをしたいので、宜しければ「bcas_crypt.c」と「decode_ecm.c」をUPして貰えませんか?

エラー 1 error C1083: ソース ファイルを開けません。'arib25\bcas_crypt.c':No such file or directory C:\Users\XXXXX\Desktop\BonDriverProxyEx-master\BonDriverProxyEx\c1 BonDriverProxyEx
エラー 4 error C1083: ソース ファイルを開けません。'arib25\decode_ecm.c':No such file or directory C:\Users\XXXXX\Desktop\BonDriverProxyEx-master\BonDriverProxyEx\c1 BonDriverProxyEx

よろしくお願いします

408 :名無しさん@編集中:2015/10/12(月) 19:54:12.91 ID:Mg13pJIm.net
>>15>>54を揃えればいいんじゃないの?

409 :名無しさん@編集中:2015/10/12(月) 20:22:54.91 ID:XuthCV7Z.net
>>408
そこのソースには「bcas_crypt.c」と「decode_ecm.c」が含まれていなかったんですよ

410 :名無しさん@編集中:2015/10/12(月) 20:47:31.29 ID:Mg13pJIm.net
>>96のパッチを使わなければいいのでは?
うちは>>54を使ったけど。。。

411 : ◆SALrG1ld3mTc :2015/10/12(月) 21:37:49.77 ID:ekDVsTpl.net
「bcas_crypt.c」と「decode_ecm.c」は、恐らくその名の通りの機能を持つソースなのでしょう
個人での実験用途でならともかく、一般公開はちと憚られるものではないかと思うので、
ご注意ください…ヽ(;´ー`)ノ

412 :名無しさん@編集中:2015/10/13(火) 07:44:24.27 ID:FY5Uk1yp.net
>>409
「bcas_crypt.c」と「decode_ecm.c」は必要ないです
windscard.libのリンクは必要ですが

413 :410:2015/10/13(火) 07:51:13.63 ID:FY5Uk1yp.net
間違えた
winscard.lib ね

414 :名無しさん@編集中:2015/10/13(火) 19:56:40.00 ID:Qc9Z8p69.net
>>412
ありがとうございます

hoge2014〜からwinscard.libを生成し1.1.5.3をリリースでビルドすると下記エラーが出力されます
エラー 1 error LNK2001: 外部シンボル "__imp__g_rgSCardT1Pci" は未解決です。 C:\Users\XXXXX\Desktop\BonDriverProxyEx-7bcba06c6743eab9a51c3769c10b1c6ad787cf2b\BonDriverProxyEx\b_cas_card.obj BonDriverProxyEx
デバッグでビルドすると出ません。
デバッグでビルドすべきなのでしょうか?

415 :410:2015/10/14(水) 04:12:44.10 ID:B0wywBd5.net
>>414
winscard.libは最初からあなたのパソコンのどこかにインストールされてます
hoge2014〜ってなに

416 :405:2015/10/14(水) 20:10:55.70 ID:xP5vXzMg.net
ありがとうございます
BDPXのバージョン間違いやら紆余曲折ありましたが、無事目的を達成できました。

417 :名無しさん@編集中:2015/10/30(金) 17:41:27.30 ID:Tw4F38xG.net
BonDriverProxyですが、サーバ、クライアント同じPCで使う時に
127.0.0.1と指定すると接続できません。Spinelは127.0.0.1で繋がります。
127.0.0.1で繋がるようにならないでしょうか。

418 :名無しさん@編集中:2015/10/30(金) 17:45:17.56 ID:C+StQ3ym.net
昨日からPTCtrl.exeがカーネルにアクセスしてBSoD(STOP: 0x1000008E)になるんだけど、
この解決方法ってある?
PTCtrl.exe ver. 0.1.3013.0

419 :名無しさん@編集中:2015/10/30(金) 17:46:33.15 ID:WFkLfkJq.net
>>417
繋がるよ。設定がミスっている。
ホスト・クライアント両方を
ADDRESS=127.0.0.1
にする。

420 :名無しさん@編集中:2015/10/30(金) 18:01:56.43 ID:3a4NyaJ8.net
B25パッチ、快調ではあるんだが、地元ケーブルテレビの独自放送局だけ復号できない。
TVTest側で復号すると普通に見られるから、B25decoderとlibarib25の処理の違いかな。
エラー数の増え方がゆっくりなので、全パケットの復号に失敗しているわけでもなさそう。

421 :名無しさん@編集中:2015/10/31(土) 11:19:10.47 ID:Hy7U6q1J.net
>>419
ありがとうございます。
たしかにホスト、クライアント両方127.0.0.1にすれば繋がりました。
でもそれだと、他のPCからはIPアドレス指定しても繋がらない。
理想としては、SpinelみたいにホストにはIPアドレス指定は不要
クライアントはホストと同じPCなら127.0.0.1、別PCならホストのIPアドレスを指定すれば繋がることです。

総レス数 837
356 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200