15/05/10 12:46:23.51 JKeD86ha.net
例のってB25?
追加の依存ファイルにwinscard.libは追加した?
97:名無しさん@編集中
15/05/10 13:58:41.73 zDd2cnKp.net
>>86
おぉっ!TSSYNC=1で今まで現れなかったチャンネルがひょっこり検出されました!
すごいぃぃ、MXが劇的に軽くなったー!うぉぉぉぉ!感謝感激!
解決までおつきあいくださり本当にありがとうございました
98:名無しさん@編集中
15/05/10 15:50:17.80 bgvpWfAO.net
>>89
おお、TS同期の問題でしたか
同期してないTSを出力するBonDriverもやっぱりあるんですね
あるかもしれないなと思って追加しておいた機能でしたが、実際に役に立つ時が来るとは…
ReadMe読む限り、本当の意味でのいわゆるTS抜きをやってるBonDriverっぽいのでその辺の関係でしょうか
なんにしても、解決してよかったです
99:名無しさん@編集中
15/05/10 15:58:44.36 nB8y/DhK.net
b25パッチ自分の環境は通常版には問題なくビルド通る
けどサービス版は7 件の未解決の外部参照ってでて通らない
100:名無しさん@編集中
15/05/10 17:01:23.70 q5AQh1e/.net
winscard.libを追加し忘れてるだけじゃないの?
すべての構成 すべてのプラットフォームを選んでやれば
いっぺんに追加できると思うが。
101:名無しさん@編集中
15/05/10 17:36:38.03 nB8y/DhK.net
winscard.lib追加でビルド通りました
けどサービス開始できないorz
もうおとなしくしておきます
102:名無しさん@編集中
15/05/10 19:53:16.20 5nLb3JCD.net
なんとかビルド出来ました
お騒がせしました
103:名無しさん@編集中
15/05/10 20:02:06.67 qiloWOJt.net
diffうp!
104:名無しさん@編集中
15/05/11 00:59:58.97 mIjEew6M.net
URLリンク(pastebin.com)
105:名無しさん@編集中
15/05/11 02:31:43.81 uDEg8zKR.net
>>96
これ不味いんじゃないの? 勘違いだったらごめんね
106:名無しさん@編集中
15/05/11 11:3
107:9:04.94 ID:CX5SvvwT.net
108:名無しさん@編集中
15/05/20 08:42:21.59 NvUWI1Af.net
最近EDCB tkntrec版とproxy,proxyEXを最新版に更新したらプレミアム用のbondriver使用時に
EDCBからのproxyがアクセス出来なかったってエラー吐くようになった
proxyEX再起動で治ったけどいつ落ちて録画できなくなるかわからんし
上の状態でもtvtestからのproxy使用では普通に見れる
とりあえずproxyのタイムアウトを10にしといてどうなるか様子見するけど
アクセス出来ないで居座るぐらいならrestart on crash使うのでその時点でproxyからexを落とすようになオプションが欲しい
109:名無しさん@編集中
15/05/20 19:44:24.27 TAF3vpCX.net
無印proxy1.1.4.9をsplitter経由で長らく使ってきて、1.1.5.4にして2回応答無し(タスクトレイは動作)になったかな
今は1.1.5.2で様子見中
Splitter経由だとMX2がEDCBで録画できなかったけどEDCBソースをちょっといじったら大丈夫になった
Proxy&Splitter最高です。作者様に感謝
110:名無しさん@編集中
15/05/21 22:34:18.35 tp2KvQfW.net
おお、なんだろう…
再現条件等がわかればいいのですが(;´Д`)
とりあえずちょっと時間がある時に見直してみます
サーバを殺すコマンド追加は出来なくもないですが、その手の用途ならサービス化してしまって、
PsToolsのPsService(URLリンク(technet.microsoft.com))辺りで
restartかけるのが良いかもしれませんね
111:名無しさん@編集中
15/05/21 22:40:24.58 tp2KvQfW.net
あ、このスレの内容にはあんまり関係ありませんが、さっきgoogleドライブにptTimer最新版(0.6.3.2)用の
ちょっとしたツールを置いたので、ptTimerユーザの方は良かったらどうぞ
112:名無しさん@編集中
15/05/22 15:29:13.79 EX4yvF1p.net
>>102
ありがとうございます
113:名無しさん@編集中
15/05/23 11:05:05.10 285Xyes7.net
どなたか地デジのQPSKシンボルレートがわかる方いますか?
114:名無しさん@編集中
15/05/25 08:26:05.33 2Amu9+W/.net
>>104
当方無線は全くの素人ですが、その辺りの情報はARIB STD-B31とTR-B14に載ってる感じでした
当方の理解では、QPSKはワンセグにしか使われてないみたいですね
115:名無しさん@編集中
15/05/26 08:32:40.37 EP9gjKhL.net
BonDriver_Splitterはもう
配布していないの?
116:名無しさん@編集中
15/05/26 10:45:26.18 GCGBl4Mb.net
BonDriverProxy_current(********).zipの中に入ってるよ
117:名無しさん@編集中
15/05/26 12:24:30.92 EP9gjKhL.net
>>107
ありがとう。
118:名無しさん@編集中
15/05/26 16:26:33.06 BEfT//hZ.net
>>96
幾つかエラーになるけどいいのかな?
119:名無しさん@編集中
15/05/28 00:19:55.14 E1f5dQzy.net
誰かPT2のSDKバグを社長に報告して
120:名無しさん@編集中
15/05/28 01:22:47.80 xdztqLFI.net
前スレのこの件?
スレリンク(avi板:566番)
数レス後でメール投げていいかって聞いてた人いたけど、どうなったんだろね。
遠慮しなくても、>>110が投げてくれたらいいんじゃなかろうかと思いつつ、
自分で検証してないものを報告するのもどうかと思ったから他人任せにしてたけど、
結局誰も投げてない/投げないなら検証してから投げてみるかな。
ご丁寧に検証用コードまで上げてくれてるproxyの作者さんには頭上がらないですね。
121:名無しさん@編集中
15/05/28 14:29:58.69 u4v4X4Re.net
>>111
元で改善したほうがすっきりするよね。
原因がわかっていて下で対応するのは気持ち悪い。
122:111
15/05/28 18:55:59.71
123:xdztqLFI.net
124:名無しさん@編集中
15/05/28 19:55:58.97 1fTM+wtL.net
>>113
ありがとう
125:sage
15/05/30 02:37:56.74 Hr8XVGM7.net
Windowsに刺したPX-S3U2をBondriver_Proxy経由でubuntuで使うことは可能でしょうか?
とりあえず試してみましたが CreateBonDriver error: pIBon[(nil)] pIBon2[(nil)] というエラーが表示されてしまいました。
Windowsの方でBondriverProxyが正常に動作していることは確認しました。
126:名無しさん@編集中
15/05/30 06:32:32.83 PHHbw81k.net
>>115
試してないけど出来るはずだけど。
strace -o output.log -s 1024 sample -b ./BonDriver_Proxy.so -s 0 -c 63 -t 30 -o test.ts
とかやってみてoutput.logを最後の方から眺めていけば何かエラーが出てるはず。
自分が良くやったのは、設定ファイルを「BonDriver_Proxy.conf」から
「BonDriver_Proxy.so.conf」(.confではくて.so.conf)に変更するのを
忘れること。これだと以下のエラーが出てるはず。
open("./BonDriver_Proxy.so.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
後は設定ファイルの中身が正しいかどうかとか。
127:名無しさん@編集中
15/05/30 10:34:49.23 Hr8XVGM7.net
>>116 ありがとうございます。試してみましたが設定ファイルは存在していました。
設定ファイルの中身ですがBonDriver_Proxy.confについては ADDRESS,PORT,BONDRIVERだけ変更すればよいと思うのですが、
BonDriver_LinuxPT.confのほうは編集する必要ありますか?
128:99
15/05/30 12:03:23.72 23A2dWjG.net
とりあえず>>99以後3回ほど現象が再現
イベントビューアーには異常なし
3回のうちtvtestからもアクセス出来ずタスクマネージャーからも終了出来ないのが1回
restart on crashがハングアップを検出して再起動するもEDCBからはチューナーオープン出来ないのが1回
(tvtestからはアクセス可能、BonDriverProxyExを手動で終了、再起動した場合はEDCBからも使えるようになった)
どなたかBonDriverProxyEx 1.1.5.3のソースアップして貰えませんか?
消してしまったので手元に残ってないんです
とりあえずこのエラーが出るようになる前に1.1.5.3を暫く使ってたので戻して様子見しようかと
129:名無しさん@編集中
15/05/30 12:26:33.61 +ncDeb7F.net
>>118
URLリンク(github.com)
130:名無しさん@編集中
15/05/30 14:25:11.87 IByyIVqo.net
>>117
BonDriver_LinuxPT.confはubuntu側にチューナが刺さっている場合に使う物なので、
ubuntu側をクライアントとして、win側のチューナを使う場合にはさわる必要はないです
>>118
検証ありがとうございます
1.1.5.3から現バージョンまでの変化で怪しい部分と言えばダントツでUI追加ですね…
現バージョンのソースで
URLリンク(github.com)
の行をコメントアウトか削除すれば、1.1.5.3とほぼ同じになるはずなので、
もし1.1.5.3に戻して問題が起きなくなったなら、余裕があればこちらも試してみて下さい(;´Д`)
#なおサービスバージョンの場合は必然的にそうなりますので、サービスバージョンでも問題が起きる場合は
#UI関係ではない可能性が高いと言う事になります…
131:名無しさん@編集中
15/05/30 14:51:12.14 Hr8XVGM7.net
>>120 ありがとうございます。
調べたところ↓の !pProxy->SelectBonDriver() でエラーが起こっているようなのですが何が原因なんでしょうか?
URLリンク(github.com)
132:名無しさん@編集中
15/05/30 16:10:08.78 IByyIVqo.net
>>121
そこでコケると言うのは、サーバ側に、使用したいBonDriverはこれだとリクエストしたけど、サーバ側から
エラーが返ってきたと言う事ですね
エラーになる原因はいくつか�
133:lえられますが、confに設定しているBONDRIVERの値が、win側で読み込ませたい BonDriverのパス指定として間違っているとか、win側で読み込ませたいBonDriverが何らかの理由で読み込めなかった (例えば、x64版のサーバを動かしていて、x86のBonDriverを読み込もうとした等)辺りが可能性高いのでは ないでしょうか
134:名無しさん@編集中
15/05/30 17:01:45.38 Hr8XVGM7.net
>>122 クライアント側confのBONDRIVERを、サーバ側にある(Windows用)ドライバのパスにしたら接続することができました。ありがとうございます!
勘違いしてLinuxのBonDriver_LinuxPT.soのパスを書いてました。。
135:名無しさん@編集中
15/05/30 20:26:46.97 IByyIVqo.net
>>123
おお、よかったです
確かにlinux側で動くプログラムのconfにwin用dllのファイル名書くとか、その逆でwin側のiniに
linux用共有オブジェクトのファイル名書くとか、あまり無い状況ではありますしねヽ(;´ー`)ノ
136:名無しさん@編集中
15/05/30 21:13:57.09 4/La33sl.net
>>123,124
そういえばWindowsをサーバーにしてLinuxからアクセスしたことなかったなと
思ったのでテストして文章書いている間に解決してたのだけど...。せっかく
書いたしこんな感じでいけましたよということで。
サーバー : Windows7、PX-W3U3、BonDriverProxy
クライアント: Ubuntu、BonDriverProxy_Linuxのsample、BonDriver_Proxy.so
○Windowsでのサーバー側手順
・C:\Users\XXXXXX\Documents\Software\BonDriverProxy に以下を配置。
BonDriverProxy.iniはSample.iniをコピーしたもの。
BonDriverProxy.exe
BonDriverProxy.ini
・BonDriverProxy.ini はADDRESSをサーバーの実際のアドレスに直す。
[OPTION]
ADDRESS=192.168.2.8
・BonDriver_PX_W3U3_T.dllはTVTestのディレクトリにあるものを使う。
C:\Users\XXXXXX\Documents\Software\TVTest\BonDriver_PX_W3U3_T.dll
137:名無しさん@編集中
15/05/30 21:14:32.75 4/La33sl.net
○Ubuntuでのクライアント側手順
・BonDriver_Proxy.conf を BonDriver_Proxy.so.conf として
BonDriver_Proxy.so と同じディレクトリにコピー。
・BonDriver_Proxy.so.conf の以下を修正。ADDRESSはWindowsサーバーのアドレス。
BONDRIVERはWindows側のBonDriver_PX_W3U3_T.dllがBonDriverProxy.exeと
違うディレクトリにあるのでフルパスで指定した。
ADDRESS=192.168.2.8
BONDRIVER=C:\Users\XXXXXX\Documents\Software\TVTest\BonDriver_PX_W3U3_T.dll
・sampleを実行
sample -b ./BonDriver_Proxy.so -s 0 -c 13 -t 30 -o test.ts
138:名無しさん@編集中
15/05/31 23:03:09.30 yg+1TyOr.net
そこ、自分もハマった。
無理なのかとおもって結局BonDriverExの方を使った
139:名無しさん@編集中
15/06/01 13:19:52.05 VwaJpF+m.net
VisualStudioExpressからパッチファイルの作成方法教えてください。
140:名無しさん@編集中
15/06/01 14:02:09.53 6TGhxYmc.net
WinMergeやdiff.exeなら聞いたことあるけど
Visual Studioでパッチ作成できるなんて初めて聞いた
141:名無しさん@編集中
15/06/01 15:46:11.74 8aactuIS.net
開発環境なんだから作ろうと思えば作れる
142:名無しさん@編集中
15/06/02 20:56:10.99 V9uJvN6g.net
WindowsにBondriverProxyのサーバーを立てて、LinuxでrecbondとBondriver_Proxyを使って録画しようとしています。
recbondでBSのチャンネルを指定する方法がよくわからず録画できないのですが、どのように指定すればよいのでしょうか?
地デジの方はBonDriverチャンネル指定で正常に動作しました。
143:名無しさん@編集中
15/06/03 19:56:28.25 6WBC4Ffy.net
>>131
sampleなら
地デジ=sample -b ./BonDriver_Proxy_T.so -s 0 -c 0 -o t0.ts -t 30
BS =sample -b ./BonDriver_Proxy_S.so -s 0 -c 0 -o s0.ts -t 30
recbondは使ってないのだけど同じじゃないかな?
地デジ=recbond --driver ./BonDriver_Proxy_T.so B0 30 t0.ts
BS =recbond --driver ./BonDriver_Proxy_S.so B0 30 s0.ts
当たり前だけど、BonDriver_Proxy_S.so.confのBONDRIVERはWindowsの
BS用のBonDriverを指定するってこと。
まあ、同じ機種を持っている奇特な人がテストしてくれるかもしれない
からWindowsのチューナーの機種名とかBonDriverのファイル名とかも
書いた方が良いのではないかな。
144:名無しさん@編集中
15/06/03 20:02:10.55 mmoRp2AN.net
>>131
今ちょっと手元に環境が無くて試せないのですが、ドキュメントからもソース眺めた感じからも、
B0みたいに指定すれば対象BonDriverのSetChannel()に直接指定した数
145:値を渡すようになっているように見えるので、 このBonDriverチャンネル指定を使う場合は地デジもそれ以外も同じではないでしょうか? #https://github.com/dogeel/recbond/blob/e6fe8e3c68c8ec5994faf267d64b7fe528e004bf/recpt1core.c#L46 #のnodeは(int)dwBonChannelでしょうね linux版の方で作者さんに直接聞く方が確実かもしれませんがヽ(;´ー`)ノ
146:名無しさん@編集中
15/06/03 20:06:52.34 mmoRp2AN.net
ありゃ、カブッてしまいましたヽ(;´ー`)ノ
でも同意見なのでやはりそれであってそうですね
147:名無しさん@編集中
15/06/03 22:40:16.49 v06+f8+C.net
>>132,133 どうもありがとうございます。
過去ログをよく読んだらBonDriver用のiniファイルをドライバがあるフォルダに置いてなかったの原因でした。。。
iniファイルをおいたら地デジと同じようにBonDriverチャンネル指定で録画することができました!
148:名無しさん@編集中
15/06/07 01:47:09.31 NJt7m8oi.net
GitHubの現行BonDriver_Splitterにはデータ放送を削除する機能は無いですか?
>>11の話では旧版では削っていたようなので、現行でも削れると嬉しいのですが
149:名無しさん@編集中
15/06/07 15:47:52.43 ATXjj8vB.net
>>136
無条件削除しているままでしたが、わかりにくいので明示的に指定された場合のみ削除するようにしました
iniのDELオプションにTYPEDを指定すると削除されるようになります
#なお、書くの忘れていましたが、MODPMT,TSSYNC,DELの各オプションは1チャンネル1サービスモードが有効な場合にのみ機能します
今までのバージョンを使用していた方で、今まで通り削除して欲しいと言う方は申し訳ありませんがiniに追記お願いします
あと、スレッドハンドルの閉じ忘れに気付いて修正しているので、変更内容的にはバージョン上げなくても良いかなと
思った方も更新する事をおすすめします…
150:名無しさん@編集中
15/06/07 18:52:50.84 XwMoUsei.net
>>137
更新お疲れ様です
EPG情報を取得する場合、データ放送に加えてどこまで削れるのかわからずやっとCDTを削ってみたビクビク人生
Proxy&Splitterで毎日使わせてもらっています。ありがとうございます
151:名無しさん@編集中
15/06/07 23:05:17.55 5GPv3IdS.net
Windowsタブレット(Atom Z3740)でのTvTest視聴(wifi,Splitter経由)のCPU負荷軽減のためにBonDriverProxyEx.exeのB25デスクランブル改造してみたけど、
クライアント側の負荷はほとんど変わらないようだ
Splitterでのネットワーク負荷の低減のほうがはるかに大きいね、DELオプションでの差はもっと検証したい
152:名無しさん@編集中
15/06/08 01:04:03.99 fp2y4Jw8.net
>>137
更新乙です
"DEL=TYPED"を指定しても、TVTestの「ストリームの情報」にはデータ1~nがズラッと並んでいるのですが、並んでいても正常にデータ放送PIDが削除されてると判断して良いのでしょうか?
(しばらく放置しても局ロゴを取得できてないので、正常に削れてるぽい?)
BonDriver_Splitter.dllはVS2013Update4でx64ビルドしたものです
153:名無しさん@編集中
15/06/08 21:02:04.53 2Zp3U60+.net
>>140
はい、実際のデータは削除されています
例えば、その状態でTVTestから「データ放送を保存する」のチェックを入れて録画して、その録画ファイルを
tsselect(URLリンク(www.marumo.ne.jp))にかけてみると確認できると思います
TVTestの「ストリームの情報」ではPMTに書かれている情報を表示しており、BonDriver_SplitterはPMTの編集は
行わないのでそうなっています
MPEG-2 TSの仕様上はそうなっていても問題無かったと思うので…
ついでにもうちょっと細かく制御できるようにしてみました
154:名無しさん@編集中
15/06/08 21:19:23.45 2Zp3U60+.net
ちなみに消せるようにしてるものの内サイズが大きいのはTYPEDとEITで、有料放送の場合はE
155:MMも結構大きいですね #EPG使うならEIT全部は消せませんが それ以外は全体的なサイズからみたらほとんど誤差みたいなもんかなと思いますよ
156:名無しさん@編集中
15/06/09 12:40:18.23 dy4IsfwA.net
サイズが大きいのはTYPEDとEITとメモメモ
EPG取得のときだけEITを取得するiniに入れ替えればいいね
これで更に軽くなるっす。感謝
157:名無しさん@編集中
15/06/10 00:31:28.81 Q9xQLqXi.net
PTのSDKの件、社長さんにメール投げて反応ありました?
どうなったんだろう?
158:名無しさん@編集中
15/06/10 21:55:18.96 KNgTEl+e.net
BonDriver_PT-ST(人柱版3) up0305
をビルドしようと思っているのですが、BonDriver_PT.dllが出来るだけで、
BonDriver_PT-S.dll
BonDriver_PT-Tdll
が出来ません。
どうすれば出来るようになるんですか?
159:名無しさん@編集中
15/06/10 22:56:51.15 DawwtJ1g.net
>>145
スレチ
スレリンク(avi板:103-106番)
160:名無しさん@編集中
15/06/10 23:42:27.76 KNgTEl+e.net
>>146
すみません
161:名無しさん@編集中
15/06/10 23:45:51.42 KNgTEl+e.net
>>146
それはPT3の場合で、BonDriver_PT-ST(人柱版3) up0305 には該当箇所がありませんでした・・・
162:名無しさん@編集中
15/06/10 23:54:25.52 W3wNn8lN.net
>>148
オリジナルのままなら、BonTuner.cppに
#define _ISDB_T
の行はあるはずなので、もしかしてちょっと前に当方がEDCBスレに貼ったパッチを当ててのビルドの話でしょうか
もしそうなら、できたバイナリをコピーしてBonDriver_PT-S.dllやBonDriver_PT-Sx.dllと言う名前にすればS用、
BonDriver_PT-T.dllやBonDriver_PT-Tx.dllと言う名前にすればT用として動くようになってます
163:名無しさん@編集中
15/06/11 00:13:14.96 SZrgZKdI.net
>>149
そういうことでしたか。
ありがとうございました。
スレチすみませんでした。
164:名無しさん@編集中
15/06/11 19:19:11.47 UWjoao+5.net
>>149
せっかく投下してくれたパッチなのに情報が散々していてしまって勿体無い。
このままじゃパッチも情報も埋もれちゃうね・・・
165:111
15/06/12 21:46:44.75 dpncjzPZ.net
>>144
残念ながら、現在のところ反応はないですね。
どうしたもんでしょうね。
166:名無しさん@編集中
15/06/14 13:53:31.43 73ktUDyi.net
>>152
そうですか・・・
瓦ドラにSleep入れて対処します。
かすかな期待を持って待ってみます。
167:名無しさん@編集中
15/06/28 22:45:15.44 vQNdw/G8.net
すいません、>>4にある、BonDriver_RDCT をDLしたいんですが
パスがわかんないです…
せめてヒントの一つでも教えていただけないでしょうか?
168:名無しさん@編集中
15/06/28 23:03:28.87 LdbsNTp/.net
>>154
ここは何板だよ
169:名無しさん@編集中
15/06/28 23:08:33.53 vQNdw/G8.net
>>155
検索しまくって、自己解決したっす
ありがと
170:名無しさん@編集中
15/06/28 23:15:13.08 LdbsNTp/.net
>>156
よかったね
171:名無しさん@編集中
15/07/10 16:27:43.18 7QMhZb72.net
ノートンときたら><;
172:名無しさん@編集中
15/07/12 23:04:45.14 6oWBR5vD.net
BonDriverProxy_Splitterで削れば今どきの格安Winタブでもスペック大丈夫?
173:名無しさん@編集中
15/07/13 00:15:40.05 SCiTsKua.net
Splitterってどうやって使うのかよくわからん
bondriverproxyExと組み合わせて使えたりしないの?
誰か優しく教えてください
174:名無しさん@編集中
15/07/13 00:36:11.01 0OlbZrg8.net
>>159
VirtualPTで申し訳ないけど、不要なサービスが一通り削れた状態でYogaTab2-8とかVivo tabで普通に視聴出来てる。
(テレビとか見る目的なら、自立するし音良いしバッテリーの保ちもいいし、Yoga tabなかなかおぬぬめ。)
AP選ぶ時は古い11n対応製品だと少し速度�
175:ォりないかも。買い換えるなら5GHz対応品がお勧め。 タブレット選ぶ時は無線感度の評判とか気をつけた方が良いかも。同じく5GHz対応品がお勧め。
176:名無しさん@編集中
15/07/13 01:32:20.82 bPtspu60.net
Splitter最高!とても助かってます。Proxy共々最新版でド安定。作者さんに感謝感謝
177:名無しさん@編集中
15/07/16 19:51:14.47 GdphdNtN.net
KTV-FSUSBでBonDriver_Proxy&Splitter(TSSYNC=1,TSSYNC=1,DEL=TYPED)の組み合わせで有り難く使わせてもらっています
TVTest0.9でMX1とMX2を頻繁にチャンネル切り替えしていると希に映像が止まりってしまいます(dBやMbpsは正常に動いている)
切り替え50~100回に1回程度のことなので気にするなと言われればそれまでなのですが、EDCBでもMX1の録画で極希に0byteファイル(エラー無し)が出来てしまうので困っています(EDCBに関しては別の原因かもしれませんが)
Proxy単体ではもたつくことはありますがチャンネル切り替えに失敗することはないようです
うちだけのおま環現象なのでしょうか?
178:163
15/07/16 22:45:36.15 GdphdNtN.net
すいません、その後、画面が止まった状態で録画ボタンを押してみたところきちんと録画されてました
どうやら自分でビルド&改造したTVtestやEDCB周辺の問題みたいです
Splitterの不具合ではありませんでした。本当に申し訳ございませんでした
179:名無しさん@編集中
15/07/27 10:44:09.10 OLYwHRxG.net
BonDriverProxyのCAS処理の有無をBonDriver毎に設定できるようになるといいな。
ついでにプレミアムも観たいのでデコーダーを選べるようになるといいな。
180:名無しさん@編集中
15/07/27 10:53:25.45 +yqMGGCd.net
>>165
何の意味があるんだか
181:名無しさん@編集中
15/07/28 11:13:10.69 uQLzGymH.net
>>166
素人にはわからないんだろうな
182:名無しさん@編集中
15/07/28 12:54:58.52 vrCFW5Y/.net
>>167
ぷっ
183:名無しさん@編集中
15/07/28 21:07:15.07 HoYH6NEk.net
俺プロだけど分からないわー
184:名無しさん@編集中
15/07/29 12:09:33.35 MIIfV6gU.net
お前じゃ分からないか、この領域(レベル)の話は
185:名無しさん@編集中
15/07/30 07:18:43.42 vSMHrbjo.net
自称プロは実在をしらないんじゃないか?
素人の俺でもわかるのにww
186:名無しさん@編集中
15/07/30 21:20:30.77 ttIkp/O6.net
寄付で30万円ぐらいしか稼いだことないなんちゃってプロな俺は分からないなぁ
187:名無しさん@編集中
15/08/21 18:23:47.10 pzoegyNf.net
BonDriver_Splitterいいですね1日遊んだんですけど単体は問題なしなんですが
BonDriverProxyとの連携が全然うまくいきません
そのままSoritterをProxyのiniでラッピングしてもダメなのかな
iBondriver()がNULLで返されましたとTVTESTで返してお手上げです。
実験でSpritterをSpinelに飲ませてみたのですが色々書き換えて
認識は問題なしTVTESTでもエラーでずだけど
チャンネルスキャンが灰色で選べないで手詰まりに
BonDriver_PT-S.ChSet.txtを書き換えてなんとかなるレベルなんだろうかこれは
もう1つのProxyのほうはなんでエラーでてるのかさっぱりなのでソース読んで
エラーを自分で振ってチェックしてみるか。
188:名無しさん@編集中
15/08/21 18:35:58.64 ub+yp1q/.net
マザーをまな板って言う香具師
ソフト関連やハードを遊ぶって言う香具師
sourceをソースって言う香具師
これらは全員キモオタの中二病だと本気で認識してる
189:名無しさん@編集中
15/08/21 18:42:51.23 fDrjavBU.net
なんの改変ネタだよ
190:名無しさん@編集中
15/08/21 22:32:16.53 WwdJQNBG.net
香具師つかう人なつかしいな・・脳が10年前でストップしてる
191:名無しさん@編集中
15/08/22 00:46:11.11 FWrY
192:XTeR.net
193:名無しさん@編集中
15/08/22 23:58:37.11 BrjHK9By.net
結局香具師の本来の意味って調べたことなかったな
194:名無しさん@編集中
15/08/25 10:19:34.57 luLqmVUt.net
Bondriver_Splitterって鯖じゃなくて自機のローカルのBondriverを1チャンネル1サービスに分割することって出来る?
と思って試してみたらtvtestの視聴は正常に出来るんだけど、
ソース: Application Error
イベント ID: 1000
障害が発生しているモジュール名: msvidctl.dll_unloaded
とイベントログに必ず記録されるんだけど
あとtvtest.iniに最後に見たチャンネルなどの設定が正常に記録されなくなる
195:名無しさん@編集中
15/08/25 22:01:19.60 neqPdG2n.net
DirectShow関係のライブラリみたいだけど、デコーダとかレンダラとか切り替えてみたら。
bonDriver関係ないと思う
196:名無しさん@編集中
15/08/25 23:52:16.98 ygEVlK+Q.net
>>173
ありがちなポイントとしては、
・BonDriver_Splitterから読み込む対象のBonDriverがみえているか?
・アプリやそれぞれのdllについて、x64/x86の違いは問題無いか?
辺りでしょうか…
前者はBonDriver_Splitterを使うマシンでDebugView等でモニタしながら動かすとエラーが起きてるかどうかわかります
後者は個々のバイナリがどっちなのかを確実に確認するしかないですね
Dependency Walkerやdumpbinを使えば簡単ですが、対象バイナリをバイナリエディタで開き、ファイル先頭から
"50 45 00 00"(PEヘッダシグネチャ)を検索して、その直後の2バイトが"4C 01"ならx86、"64 86"ならx64、
と言う確認方法でもまず大丈夫かと思います
197:名無しさん@編集中
15/08/25 23:56:09.47 ygEVlK+Q.net
>>179
基本的には対象BonDriverから読み出したTSストリームを設定に従って分割してるだけなので、そう言う使い方も一応可能です
が、TVTestの場合は同じ事が自前で出来るので、それにあんまり意味は無さそうかなと思っていましたが…
文脈的に、Application ErrorのEventID:1000はやはりTVTestが出してると言う事でしょうか?
だとするとちょっと良くわからないのですが、もしそうでは無く、例えばBDPLのおまけのsampleをwinに移植したもの
とかだとすると、sample側でCOMの初期化を行うようにしておかないと、BDA系のBonDriverをBonDriver_Splitter経由で
読み込んだ場合にその手のエラーが発生するかもしれません
198:名無しさん@編集中
15/08/26 09:18:15.88 xTYYaZ/n.net
>>173
あ、こっちのほうは土曜一日かけていろいろ調べて、Spritter&Proxy混合で
ばっちり動いています。お気遣いありがとうございます。
Proxyのini設定ファイルに記載するBONファイル長の問題だったようです。
TとSを4つづつフォルダと記載なので軽くオーバーしていたようです。
1つのフォルダにまとめて簡潔に記載することにより動作しました。
軽くて快適です。
199:名無しさん@編集中
15/08/26 09:33:20.35 xTYYaZ/n.net
前のレス >>173じゃなかった >>181の方ね
でもやっぱりT、Sそれぞれに登録したデバイス指定と
チャンネルロックは個別ふりが欲しくなってきました。
200:名無しさん@編集中
15/08/27 14:21:45.08 Lyjy7vdw.net
>>182
障害が発生しているアプリケーション名: TVTest.exe、バージョン: 0.9.0.0、タイム スタンプ: 0x55da7838
障害が発生しているモジュール名: msvidctl.dll_unloaded、バージョン: 6.5.10240.16384、タイム スタンプ: 0x559f3b17
例外コード: 0xc0000005
障害オフセット: 0x000bbc5b
障害が発生しているプロセス ID: 0x4bc
障害が発生しているアプリケーションの開始時刻: 0x01d0de363f799932
障害が発生しているアプリケーション パス: C:\DTV
201:\TVTest\TVTest.exe 障害が発生しているモジュール パス: msvidctl.dll こういう感じです PX-BCUDなので配布ドライバに難があるのかも?あるいは、こちらで何らかの設定を間違えてるとか。
202:名無しさん@編集中
15/08/27 15:09:19.82 A1gqrdMh.net
終了中にクラッシュしてる?
203:名無しさん@編集中
15/08/31 07:33:58.76 oeJuGm0m.net
>>184
> でもやっぱりT、Sそれぞれに登録したデバイス指定と
> チャンネルロックは個別ふりが欲しくなってきました。
具体的にどのような動作なのか教えてもらえれば時間がある時に検討してみます
#チャンネルロック周りは現仕様との互換性が鬼門になりそうなので、
#聞くだけ聞いて無理でしたとなるかもしれませんがヽ(;´ー`)ノ
204:名無しさん@編集中
15/08/31 07:44:51.97 oeJuGm0m.net
>>185
やはり以前BDP本体でも対応したCOM周りの問題に似てますね
TVTestはちゃんとCOM初期化行ってるのですが…と思いましたが、よく考えるとSetChannel()で読み込んでるBonDriverの切り替えが
発生する場合に、それが内部で勝手にCOM初期化/終了処理を行うあんまり行儀のよくないBonDriverだった場合、地雷踏む可能性が
あるかもしれません
#そしてPX-BCUD用のBonDriverは、上記行儀のよくないBonDriverに該当します(;´Д`)
これはどう対応するべきか…
OpenTuner()/CloseTuner()とSetChannel()を別スレッドから行っていると言うTVTestの仕様にも関係してくるので、
汚い対応にならざるを得ないかも(;´Д`)
もしビルド環境があるなら暫定的に、
URLリンク(github.com)
の2行の間に、
---
::CoInitialize(NULL);
---
を追加してからビルドして、状況が変わるか試してみてもらえないでしょうか?
205:名無しさん@編集中
15/08/31 08:34:01.23 oeJuGm0m.net
あるいは、使用しているBonDriverがこれ↓なら、
URLリンク(www1.axfc.net)
BonDriver_BSCS.dllに以下のバイナリパッチを当てて試してみるとか…
#ウチには動作環境が無いので動作テストはできていませんが(;´Д`)
---
000007BB: 6A -> 8B
000007BC: 02 -> F1
000007BD: 6A -> EB
000007BE: 00 -> 08
00000902: FF -> EB
00000903: 15 -> 04
00000904: 88 -> 90
00000905: 91 -> 90
00000906: 01 -> 90
00000907: 10 -> 90
---
OpenTuner()/CloseTuner()で勝手にCOMの初期化/終了処理を行わせないようにしたつもりで、
個人的にはこちらの方が好みですヽ(;´ー`)ノ
206:名無しさん@編集中
15/08/31 09:57:22.15 yTI8sOEd.net
BonDriverProxyExをちょっと試してみました。
CHANNEL_LOCKの動作が曖昧で怖い気がする。
というか、LOCKというより同じ優先度って感じなのでしょうか。
Spinelだと排他コントロールでアクセスすると、
後でアクセスしてきたクライアントはいかなる権限でもチャンネル変更ができなかったけど
(というより排他コントロールを求める追加アクセスはキャンセルされる)
BonDriverProxyExの場合
CHANNEL_LOCK=1ですべてのチューナにアクセス中でも、
後で来たCHANNEL_LOCK=1のクライアントが自由にチャンネルを変更できてしまう。
実用上の問題はないんだろうけど、ちょっと気持ち悪い。
207:名無しさん@編集中
15/08/31 11:19:17.28 +tI+CuV1.net
0の時と同じ動作してるんだろう
確かに0同士の時はロック権限無いから後から来たのを優先させるのがいいけど
1の時はどっちがいいだろうかと思ったが
そもそもロック権限持ちが物理チューナー数を超える場合は録画ソフトが調定する事であって問題起きる環境を見直すべきじゃなかろうか?
208:名無しさん@編集中
15/08/31 11:44:17.41 yTI8sOEd.net
だいたい、その通りな�
209:セけど ini_info.txtには排他制御って書いてあるので、ちょっと違うんじゃないかと思ってね。 話しに挙げてみただけ。
210:名無しさん@編集中
15/08/31 11:59:36.07 uemfZlrK.net
>>187
>#聞くだけ聞いて無理でしたとなるかもしれませんがヽ(;´ー`)ノ
いつもごくろうさまです。spritterの1サービス1chすごく便利です。
使用用途としてはTチューナを4つSチューナを4つ登録して
それぞれのTとSの最後のチューナのみ視聴として使いたいのです
で、このチューナのみchロックを外しておけばPCで視聴途中席を立った
最中は無線で飛ばしてタブレットなどでもそのまま見ることが出来、
1つのチューナ内で連動してチャンネルも自由に変えられます。
※実際spinelはその動作が可能です。
現状前3チューナをasc指定後ろ1チューナをdesc指定して使ってますが
ロックの問題とチューナの使用状況によりチューナが増えるのが難点で
これがデバイス1つ1つ指定できて排他ロックしてほしい理由です。
211:名無しさん@編集中
15/08/31 12:00:20.40 uemfZlrK.net
BondriverspritterとBonProxyExを1週間使用してみたのですが
過去ログにもどなたかが書かれてましたがチャンネルを次々変えるような
動作(具体的にはTVROCKから1チューナを視聴で使い番組情報取得を実行)
を行うとProxyEXが落ちることがあります。
またこれが起こるとチューナーをつかんだままになることがあります
具体的にはPT2のSチューナが占有されたままで再起動するまで直りません
でした。Spinelとかだと占有されたデバイスを手動で切れるしSpinelを
終了すれば占有してるのも解除してくれてたので判りやすかったのですが
※ちなみに番組情報を連続して使用しなくてはいけなくなった理由は
SpritterでEITまで指定してたのに気づいた…そりゃ番組情報が空にorz
212:名無しさん@編集中
15/08/31 12:53:33.61 uemfZlrK.net
>>190
あれ?ascとdescができた経緯と仕様説明で
登録BONDRIVERの指定は登録した先頭順か最後尾順しかできないはずだから
同一のチャンネルでないかぎり新しいドライバが開く仕様だと理解してたけど
違うの?
213:名無しさん@編集中
15/08/31 21:48:16.53 yTI8sOEd.net
>>195
チューナーがすべて埋まった場合は既存チューナが開くと思うのだけど
その場合ね。
ちょっと、もう一度いろいろ確認してみる。
214:名無しさん@編集中
15/08/31 22:56:32.06 oeJuGm0m.net
>>190-192
確かに排他制御と言うと意味的に違ってきますね
後でini_info.txtの記述を直しておきますヽ(;´ー`)ノ
一応、ReadMe.txtの方の記述(こちらはちゃんと優先度と書いてました)が正しいと言う事で…
URLリンク(github.com)
ここの挙動は一番最初にどうしようか迷ったんですが、>>191さんとほぼ同じ事考えた結果、
今の仕様になってます
215:名無しさん@編集中
15/08/31 23:10:04.44 oeJuGm0m.net
>>193-194
例えばSで言うと、4チューナの内1つは必ず視聴用に空けておきたい的な意味でしょうか?
その場合は録画ソフト側で、Sのチューナは3つと設定してしまえば、ロックされるのは最大で3チューナまでなので
1つは必ず空きますが、そう言う単純な話ではないと言う事ですよね…?
当方なにぶんハードコアな録画人ではないので、あんまり高度な使い方が想像できず…
これこれの状況ではこのように動いてほしい、みたいに教えてもらえると助かります(;´Д`)
落ちる件に関しては、TvRockはさわった事が無いのですが、実際にBonDriverを使ってるのはTVTestと言う事でしょうか?
形としては1つ目のTVTestで視聴しながら別のTVTestでチャンネルスキャン、みたいな状況と同じなのかなと思うのですが、
手元ではちょっと再現できていません…
使用ソフト類のバージョン等の環境と、あともし具体的な再現方法がわかれば教えてください
216:名無しさん@編集中
15/09/01 06:20:15.68 /7UttABy.net
>>188-189
レスありがとうございます。
まず>188のですが、ソースに追加はしたのですが
217:こちらの環境を最近VS2015に切り替えてまして 3>BonDriver_Splitter.cpp(556): error C2105: '--' には左辺値が必要です。 3>BonDriver_Splitter.cpp(558): error C2059: 構文エラー: '}' ビルドしようとすると上記のエラーが出てビルド失敗してしまいますw これは別問題なので報告させて頂きます >189の方ですが、バイナリを改変してPX-BCUDの実機でテストしてみましたがエラーは出なくなり 前回終了時のチャンネルもちゃんと次回起動時に反映されるようになりました。 お手数おかけしましたが、大変ありがとうございます。 なおお手数ついででさらに問題を増やして申し訳ないんですが、PX-W3U3を自機に繋いでSplitterで 運用しようとするとチャンネルスキャンで確実にTVTestが落ちますw 対象BonDriverでのチャンネル番号等はPXシリーズとPT2、3とは違うので全部書き換えてあるのですが、 そのへんは設定に問題ないとは思うのですが…。 おそらくまた配布Bon_driverに難があるのでしょうし、特に必要に迫られているわけではないですが、 再現性100%なのでご報告まで。
218:名無しさん@編集中
15/09/01 06:22:23.20 /7UttABy.net
ログの名前: Application
ソース: Application Error
日付: 2015/09/01 5:36:32
イベント ID: 1000
タスクのカテゴリ: (100)
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター:
説明:
障害が発生しているアプリケーション名: TVTest.exe、バージョン: 0.9.0.0、タイム スタンプ: 0x55da7838
障害が発生しているモジュール名: BonDriver_PX_W3U3_S1.dll、バージョン: 0.0.0.0、タイム スタンプ: 0x4d8b6111
例外コード: 0xc0000005
障害オフセット: 0x00012c94
障害が発生しているプロセス ID: 0x2dc
障害が発生しているアプリケーションの開始時刻: 0x01d0e42c84a3f4ff
障害が発生しているアプリケーション パス: C:\DTV\TVTest\TVTest.exe
障害が発生しているモジュール パス: C:\DTV\TVTest\BonDriver_PX_W3U3_S1.dll
エラーログはこんな感じです。
219:名無しさん@編集中
15/09/01 06:25:39.28 /7UttABy.net
あと、PX-W3U3を繋いだ鯖に対して他のクライアントからBonProxyExへBpndriver_Splitterで繋ぐ分には
視聴にもチャンネルスキャンにも全く問題が無いです。自機でチャンネルスキャンのみTVtestごと落ちます。
220:名無しさん@編集中
15/09/01 07:18:28.50 Hg+0uomq.net
>>197
レスありがとうございます。
そこに書いてあったんですね、見逃してましたすみません・・・。
仕様なら仕方ないですね。
ありがとうございました。
221:名無しさん@編集中
15/09/01 07:42:36.53 /7UttABy.net
>>199
追伸、自己レスになりますが早朝なので寝ぼけてて---の部分も一緒にコピペしてビルドしてましたw
今削除して再ビルドしたら成功しました、お騒がせしました。
ビルドしたものをtvtestに読み込ませようとしましたが、読み込めないか見当たらないというようなエラーが出るので
検証できませんでした。何故かは分かりませんがいま時間が無いのでちょっと置かせてください
222:名無しさん@編集中
15/09/01 10:31:52.90 lugaF9Km.net
>>198
返信ありがとうございます。
>例えばSで言うと、4チューナの内1つは必ず視聴用に空けておきたい的な意味でしょうか?
視聴用ですがネットワークで別端末で利用したいのでProxyの機能は必要なのです
前3つのチューナーは録画チューナーなのでProxyEXが前から選択しても問題ないのですが。
いっそProxyで最後のチューナーのみノンロックで登録しちゃえばいいじゃん
とも思えるのですがSpinelだと録画中なのもロックのまま確認などもできてたので
あったらいいなという感じです。
>実際にBonDriverを使ってるのはTVTestと言う事でしょうか?
そうです。TVTest起動後のプロセス見てるかぎりTvRockOnTVTestというプラグイン
内でDDEを使って番組情報を取得してるだけなので実際にドライバを占有している
のはTVTestになります。
>使用ソフト類のバージョン等の環境と、あともし具体的な再現方法がわかれば
Windows10 Pro 64bit TVRock ver0.9u2バグ修正パッチ適応版
TvRockOnTVTest (修正版8.1) ※BSCS最新TSID周波数のマッピングini適応済み
TVTest 0.723(x86) + BonDriver_Proxy.dll
TVRockにTチューナを4つSチューナを4つ登録し最終Sチューナで視聴中に
番組情報の全チャンネル取得(ただし仕様で10分ほどで切れるので何度か行う)
3時間ほどやってProxyEXが2回落ちたので再現率はほどほど。
223:名無しさん@編集中
15/09/01 22:34:59.56 94KcBTZM.net
>>199-201,203
<
224:a href="../test/read.cgi/avi/1428405907/189" target="_blank">>>189の対応で直るのなら、やはり原因は>>188に書いたもののようですね ひとまず問題無くなったようで良かったです また、再現状況からみる限り、BonDriver_PX_W3U3の方もBonDriver_BSCSと同じ原因に見えます BonDriver_PX_W3U3と言うと、これ↓だと思いますが、 ttp://www1.axfc.net/uploader/so/2503073 // BonDriver_PX_W3U3_S --- 0000FF0E: FF -> EB 0000FF0F: 15 -> 04 0000FF10: 84 -> 90 0000FF11: 71 -> 90 0000FF12: 01 -> 90 0000FF13: 10 -> 90 0001007F: 6A -> EB 00010080: 00 -> 06 --- // BonDriver_PX_W3U3_T --- 0000FE6E: FF -> EB 0000FE6F: 15 -> 04 0000FE70: 78 -> 90 0000FE71: 71 -> 90 0000FE72: 01 -> 90 0000FE73: 10 -> 90 0000FFDF: 6A -> EB 0000FFE0: 00 -> 06 --- で>>189と同様の変更になると思うので、直るかもしれません なお、もし無改造のBonDriver_BSCSが>>188の変更で使えるようになるなら、 BonDriver_PX_W3U3も無改造で大丈夫になるんじゃないかと思います
225:名無しさん@編集中
15/09/01 23:12:16.33 94KcBTZM.net
>>204
> 視聴用ですがネットワークで別端末で利用したいのでProxyの機能は必要なのです
例えば、BDPEXへのBonDriver登録でSとして4個登録しておき、録画用Sチューナが3つで良いのならTvRockには
Sのチューナ数を3として設定しておけば、ロック権を持つクライアントは3つ以上発生しない筈なので、
残り1つのチューナは視聴用として常時使える状態になりますよね?そう言う話ではないのでしょうか?ヽ(;´ー`)ノ
> TVRockにTチューナを4つSチューナを4つ登録し最終Sチューナで視聴中に
> 番組情報の全チャンネル取得(ただし仕様で10分ほどで切れるので何度か行う)
> 3時間ほどやってProxyEXが2回落ちたので再現率はほどほど。
なるほど…
時間ができたらもうちょっと詳しく再現実験やってみます
226:名無しさん@編集中
15/09/02 12:02:08.33 vaUpWL7k.net
>>205
こちら対応の方ありがとうございます。
チャンネルスキャンの方ですが、W3U3のBon_driverのバイナリを修正したのですがTVtestが落ちる症状は変わらずでした…
こちらのチャンネル設定などに間違いが無いか後でもう一度iniファイルを調べ直してみます。
(BCUDの方はドライバ修正前でもチャンネルスキャンは無事完走していました)
>>188の方ですが、gitからダウンロードしたzipからソース無改造のビルドをしてBondriver_Splitter.dllを置き換えても
TVtestでは読み込めない、モジュールが見当たらないとエラーが出ます。
複数のPCで検証して同じ事になるので、VS2015でビルドしていること自体に何か問題があるのでは
と思うのですが…
以上、2点ともこちらの環境の問題である可能性があるのでまた後で調べてみます。
227:名無しさん@編集中
15/09/02 16:24:03.71 IdorTQkb.net
>>206
>そう言う話ではないのでしょうか?ヽ(;´ー`)ノ
ちょっとだけ違います。
SとT混在して話するとややこしくなるのでTだけの話にして
視聴チューナをメインに考えれば後ろ1チューナだけロックなしで
登録すればそれで問題なし!出先からでもタブレット端末でも視聴可能です。
が、前チャネルがちゃんと録画開始してるか確認したいって話になると、
チューナ選択できるわけではないしできてもロックしてないと起動した時
チャンネル変わる危険性もあるしで確認できない。って話です
使い勝手の問題ですね。Spinelでは可能でVirtualPTでもチューナはVirtualPT
まかせなので無理な使い方です。
228:名無しさん@編集中
15/09/02 19:07:10.40 JKKKZOzE.net
それはtvrockにブラウザ経由でアクセスして確認することでしょ
なんで録画されてるかどうかをチューナー共有ソフトで確認するの?
そんな気になる程不安定なら環境を見直すべき
そんなにspinelと同じ使い方したいなら
チューナー1つずつグループ分けすればいいんじゃねえの
それやるとtvrockで運用する時の唯一の利点である同一チャンネルの連続した録画の切り替わりや同じ時間に同一トラポンのCSチャンネル複数同時録画等
tvrockからは複数チューナー使ってるように見えて実際は1チューナーしか使わないってのもなくなるけど
229:名無しさん@編集中
15/09/02 21:39:59.32 2FyvDVyy.net
>>209
不安定じゃないですよずっと少なくとも2年はSpinelで構築してたので
>そんなにspinelと同じ使い方したいなら
>チューナー1つずつグループ分けすればいいんじゃねえの
それは既にやってみました
00=PT-Ta;
01=PT-Tb;
01=PT-sc;
01=PT-Sd;
こういうことですよね?しかしこれは過去ログですでにSとTでまとめないと駄目だと
230: 回答がでてる内容なので残念ながら使えないようです。
231:名無しさん@編集中
15/09/02 21:41:08.20 2FyvDVyy.net
間違えたこうだった
00=PT-Ta;
01=PT-Tb;
02=PT-sc;
03=PT-Sd;
232:名無しさん@編集中
15/09/02 22:04:37.79 B6tqUz1r.net
対応してほしい気持ちはわかるけど
あまりメンテナーを困らせちゃだめだよ
233:名無しさん@編集中
15/09/02 22:37:06.51 iyXxQEkd.net
>>207
ありゃ、ダメでしたか
となるとまた何か別の原因なのかもしれませんね(;´Д`)
なんだろう…
ビルドしたのが読み込めない件は、
・アプリとBonDriverのx86/x64のズレ
・MDでビルドしたけど実行環境には2015のランタイムが入っていない
辺りではないでしょうか?
当方の手元では、VS2015環境でビルドした物でも一応問題無く使えています
#もっとも、しっかりテストしてみたわけではありませんがヽ(;´ー`)ノ
234:名無しさん@編集中
15/09/02 22:44:45.63 iyXxQEkd.net
>>208,210-211
いえ、
---
00=T0-2;.\BonDriver_PT-T0.dll;.\BonDriver_PT-T1.dll;.\BonDriver_PT-T2.dll
01=T3;.\BonDriver_PT-T3.dll
---
みたいな使い方は可能なハズですよ
この場合、T0-2で正しく録画が始まってるかを確認したい場合は、ロック権を持たないクライアントで
T0-2に接続してみて、チャンネル変更が拒否されるかどうかで一応確認できるでしょうね
#1チューナでしか録画が行われていない状態では、3クライアント繋いでそれぞれ別のチャンネルを
#選択してみないとわかりませんが(;´Д`)
ただお話を聞く感じでは、どのBonDriverを使うのかできるだけ把握したい、と言う感じに聞こえます
その場合はBDP(無印の方)を使う方がやりやすいのではないでしょうかヽ(;´ー`)ノ
235:名無しさん@編集中
15/09/03 07:47:51.08 +EjSP6k3.net
>>213
原因が分かりました、おっしゃる通りで2015のランタイムが入ってないことが原因でしたw
tvtestは2015でビルドしても2013までのランタイムで動いてたので気づきませんでした。
で改めて>>188のソース改造してdllを置き換えたんですけども
BCUDの方は
修正済みBondriver_Splitterdllのみ置き換え→起動時>>185のエラー
修正済みBondriver_Splitterdll置き換え+Bondriver_BCUDのバイナリ改造→エラー無し
Bondriver_BCUDのバイナリ改造のみ→エラー無し
という結果になりました。
W3U3の方はすいません、上のように置き換えてみましたがいずれの組み合わせでもチャンネルスキャンで落ちました(>_<)
まあ火急の用事ではありませんのでこちらでもiniの設定ミスがないかまた見てみます。
236:名無しさん@編集中
15/09/03 12:27:55.85 Xvzsvudc.net
>>214
なるほど!どうも仕様を勘違いしていたようです
00=PT-T0;BonDriver_SplitterPT-T0.dll
01=PT-T1;BonDriver_SplitterPT-T1.dll
02=PT-T2;BonDriver_SplitterPT3-T0.dll
03=PT-T3;BonDriver_SplitterPT3-T1.dll
04=PT-S0;BonDriver_SplitterPT-S0.dll
05=PT-S1;BonDriver_SplitterPT-S1.dll
06=PT-S2;BonDriver_SplitterPT3-S0.dll
07=PT-S3;BonDriver_SplitterPT3-S1.dll
鯖側Proxyini0-2 4-6 CHANNEL_LOCK=1 3と7 LOCK=0
クライアント全てCHANNEL_LOCK=0
これでうまくできましたチューナ別もロックもバッチリです
お手数をおかけして申し訳ありませんでした。(._.;)
理解できるまでお付き合いいただきありがとうございます。
>ロック権を持たないクライアントでT0-2に接続してみて、
確かに鯖側の環境をそのままコピーしただけだと新しい
プロキシにロック権奪われチャンネル変えられちゃいました;
237:名無しさん@編集中
15/09/04 08:08:16.26 uXGZ1arN.net
>>215
基本的に>>188は、>>189と同じ事を、BonDriverを読み込む側で無理やり何とかしようとしてる物です
しかも、
> 修正済みBondriver_Splitterdllのみ置き換え→起動時>>185のエラー
と言う事は、それだけでは対応できないようですね
原因自体は推測した通りだが、別の箇所でも地雷を踏んでいる、と言う事でしょうか…
いずれにせよ、>>189のバイナリ変更を行ったなら>>188の変更は不要ですよ
W3U3の方は、多分同じ問題を持ってはいますが、それだけではなく別件の問題も持っているんでしょう…
バイナリ変更はしておいても良いかと思いますが、別件の問題を引き起こしてる原因を突き止めないと
解決は難しいかも(;´Д`)
なお、TVTestは標準ではランタイム不要な形(/MT)でビルドされるので、2013のランタイムがあるから動いてた、
と言うワケではないと思いますよ
対してBonDriver_Splitterは、標準ではランタイムが必要な形(/MD)でビルドされるようになってます
ビルドオプションを/MTに変更すればランタイム不要にできます
#一応、当方がバイナリ配布する際には/MTビルドした物を使うようにしています
238:名無しさん@編集中
15/09/04 08:12:32.36 uXGZ1arN.net
>>216
望む動作に出来たようで良かったです…が、
> 鯖側Proxyini0-2 4-6 CHANNEL_LOCK=1 3と7 LOCK=0
> クライアント全てCHANNEL_LOCK=0
この「鯖側Proxyini」と言うのは、「TvRockが録画用アプリに指定するBonDriver_Proxy.dllの設定ファイル」
と言う意味で使っておられるのですよね?
そうであれば問題無いのですが、BonDriverProxyEx.exe(サーバアプリ)の設定ファイルにCHANNEL_LOCKを書いても
無視されるだけで、もしそこを勘違いされていると録画失敗に繋がりかねないので、ご注意くださいヽ(;´ー`)ノ念の為
239:名無しさん@編集中
15/09/04 09:59:58.83 L/+JKEHw.net
>無視されるだけで、もしそこを勘違いされていると録画失敗に繋がりかねないので、ご注意くださいヽ(;´ー`)ノ念の為
ありがとうございますもちろんBonDriver_Proxy.iniに記載しています大丈夫ですバッチリです!(きっと;
240:名無しさん@編集中
15/09/04 12:15:29.59 GVQiqXTN.net
>>217
こちらありがとうございます。
/MTビルドの件了解しました、勉強になりました
どちらにしろソースが公開されてない該当Bondriverのバイナリの改造が必要っぽいので、
それをBondriverproxyの作者さんにお願いするのは筋違いなので
いちおうそういう上記の症状があると言うことだけ把握して頂ければ、と思います。
なお、Bondriver_Splitterのiniファイルをtvtestのch2ファイルと照らし合わせてみましたが、チャンネル定義にはミスはありませんでした。
241:名無しさん@編集中
15/09/04 22:37:31.65 EnylOGHl.net
>>207
うちはPX-W3U3を使ってWin8.1ではSpinelで運用してたけど、Win10になってBonProxyExに乗り換えてみましたが
チャンネルスキャンも動いてます。
ビルド環境はwin10上でVS2015、運営環境はwin10でvcredistは2015と2013のみ .NET Frameworkは今は4.6のみで、
TVTest、BonDriver_Splitter、BonDriverProxyExSrv、EDCB(xtne6f 一部他の版混入,ビルドは一部Intel c++)、
Remotetestserver、Smacon2、タイニー番組ナビゲータで運用しています。
TVTestのビルドはVS2015 Win10 で、TVTest-developの1,2ヶ月くらい前の物です。
それ以降のソースの物がビルド後 exe起動時にエラーを吐いて起動すらできない為以前のもので運用してます
後Win10に変えた直後からTVTestがカードリーダー関連のdllを読み込まなくなったため、カードリーダー関連の
ラッパーdllを挟んでみたところ動くようになりました。(不動作、動作理由は理解してません)
参考になるかもしれないのでうちのPX-W3U3環境のBonDriverProxyEx関連iniとチャンネル設定をアップしておきます。
URLリンク(www1.axfc.net)
242:名無しさん@編集中
15/09/05 08:44:04.01 eC/YkF4x.net
>>221
わざわざありがとうございます。
>>201を見てもらえれば分かると思うんですけど、クライアントから鯖へBonProxyExを通す分にはうちでも正常ですよ
チャンネルスキャンで落ちるのは、自機でBondriver_Splitterを通してドライバを読み込んだときです
243:名無しさん@編集中
15/09/05 09:55:18.60 r5GA9NxD.net
チャンネル開いたら絶対他に奪われないロック権限設定が欲しいなぁ
EDCBが録画してBSチューナーが埋まってるとき
設定をみようとEpgDataCap_Bonを開いてしまったら
録画中のチューナーのチャンネルが変ってしまって失敗した
まあ、自分のせいだけど事故防止のために欲しい
244:名無しさん@編集中
15/09/05 12:01:29.95 YA7d8p3a.net
>>223
自分も先行ロック優先はちょっとほしいw
245:名無しさん@編集中
15/09/05 18:14:57.20 nG060/Qd.net
先行チケット、先行予約、先行販売
世の中に先行ほど大事なものはない・・ようなあるようなどっちでもいいようなけど必要なようなでもあってもなくてもいいような
それが先行
246:名無しさん@編集中
15/09/05 18:55:07.38 B9g+bx8
247:m.net
248:名無しさん@編集中
15/09/06 00:50:37.24 LOpIhx6I.net
>>223-224
チャンネルロックを先行優先にしたいと言う要望がそれなりにあるみたいなので、とりあえず追加してみました
#バイナリも更新してます
0~255の数値で優先度を設定するモデルで、数値の大きな方が優先、同値の場合は対等ですが、
255の場合のみ先行優先の排他となります
適当に思いついただけの設定方法なので、なんか問題ありそうだったら教えてくださいヽ(;´ー`)ノ
249:名無しさん@編集中
15/09/06 03:30:23.00 CJv1Dt4D.net
>>226
> 上記の構成でチャンネルスキャン正常です。
> BonDriver_PX_W3U3_T0→BonDriver_Splitter_T0→TVTestだけの構成でもスキャン試してみましたが正常動作します。
んん~?まじですか。ということはうちの環境によるものか…
こちらありがとうございます。
信号の件はTYPED以外は特に設定しておりませんです
250:名無しさん@編集中
15/09/06 09:03:04.05 6iIu3b9W.net
>>227
わあ、対応して頂いてありがとうございます。
優先度も使えるのはすごい便利ですね。
>// (そうしないと、優先度255のインスタンスもチャンネル変更できなくなる為)
>m_bChannelLock = 0xfe;
この辺りが不安なので、ターゲットにして試してみました。
TvTestで、
1.クライアント1が優先度255で繋ぐ(BS日テレを開く)
2.クライアント2が優先度255で繋ぐ(BS11を開く)
3.クライアント3が優先度255で繋ぐ(クライアント2のBS11に繋がる)
4.クライアント3は当然チャンネルを変更できない
5.クライアント2を終了させる。
6.クライアント3のチャンネルをBSフジに変える(変更出来るようになった)
7.クライアント4を繋ぐ(BSフジに繋がる)
8.クライアント4は当然チャンネルを変更できない(想定通り)
9.クライアント3を終了させればクライアント4はチャンネルを変更出来る
上記まではOKですが
6.を行わなかった場合、クライアント3の優先度が低いままになってしまいます。
1.~4.は同上
5.クライアント2を終了させる。
6.クライアント3のチャンネルをいじらない(BS11のまま)
7.クライアント4を繋ぐ(BS11に繋がる)
8.クライアント4がチャンネル変更できる!(排他権をクライアント4取得してる)
9.クライアント3はチャンネルを変更出来ない!(優先度が落ちたまま?)
といった感じになります。
またいろいろ試せたら報告しますね。
よろしくお願い致します。
251:229
15/09/06 09:06:21.76 6iIu3b9W.net
追記
クライアント4も優先度255で繋いでいます。
252:名無しさん@編集中
15/09/06 10:18:45.67 LOpIhx6I.net
>>229-230
> 6.を行わなかった場合、クライアント3の優先度が低いままになってしまいます。
実はそうなるのは認識していたのですが、255でクライアントAが接続しているところに更に255でクライアントBが
接続してきた状態で、Aが切断されたらBが排他権を引き継ぎたいなんて状況は(ほぼ)無いんじゃないかなーと思ったのと、
仮にそれを行うとして、Aが切断した場合に、一旦落としたBの優先度を再度255に上げる簡単でスマートな方法が
ぱっと思いつかなかったので(BだけでなくCやDが順次同じように255で繋いで来てた場合に、排他権を引き継ぐ優先度を
ちゃんとB>C>Dにする必要があるので)、とりあえずこれで
253:良いかとそのままにした次第です(;´Д`) 基本的に255での接続が同じチューナにカブる事自体がイレギュラーだと思うので、>>223さんのような突発事故が 防げたらそれで良いかなー、みたいなカルいノリですね… ですが、確かに自分でも若干気持ちは悪かったので、もう少しちゃんと方法考えてみますね #思いつかなかったり、複雑になりすぎそうな場合は諦めるかもしれませんがヽ(;´ー`)ノ
254:名無しさん@編集中
15/09/06 11:06:21.42 6iIu3b9W.net
>>231
返信ありがとうございます。
実は私も書いたあとに同じような感想にはなってたんですよね…
対応するコードが複雑になりそうなわりに、リターンは少なそうだなぁと。
いい方法があれば修正する方がいいとは思いますが
言われてるとおりではありますので、作者さん次第ですね。
255:名無しさん@編集中
15/09/06 11:36:06.54 7ITjkPZ+.net
今日Windows10に更新したら
「BonDriverの初期化ができません。」
何が原因だ・・・・
PT3+Windows10
BonDriverProxyEX
TVTest
256:名無しさん@編集中
15/09/06 11:54:53.23 KZnSYS1K.net
>>233
今話題のwin10タイマー
インスト、アプデ後1か月でPTシリーズは使えなくなる
スレリンク(avi板)
257:名無しさん@編集中
15/09/06 14:44:19.27 njts2/1u.net
先週の土曜の朝はちょっとした騒ぎになってたよねWin10でPTシリーズが使えなくなるの
幸いメディアさえ作ってしまえば15分くらいで元通りにできるけど問題はまたありそうだってこと
258:名無しさん@編集中
15/09/06 16:16:10.38 i1y+ii65.net
時計進めただけで引き継ぎ再インストール後もダメになったってレスあった
259:名無しさん@編集中
15/09/06 16:23:11.16 7ITjkPZ+.net
Oh...ただのUpdate不具合なのか。MSの狙い打ちかもわからん現状なんデスネ。
260:名無しさん@編集中
15/09/06 21:02:50.56 s0D0oWRB.net
PTのドライバー更新されるらしいからバグが直っていればいいけど・・・
もう一度バグ報告してほしいな・・・
261:名無しさん@編集中
15/09/07 11:06:02.94 cryiI0gR.net
BonDriverProxyでスペース0:BS 1:CS(デフォルト)ノンロックで同じチューナ利用して
切り替えると別端末のTvTestのチャンネル情報やステータスバーが切り替わってないっぽ
映ってる番組は切り替わってるのにチャンネル情報と選択されてるチャンネルが切り替わって
ない表記のままなので(旅チャンネル/うまるちゃん)みたいなちぐはぐになってる。
スペースが違うチャンネルの時だけ発生Spinelではちゃんと切り替わってるから内部で
色々やってたんだな。録画に影響はないからプライオリティは低いかもしんないけど報告
262:名無しさん@編集中
15/09/07 23:38:59.40 hfzke3E2.net
>>239
TVTestのチャンネル情報やステータスバーの更新は、BonDriverから読み出したTSデータを使ってTVTest自身が
行っていますので、それに関してはBonDriver側で何かをやっているわけではありません
現在最新のTVTest 0.9.0-devの例では、
例えば、BonDriver_PT-S0.dllを共有して、TVTest1:BS11、TVTest2:BS11の状態から、TVTest2をフジテレビnextに変更すると、
TVTest1はフジテレビoneに変わり、OSDやタイトルバーなども正しく表示されますが、選択スペースはBSのままです
逆に、TVTest1:フジテレビnext、TVTest2:フジテレビnextの状態から、TVTest2をBS11に変更するとTVTest1の映像/音声が
ストップしますが、この状態でもTSデータは正しく配信されており、TVTest1で右クリックからサービスを選択すると
再度再生が始まります(が、選択スペースはやはりCSのままです)
後者の挙動は、TVTestではCSのチャンネルを視聴している時にTSストリームの変更があって、その新ストリーム中に
現在選択しているサービスIDが存在しない場合は、映像/音声を止めるようになっている為です
地上波やBSの視聴時にはそうなっておらず、
263:PATの最初のサービスIDが選択されたものとして振る舞う為、 これが前者と後者の挙動の違いに繋がっています これは現在のTVTestの仕様なので、恐らくSpinelも含めて、チューナ共有系のアプリではどれでも同じ挙動になるんじゃ ないかと思いますヽ(;´ー`)ノ
264:名無しさん@編集中
15/09/08 00:04:12.69 zwgYdyKf.net
で、このCSのみの挙動を地上波やBSのように最初のサービスIDが選択されるようにして、ついでにBonDriverの
スペース変更も検知してチャンネル情報等も正しく変更されるようにしたい場合は、
URLリンク(pastebin.com)
の変更でそうなります
#githubへのリンクで変更場所を直接示そうとしたらNGワードとか言われて蹴られました(;´Д`)意味わからん
265:名無しさん@編集中
15/09/08 00:26:34.97 AnJL88Y7.net
version 1.1.6.0地味に欲しかった機能だ
266:名無しさん@編集中
15/09/08 22:11:46.03 WK5DcaBx.net
>>241
あっとまーくとかあの辺蹴られそう
267:名無しさん@編集中
15/09/09 02:00:58.28 gpdKgc3u.net
新しいBonproxy、CHANNEL_LOCK=0のクライアントAから繋いで操作した後、同じ設定のクライアントBから繋いでチャンネル変更すると
IBonDriver を取得できません。
CreateBonDriver() の呼び出しで NULL が返されました。
と出て操作不能になるんだが…
うちだけだろうか?
268:名無しさん@編集中
15/09/09 05:56:52.59 gpdKgc3u.net
BonproxyEX、だった。
EXのiniにCHANNEL_LOCK=0を追加したら、直ったかな?
269:名無しさん@編集中
15/09/09 08:11:22.44 OroZrpia.net
サーバー側のiniってこと?
270:名無しさん@編集中
15/09/09 08:40:28.33 ZcGrXdhp.net
>>232
とりあえず対応してみました
ただの自己満足だなーと思いながらいじってたら、Exで、255のクライアントで全チューナが埋まっており、
そこに更に255のクライアントAが来て、かつAの最初のチャンネル変更要求が、Aに割り当てられた
BonDriverで既に選局されていた場合、Aの優先度を下げるべきなのに下げていないと言うバグを発見し、
潰すことができましたヽ(;´ー`)ノ
271:名無しさん@編集中
15/09/09 08:46:43.94 ZcGrXdhp.net
>>244-245
TVTestでそのメッセージがでるのは、チャンネル変更のタイミングではなくBonDriver選択の
タイミングだと思うのですが、もう少し詳しい再現方法がわかれば教えてくださいヽ(;´ー`)ノ
なお、iniのCHANNEL_LOCKの値を読み込んで使用するのは、クライアント側(BonDriver_Proxy.dll)だけですので…
272:名無しさん@編集中
15/09/09 09:06:59.13 55Sf/lZ6.net
>>247
ありがとうございます。
あとでまた試してみます。
読んでて混乱したけど
後から来たのにチャンネルを変えれてしまうかもしれないバグがあったってことですよね。
273:名無しさん@編集中
15/09/09 13:14:09.82 Nk+YlJ1J.net
>>240
チャンネル変える時にスペース変わってなくて変える時に
選びなおしでイラっとしてたのでこれは助かる・・・。
274:名無しさん@編集中
15/09/09 16:13:49.65 I6d8TK6d.net
BonProxyがどんどん便利になっていく
275:名無しさん@編集中
15/09/09 20:53:37.64 ZcGrXdhp.net
>>249
いえ、後から来た方にチャンネル変更されてしまう事は無いのですが、そのクライアントが切断するまでは、
先に来てた方の排他権限を持ってるクライアントもチャンネル変更できない状態になる場合があった、
ですヽ(;´ー`)ノ
もっとも先日書いた通り、同じチューナに複数のクライアントから排他権限の要求がカブる事自体がおかしいはずですし、
仮に録画中に何らかのミスでこの状態を起こしてしまったとしても、録画中のクライアントのチャンネルが
変更されてしまうわけでもないので、正直実害はほぼ無いかなーとは思いますね…
276:名無しさん@編集中
15/09/09 20:55:51.65 ZcGrXdhp.net
>>250
当方も>>241の変更は結構気に入っておりますヽ(´ー`)ノ
チューナ共有アプリ使ってて、他のクライアントにチャンネル変更される可能性がある環境では、
こう動いてくれるとちょっと嬉しいですよね
277:名無しさん@編集中
15/09/10 12:18:11.52 SiEUBWxt.net
>>252
なるほど、そういうことでしたか。
278:名無しさん@編集中
15/09/10 16:42:55.55 0Mv4TuSo.net
>>241
これって本家に組み込まれている?
予定あるのかな?
279:名無しさん@編集中
2015/09/
280:11(金) 04:05:06.67 ID:pyQsqCFg.net
281:名無しさん@編集中
15/09/11 09:58:02.91 pyQsqCFg.net
/MTビルドしていたので/MDビルドに戻して様子見
282:名無しさん@編集中
15/09/11 10:08:15.92 pyQsqCFg.net
ビルドは無関係でした
障害が発生しているアプリケーション名: BonDriverProxyEx.exe、バージョン: 1.1.6.1、タイム スタンプ: 0x55f22516
例外コード: 0xc0000005
障害オフセット: 0x00012744
障害が発生しているプロセス ID: 0xe3c
283:名無しさん@編集中
15/09/11 12:59:44.62 UVBZn+Y7.net
>>256
10分くらい似たような感じでチャンネル変え続けたけど起きない
なんかもう少し、手順が絞れれば・・・
284:名無しさん@編集中
15/09/11 15:02:36.81 8d+klU/R.net
Splitter経由でUHFからBSのチャンネルに切り替えたらBonproxyEXが落ちた
環境の問題かも知れないが
285:名無しさん@編集中
15/09/11 19:15:04.07 Ktq8gNoc.net
>>260
>>256と同じ人だと思うけど、せめて使用環境と設定内容を書くくらいはしなよ
俺のとこでは起きないし、他に報告が無いと言う事は多分他の人にも起きてないんだろうから、
なんか設定が間違ってる可能性が高いんじゃないかと思うけど、なんも書かれてないから
原因の推測すらできない
286:名無しさん@編集中
15/09/11 21:00:04.54 8phWfh86.net
馬鹿には無理
287:名無しさん@編集中
15/09/12 04:12:07.18 1hlEtHdd.net
開発者はエスパーじゃないからねえ。
私も、○○したら落ちたとか、起動しないとか言われることあるけど
チューナー切替のような誰でもする当たり前の動作で
ただ単に落ちたとだけ言われても、何も特定できないよどうしろっていうんだよって思うよ
288:名無しさん@編集中
15/09/12 07:59:47.99 FreM+lvw.net
環境は鯖がwin8.1でクライアントはwin7、win10など4台です。
チャンネル切り替え時にBonProxyEXが落ちるのですが発生条件が特定できないので、鯖のBonproxyEXとService splitterを6月のバージョンに戻して様子見中。
以前はなかった現象なので。
289:名無しさん@編集中
15/09/12 08:02:44.68 AXuWCNzY.net
バカにはやっぱ何言っても無駄だった
290:名無しさん@編集中
15/09/12 08:04:09.07 FreM+lvw.net
朝まで待ち構えて勝利宣言のレスをつけてるかと思うと笑えるわ
291:名無しさん@編集中
15/09/12 08:04:30.94 1hlEtHdd.net
>>264
その落ちたときの接続状況とかを完璧に書いてみたらありがたいんじゃないですかね。
各クライアントの設定と一緒に。
292:名無しさん@編集中
15/09/12 08:05:33.31 AXuWCNzY.net
自意識過剰でわらた
293:名無しさん@編集中
15/09/12 08:06:20.80 FreM+lvw.net
もう真面目に報告する気が無くなったw
馬鹿にはつきあえんわ
294:名無しさん@編集中
15/09/12 08:08:15.86 AXuWCNzY.net
バカって言われたのが相当悔しいらしいw
295:名無しさん@編集中
15/09/12 08:23:35.00 1hlEtHdd.net
結局、どういう環境なのかよくわからなかったね。
・チューナは何か(PT3なのかPT2なのか、そのほかなのか)
・チューナーは何枚あるのか
・BonDriverは何を使用しているのか
報告内容からすると、この辺の把握が最低限必要だと思うんだけども
296:名無しさん@編集中
15/09/12 14:58:06.86 54xOvvXZ.net
大雑把に書いてもわかる文章はあるけど考え先行すぎて意味が読み解けない
文章ってあるよね。おちついてきちんとまとめてから報告しよう。
297:名無しさん@編集中
15/09/12 16:41:33.53 jRNX7Trl.net
221,226(構成記述)の者ですが、うちでもおちますよー。
Win10になってSpinelから乗り換えて、226のレス書くまでロック権限の改造が入る前の
srcをビルドして使って約1か月程使って、一部おかしかった以外(後述)は落ちることはありませんでした。
9月6に変更が入ったソースをVS2015でビルド後
EDCB側のBonDriver_ProxyT.ini,BonDriver_ProxyS.iniにCHANNEL_LOCK=255,
TVTest側のBonDriver_ProxyT.ini,BonDriver_ProxyS.iniにCHANNEL_LOCK=0を入れて運用しています。
チャンネルを変えると�
298:スまにTVTestが固まって、サービスを見てみるとBondriverExが停止しています。 その時はサービスを起動しなおしています。 最近作者さんが、こまめに変更を入れているようなので、変更が落ち着くまではと、 そのまま使っています。 再現性が100%ではなくたま~になので、どうすれば落ちると答えようがないのですが・・。 ロック権限の改造後、時々落ちるのは間違いないです。 以前一部おかしかった件ですがロック権限の改造前の時、録画予定のものと違う チャンネルの番組が録画されていたのでチャンネル設定が間違っているのかと EpgDataCap_Bon.exeのUDP-Viewを使ってサービスを切り替えていって試してみたところ そのチャンネルに問題ありませんでした。 続けて全チャンネルの確認をしていくとチャンネルが切り替わらないところが あり、ch2の設定を確認しましたが問題なく、EpgDataCap_Bon.exeを立ち上げなおして やってみると今度はうまくチャンネルが切り替わり、更に何度か続けていると 切り替わらないことが発生しました。 Win10後、BonDriver_Spliter~EDCBまで新しいビルドの物を使っているので どこのexe,dll,iniがおかしいのか特定できないのと、こちらも再現性が 100%ではなくたま~になので、前レスで書きませんでしたが一応ご報告を。 続きへ
299:名無しさん@編集中
15/09/12 16:42:14.04 jRNX7Trl.net
続き
作者さんへですが、
BonDriverProxyEx.cpp の1819行の情報ウィンドウでipアドレス表示の所
#ifdef _WIN64
inet_ntop(AF_INET, &(p4->sin_addr), addr, sizeof(addr));
#else
lstrcpyA(addr, inet_ntoa(p4->sin_addr));
#endif
のinet_ntoa ですがVS2015ではwarnning ではなく
error扱いになっているため32bitなおかつサービスでないコンパイルの場合ひっかかります。
コンパイラが inet_ntop()に変更するかdefine _WINSOCK_DEPRECATED_NO_WARNINGS
でもいいよと言ってきます。
inet_ntoaが同じアドレスに文字列を作ってしまうのを
lstrcpyAで文字列をコピーして対応しておられるうようですが、
inet_ntoaが使用禁止の方向になってきてるようなので前述のように
errorになってしまいます。
ひょっとしてXPの場合inet_ntoaが必要なのかもしれませんが、
64bit側と同じ処理でもいいのではと思い、うちでは
inet_ntop(AF_INET, &(p4->sin_addr), addr, sizeof(addr));
だけ残して後は消してコンパイルしてます。
できればこの辺りご再考をよろしくお願いします。
300:名無しさん@編集中
15/09/12 17:02:56.84 t1lAERej.net
273で書き忘れました。
後述の以前一部おかしかった件ですが、ロック権限の改造後は
この現象は見ていません。
301:名無しさん@編集中
15/09/12 20:08:13.07 dFPYR6xi.net
>>255
本家developブランチの最新ソースに対するパッチなので、本家には組み込まれてないですよ
CSの場合だけTSストリームから視聴中のサービスIDが消えた時に映像/音声を止めるのは、
フジテレビnextは契約してるけどフジテレビoneは契約していないような場合にPAT先頭サービスを選んだら、
未契約の映像/音声を再生しようとする事になるので、恐らくそうならないように想定しての仕様なのかなと思います
もっとも、現在のTVTest本体はCAS機能を持っておらず、その辺りは気にする必要は無くなってる筈なので、
リクエストしたら取り込まれる可能性もあるかもしれませんね
302:名無しさん@編集中
15/09/12 20:10:38.32 dFPYR6xi.net
>>260
えーと皆さん仰ってるように、使用しているBonDriverの種類やBonDriverProxyEx.exeのiniの内容辺りを
教えていただけるでしょうか?
ただ、最近の変更でチューナの共有部分に関する大きな変更は行っていない筈なので、何が原因やら(;´Д`)
確かに設定かなとも思うのですが、設定の問題だと言うには以前のでは起こらなかったという点が謎ではありますね…
303:名無しさん@編集中
15/09/12 20:25:08.93 dFPYR6xi.net
>>273-275
報告ありがとうございます
>>277にも書いた通りの感じなので、少しやっかいかもしれません(;´Д`)
手元で再現できないのがツライ…
もし可能であればデバッグビルドしてサービスでない方でデバッグ実行してみて、
304:落ちた場所を 調べていただけるのが一番なのですが、とりあえず当方の配布バイナリで実行してみて、 落ちた時の「障害オフセット」を教えてもらえるとそれだけでも助かります #自己ビルドではなく当方からの配布バイナリでないと、こちらに当該バイナリが無いので #「障害オフセット」は参考にできません… inet_ntoa()の件は、XPにはinet_ntop()が無いので、コンパイルはできても実行できなくなるんです(;´Д`) 当方の配布バイナリはVS2015でビルドしているのですが、ツールセットはv140_xpにしてます #これならエラーにはなりません v140でビルドすると確かにエラーになりますね その場合は既に試されてるように、64bit側と同じ方を使うようにすれば大丈夫ですよ
305:名無しさん@編集中
15/09/12 20:36:58.24 KWvmWs16.net
BonDriverProxyの作者さんはトリップ付けてもらえませんか?
後で過去ログ参照する時とか一目で判別できるので
よろしくお願いします
306:名無しさん@編集中
15/09/12 21:57:13.19 t1lAERej.net
273-275 です。
すみません、GitHubのソースの場所ならわかるのですが配布バイナリはどこでしょうか?
307:名無しさん@編集中
15/09/12 22:15:22.15 i385/JP8.net
>>280
>>3に書いてあるよ
308:名無しさん@編集中
15/09/13 00:32:41.43 RyBKPFF7.net
273-275 です。
落ちた時のエラー ログ2種類取れたので載せておきます。
障害が発生しているアプリケーション名: BonDriverProxyEx.exe、バージョン: 1.1.6.1、タイム スタンプ: 0x55ef5d8a
障害が発生しているモジュール名: ntdll.dll、バージョン: 10.0.10240.16430、タイム スタンプ: 0x55c599e1
例外コード: 0xc0000005
障害オフセット: 0x0003ee01
障害が発生しているプロセス ID: 0xcf4
障害が発生しているアプリケーションの開始時刻: 0x01d0ed6c32a86fa1
障害が発生しているアプリケーション パス: C:\PX-W3U3\BonDriverProxyEx\BonDriverProxyEx.exe
障害が発生しているモジュール パス: C:\Windows\SYSTEM32\ntdll.dll
レポート ID: 42758187-d1cf-4990-98fa-3afe29a0e5f0
障害が発生しているアプリケーション名: BonDriverProxyEx.exe、バージョン: 1.1.6.1、タイム スタンプ: 0x55ef5d8a
障害が発生しているモジュール名: BonDriver_PX_W3U3_S0.dll、バージョン: 0.0.0.0、タイム スタンプ: 0x4d8b6111
例外コード: 0xc0000005
障害オフセット: 0x00012c94
障害が発生しているプロセス ID: 0x184c
障害が発生しているアプリケーションの開始時刻: 0x01d0ed6dd73031fb
障害が発生しているアプリケーション パス: C:\PX-W3U3\BonDriverProxyEx\BonDriverProxyEx.exe
障害が発生しているモジュール パス: C:\PX-W3U3\BonDriverProxyEx\BonDriver_PX_W3U3_S0.dll
レポート ID: 8aeddf15-b3ff-42d2-ae04-17f442e20860
309: ◆SALrG1ld3mTc
15/09/13 11:53:41.34 /ZxTJa6Q.net
>>279
どうせ大した事は書いてないのですが、検索用ですか…ナルホド
と言う訳で入れてみました
#当方イイカゲンなのでそのうちトリップキー忘れそうですが(;´Д`)
310: ◆SALrG1ld3mTc
15/09/13 11:55:38.07 /ZxTJa6Q.net
>>282
ntdll.dllとBonDriver_PX_W3U3_S0.dllですか
特にBonDriver_PX_W3U3_S0.dllはGetTsStream()の中で死んでますね
これらを見る限りどうもメモリ破壊っぽいのですが…
もしかしたらBonDriver_PX_W3U3_S0.dll内部での排他ロックがちゃんと行われていなくて、
PurgeTsStream()とGetTsStream()を非同期で呼ぶとメモリ破壊が起きるのかも、と思ったので、
それらとついでにSetChannel()の呼び出しをBonDriver_Splitter側で排他にしてみました
#もしこれで直るようならBonDriver_PX_W3U3内部での排他処理が甘いと言う事でしょう…
また、それとは直接は関係ないのですが、SetChannel()前のサーバ側でのTS破棄は実質ほぼ不要なので、
他のクライアントとインスタンスが共有されていない場合のみ行うようにしました
特にEx版では、自分よりロックの優先度が低い他のクライアントに対して、影響なしに
チャンネル変更できる場合でもTSを破棄してしまう状態が発生するのを無くせたはずです
とりあえずこれで様子見てもらえるでしょうかヽ(;´ー`)ノ
311:名無しさん@編集中
15/09/13 12:12:42.18 /0SFmSyX.net
結構流通してると思われるのにPLEX系のボンドラはソースも公開されてないしダメダメですな
312:名無しさん@編集中
15/09/14 22:32:49.33 tIlzQPGU.net
273-275 です。
SALrG1ld3mTcさん、変更ご苦労様でーす!
現状落ちる気配まったくありません。夕べと今日、
かなりガチャガチャとチャンネルを変えてみたのですが平気なようです。
が・・・・
EDCBで違うチャンネルが録画される病が再発してしまいましたw。
落ちないのを確認終了後、普
313:通に予約録画を入れ録画しているときに、 録画の様子を少し見ようとEpgDataCap_Bonの「View」を見たところ予約指定の番組とは 違うチャンネルの番組になっていました。 この時録画をキャンセルし、EpgDataCap_Bon.exeを1度終了し、 EpgDataCap_Bon.exeをもう1度起動し「View」を見てみる先ほどの番組と同じ物でした。 これはEpgDataCap_Bon.exeの「サービス」のチャンネルとは異なるチャンネルの番組です。 この状態でEpgDataCap_Bon.exeの「サービス」のチャンネルを1度変更すると 指定の正常な番組に切り替わりました。 更にチャンネルを先ほどおかしかったチャンネルに戻すと指定通りの正常な番組が表示されました。 その後何度かチャンネルを変えたり、EpgDataCap_Bon.exeを起動しなおしてみましたが、 正常に動作し異常な状態を再現できませんでした。 この異常はBonDriver~EDCBのどこで起きているのかまだ把握できていないのと、 意図的な再現方法がわからないのと、 最近TVtest回りいろいろいじっていっているので、我が家の固有の異常である可能性もあるので、 このまま使用を続け、この異常の件何かわかったらまた報告いれます。
314:名無しさん@編集中
15/09/14 23:08:16.25 4n9Y6JJu.net
>189
TVTestでは、OpenTuner/CloseTunerを別スレッドで行うこともあり、CoInitialize/CoUnInitialize
をBonDriverで行わない方が良いというのは理解できました。
ところがそれだと、EDCBではCoInitializeを行っていないので、BonDriverでCOMライブラリを使うことが出来ません。
そこで例えば、OpenTunerの段階でCOMライブラリを使う必要があるBonDriverを作成する際には、
OpenTuner()の最初で
HRESULT hr;
hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
if (hr == S_OK)
m_bCoInit = TRUE; //m_bCoInitはGlobal変数
else if (hr == S_FALSE)
::CoUninitialize();
else if (hr != RPC_E_CHANGED_MODE)
return hr;
とした後、CloseTuner()で
if (m_bCoInit)
::CoUninitialize();
あたりが、妥当な実装かと思うのですが、いかがでしょうか。
ご助言を頂けましたら幸いです。
315:名無しさん@編集中
15/09/15 01:07:52.82 PR/PgOiy.net
うちのBonDriver_PXがHDUSのsrcを改造したらしいけど、
HDUSのプログラムがOpenTunerでCoUninitialize呼んで
CloseTunerでCoUnInitialize呼んで、
>>287みたいになってますねぇ。
HDUSのソースにうちのチューナー名、キャプチャー名入れて、
少々変更して動かしてみると、フィルターグラフの構築は
BonDriver_PXと同じにできてるのに、フィルターグラフに
runかからない~♪
BonDriver_BDA改のソースも同じようにうちのチューナー名、キャプチャー
捕まえるようにしてみたけどフィルターグラフに
runかからない~♪
graphstudionextでMicrosoft DVBT Network Provider~レンダラまで
繋がるやつで繋いでみたけど
runさえかからない~♪
ネットワークプロバイダ登録直後のチューニング要求に何か設定いるのかなぁ。
ここで行き詰ってるぅぅ。
誰か動かし方わかる人いたら、この初心者に優しくおしえて!
316:名無しさん@編集中
15/09/15 04:18:00.88 b63Dshpf.net
うっざ
317: ◆SALrG1ld3mTc
15/09/15 06:26:33.57 Vobrm9Ay.net
>>286
ひとまず落ちないようにはなったとの事で良かったです
実は>>284の下の方で書いた変更の為、BDPEXも今の物に入れ替えると、当方が落ちる原因になっているのではないかと
推測している状況に殆ど遭遇しないようになっているはずなので、もし可能であればBDPEXは前のバージョンに戻して、
BonDriver_Splitterのみを今の物で試してみてもらえないでしょうか?
それでも落ちないようになっていて初めて、>>284の推測は当たりだったのかなと思えるのでヽ(;´ー`)ノ
別チャンネルになってしまう件は、ちと謎ですね(;´Д`)
その辺の変更は今回何も行っていないはずなのですが…
何だか、チャンネルロックされているチューナに対してチャンネル変更を試みた場合の挙動のようにも思えます
この場合アプリにはチャンネル変更成功に見えるようにしているので、もしそうなった場合、EDCBは録画対象
チャンネルに変更成功したつもりで、別チャンネルを録画してしまうと言うのが起こりそうではあります
例えば、EDCBの設定に対して実チューナ数が不足していたりするとそうなるかもしれませんね
ともあれ、BDPEXとBonDriver_Splitterをデバッグビルドしてみて、Dbgview辺りでログを眺めてみると
何かヒントがあるかもしれません…
318: ◆SALrG1ld3mTc
15/09/15 06:41:48.30 Vobrm9Ay.net
>>287
> あたりが、妥当な実装かと思うのですが、いかがでしょうか。
COMの初期化/終了処理はスレッド単位で行う必要があるものなので、単一のグローバル変数でフラグを持つのは
あんまり良くないのではないかとヽ(;´ー`)ノ
例えば、
URLリンク(www1.axfc.net)
等は、恐らくその点を考慮してスレッドIDを確認するようにしているのだと推測しますが、いずれにせよ、
OpenTuner()/CloseTuner()が別スレッドで行われる場合の解決にはなっていませんね
また、OpenTuner()/CloseTuner()だけでなく、SetChannel()やGetSignalLevel()等の他のAPIも、
OpenTuner()と呼び出し元スレッドが同一だとは限りません
#事実、例えばTVTestでは異なっています
その様な感じなので、個人的にはEDCB側にCOMの初期化/終了処理を追加する方が正解なんじゃないかな、と思います
やはりスレッドの最初と最後でやるのが確実なので、スレッドをつくった人が行うのがベストではないでしょうか…
319: ◆SALrG1ld3mTc
15/09/15 07:06:22.10 Vobrm9Ay.net
>>288
PLEXのチューナは何やら初期化処理がいるようなので、それをやってないからじゃないでしょうか?
linuxのドライバを使用するには、
URLリンク(github.com)
な感じの処理が必要(らしい)ですが、これとほぼ同じ処理がBonDriver_PX_W3PE_S0.dllの中にも、
OpenTuner()でフィルタグラフをつくってる辺りにあるようですね
320:名無しさん@編集中
15/09/15 14:02:47.23 1p/tEp51.net
クライアントIP、使用チューナーなども含めて、
チャンネル変更や変更失敗のログとか取れるとわかりやすそうですねえ
321:名無しさん@編集中
15/09/15 16:35:44.95 1p/tEp51.net
>>292
たぶん分かってる気もするんですが報告
優先度255のクライアントA
優先度255のクライアントB
優先度100のクライアントC
クライアントAをBS朝日にします。
クライアントBをBS朝日にします。
クライアントCをBS日テレにします。
たとえば上記の状態で
(ケース1)
クライアントBを「BS11」に変更すると、
クライアントBとCが「BS11」になります。これはOKです。
上記操作はなかったことにして、
(ケース2)
クライアントAをBSフジに変えたとします。
そうすると、クライアントBもBSフジになってしまい、
クライアントCはBS日テレのままになります。
本来、AとBは排他権限で、優先度もCより上なので、
クライアントAはBS朝日→BSフジに
クライアントBは変わらずBS朝日のままに
クライアントCはAに奪われ、BS日テレ→BSフジに
なるのが良いと思うのですが、どうでしょう。
お忙しい中、面倒だとは思いますがよろしくお願いいたします・・・。
322: ◆SALrG1ld3mTc
15/09/15 23:38:13.64 Vobrm9Ay.net
>>293-294
> なるのが良いと思うのですが、どうでしょう。
ありがとうございます、確かにその挙動の方が良いですね
もともと優先権有りと無しの二択のみで、かつ有りのクライアントがチャンネル変更出来ない状態と言うのは
考えなくてよかったところから、ご指摘のような挙動になってましたヽ(;´ー`)ノ
対応してみたので確認してみて下さい
ログに関しては以前もリクエストいただいたのですが、あんまり優先度は高くないかなーと思って
後回しにしてしまっております(;´Д`)
323:名無しさん@編集中
15/09/16 01:15:59.10 NtH+9SSP.net
>>292
初期化処理の件ありがとうございます。
確かにBonDriverProxy_Linux/plex.cppの40ByteLookupTable1と1024ByteのLookupTable2が
BonDriver_PX内に連続して埋まってるのを確認できました。W3PE用のInterface_W3PE.dllの方にも同じデータテーブルが確認できました。
ただ、BonDriver_PXとInterface_W3PE.dllに2つのデータテーブルの前に1024Byteの似たようなデータが埋まっているのですよ..(汗)。
正直plex.cppの内容については全く理解する知識がないので、ほぼこのままHDUS用ドライバの方に利用させて頂きました。
::open(g_Device, O_RDONLY)を Windows用に::CreateFileに変更し、地上波ドライバのパスを"\\\\.\\usb#vid_0b06&pid_0005#6&26c27801&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed"と固定値で入れ
::ioctlを::DeviceIoControlに変更したらビルドは出来ました。
COMがドライバを開き、こちらでも同じ物を開けるのかと疑問があり、更に処理の意味を理解しないままですが、とりあえず思いつくままチューニング空間作成の直前に入れて動かしてみることにしました。
ドライバのオープンで戻り値はtrue、0x8d81コマンドで戻り値が0xcccccccc、0x8d82コマンドで戻り値は0xccの連続データとなり、0x8d, 0x83とデータの書き込み後フィルタグラフのrunには至りませんでした。
BonDriver_PXをツールを使って見た時、インポート関数にはCreateFile,DeviceIoControlが見当たらないのでおそらく直接ドライバを叩かずにDirctShowの仕組みでチューナー設定を行っていると推測しているのですが、
その処理の方法について情報が全く掴めないため、今後この直接ドライバを叩く方法で初期化処理を探ってみます。
スレ違いな件でしたが、情報大変ありがとうございました。
324:名無しさん@編集中
15/09/16 03:12:19.96 kPve2Fte.net
意味不明の自家発電書き込みにワロタw
325:名無しさん@編集中
15/09/16 07:23:50.90 sYR8CujZ.net
>>295
確認してみました。
意図した動作になっていると思います。
ありがとうございました。
326:名無しさん@編集中
15/09/16 07:30:55.97 d1QHFDlx.net
>>296
大変参考になります。
何か進展があれば是非おしえてください。他のPlex製品にも応用できると思いますので。
327:名無しさん@編集中
15/09/16 07:55:18.64 d1QHFDlx.net
>>291
詳細な説明ありがとうございます。
当面はスレッドIDをする暫定的な対応しかないですね。
ところで、リンクのソースだとS_FALSEの時の処理が抜けてますね…
328:名無しさん@編集中
15/09/16 09:19:05.96 BfRuKofg.net
>>300
そのソースをうpした者です。
S_FALSEだったらすでにCoInitializeされてるはずであり、2重にCoInitializeは行われていないということなのでそのままにしておくという考えです。
ですから、S_FALSEだった時にはCoUnInitializeも行わないようになっています。
スレッドIDを記憶している理由は、CloseTunerがOpenTunerと別スレッドで呼ばれた場合に
自分以外が行ったCoInitializeを間違ってCoUnInitializeしてしまわないようにしているだけです。
どちらにせよCoUnInitializeする術がないので。
私は、BonDriver側の責任でCoInitializeを行うべきだと思っています。
BonDriverでCOMを使用するかどうかはBonDriver側の都合なので。
今考えているところで一番良いやり方は、BonDriver側でAppとは独立した別スレッドを作成し、
そのスレッドでCoInitialize/CoUnInitializeを含めたすべてのCOM処理を行うのが最善ではないかな
329:と思っています。 近いうちにリンク先にあったBonDriverでそれをやってみたいと思います。
330:300
15/09/16 16:35:23.46 d1QHFDlx.net
>>301
そう思いがちなのですが違うのです。
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
each successful call to CoInitialize or CoInitializeEx, including any call that returns S_FALSE, must be balanced by a corresponding call to CoUninitialize.
実は、S_FALSEのSはsuccessもしくはsucceedのSで、S_FALSEでもCoInitializeされてしまうのです。従って、CoUnInitializeが必要になります。
なので、実装�
331:ニして正しいのはS_FALSEの場合はすぐに CoUnInitializeしてやることだと思ってます。 もちろん呼び出しによらず別スレッドで完結できればそれに越したことはないと思います。
332:300
15/09/16 18:08:43.78 JWzbiEwR.net
>301
可能でしたらCoInitializeExのスレッドモデル教えて頂きたいことがあります。
殆どのBonDriverと同様COINIT_APARTMENTTHREADEDを指定しているようですが、
COINIT_MULTITHREADEDにしない何か理由等ありますでしょうか。
というのも、BonDriver自体は当然ウインドウに絡む処理はありませんし、
TVTestの様に仮に呼び出し元のアプリケーションでウインドウに絡む処理があって、
かつ、同一のスレッドでCOMを使う場合でもアプリケーション側で初期化を行うはずなので
COINIT_MULTITHREADEDで新たに初期化しようとしてもRPC_E_CHANGED_MODEが
返ってくるだけです。
EDCBのようにBonDriver絡みでそもそもCOMを使わない場合はそれこそスレッドモデルは
なんでもいいはず。
さらに、アプリケーション側で、BonDriver側のメモリにアクセスすのはGetTsStream、PurgeTsStreamで、
これらの処理は当然CriticalSectionにしているはずなので、スレッドセーフといえる。
というわけでCOINIT_MULTITHREADEDで問題ないと思っています。
何か見当違いをしているかもしれませんが、その際はご指摘いただけたらありがたいです。
333:名無しさん@編集中
15/09/16 18:11:52.70 JWzbiEwR.net
もっともCOINIT_MULTITHREADEDにしたい理由は
「若干のパフォーマンスアップがある、かも」くらいなので、
予期せぬ破綻が起きないために、とりあえずCOINIT_APARTMENTTHREADEDにする、
というのもアリだと思います。
334: ◆SALrG1ld3mTc
15/09/16 20:06:22.11 53Si47U2.net
>>296
BonDriver_PX_W3PE_S0.dllがBonDriver_HDUSの改造でつくられていると言うのは多分その通りで、
URLリンク(www2.wazoku.net)
のソースで言うと、DShowMain.cppの748行目に相当する部分で例の初期化処理を呼んでるようですね
C++なので仮想関数呼び出しになってて、ioctl()に相当するコードが具体的にどうなっているのか
テキトーにバイナリを眺めてるだけでは特定がめんどくさいのですが、PX-W3PEの実機を持ってる方なら
BonDriver_PX_W3PE_S0.dllをロード -> CreateBonDriver() -> OpenTuner()とやって、OpenTuner()の
内部をデバッガで追って行けば、結構簡単に特定できるんじゃないかなと思います
dllのロードアドレス+1040c辺りからが問題の処理なので、ここにブレークポイント置いて
動かしてみるのが手っ取り早いかと…
335: ◆SALrG1ld3mTc
15/09/16 20:11:58.58 53Si47U2.net
>>301
> S_FALSE
>>302さんの書かれてる通りですが、MSのAPIにはたまーにこの手の罠がありますね…
> 私は、BonDriver側の責任でCoInitializeを行うべきだと思っています。
> BonDriverでCOMを使用するかどうかはBonDriver側の都合なので。
まあ行うにせよ行わないにせよ、ライブラリの使用方法に制限をかける形になるのは同じで、
単にライブラリが、
---
a. 使用するには呼び出し側での初期化が必要ですが、それを守る限りは自由なAPI呼び出しが可能です
b. 対になるAPIを異なるスレッドから呼び出す事はサポートしませんが、特に前準備無しでも使用可能です
---
のどちらの立場をとるのかと言う話なので、ライブラリ作者の好みの問題ではありますね
#個人的にはa.の方が好きですがヽ(;´ー`)ノ
ただ、そのライブラリのドキュメントやソースが無い場合には、a.のパターンでは最初から動かず、b.のパターンでは
アプリのつくりによって動いたり動かなかったり、と言う感じになるので、どちらがマシかと言う話になります
この場合は、ライブラリユーザ(アプリ作者)としてはa.の形であった方が助かるんじゃないかなーと思ってます…
336: ◆SALrG1ld3mTc
15/09/16 20:15:17.65 53Si47U2.net
> 今考えているところで一番良いやり方は、BonDriver側でAppとは独立した別スレッドを作成し、
> そのスレッドでCoInitialize/CoUnInitializeを含めたすべてのCOM処理を行うのが最善ではないかなと思っています。
ですね、非常に有効だと思いますヽ(´ー`)ノ
若干トリッキーではありますが、外部に公開しているAPIの内COMが絡むものは、呼び出されたらイベントをトリガして
実際の処理はそれを受けたワーカースレッドでやり、処理が終わればそれをイベントのトリガ元に通知すると言う形に
すれば
337:、ライブラリ内でCOMの初期化/終了処理を完結できるので、APIの呼び出し方に制限はかからずアプリ側での 初期化/終了処理も不要にできますね #ちなみに、今のBonDriver_Proxyも(COMを使う目的ではありませんが)似たような実装になっています
338:名無しさん@編集中
15/09/17 01:38:04.41 UxTbU+TO.net
>>303-304
COINIT_MULTITHREADEDにするって事はCOM呼びだしのスレッド同期処理は全部自前でやるって事だけど
>>301で書いてるみたいに自前でスレッド起こして無い以上、どっちみちスレッド同期処理とか不可能だよね。
GetTsStream()やPurgeTsStream()がCriticalSectionでガードされてた所で
COMを呼び出すスレッドが同一スレッドである保証なんてどこにもないよ。
ガードされてても別スレッドからの呼出なら、どこかでCoInitialize()しなきゃいけない。
どっちみち>>301の方法以外では別スレッドからの呼びだしなんて解消出来ない。
COMのスレッド周りに関する話は
URLリンク(www.kekyo.net)
URLリンク(www.kekyo.net)
この辺が参考になるよ
COMのアパートメント(1)~(6)は全部読んだ方がいい。
339:301
15/09/17 10:01:23.53 HpsXGkNf.net
>>302
うわ、完全に勘違いしてました。
確かにそう書いてありますね。
S_FALSEの場合はすぐに CoUnInitializeしてやるのが正解なんですね。
ちなみにRPC_E_CHANGED_MODEが返ってきた場合はどう対処するのが正解なんでしょうか?
(例のソースではこれが返ってきたときのことは想定していません)
COINIT_MULTITHREADEDについては、難しすぎてよく理解できてないんですが、
>>308のとおりBonDriverという立場では使用できないと思ってます。
340:名無しさん@編集中
15/09/18 00:33:12.57 9PcEUns2.net
>>305 ioctl()に相当するコードについての解析記録です。
BonDriver_PX_W3U3_T0.dllの中を解析していくために、BonDriverExの直下にBonDriver_PX_W3U3_T0.dllを組み込む設定にし、BonDriverExを起動。WinDBGをアタッチ。TVTestを起動した。
BonDriverExのm_pIBon->OpenTuner()で一時停止。そこからトントントンと数ステップでdllの中にin。そこからステップ実行で進んでみるがシンボルがある所以外は、何の処理なのか、
今どこにいるのかもわからない。そもそもこれを追っていける解析能力が自分にはない。そこで自分にも出来る別のアプローチをとることにした。
まずはDeviceIoControlがシステム上のどこにあるのか突き止めるため、デバイスドライバをオープンして閉じるだけの短いプログラムを作成。
追って行くとKERNELBASE.dll+オフセットAA680に DeviceIoControlが見つかる。
2ステップ程進んだ call KERNELBASE!GetAdjustObjectAttributesForPrivateNamespaceRoutine+0x18でスタック上に値を入れて戻ってきた。
更に2ステップ程進んだところで、C++上のDeviceIoControl()で64bit設定したマイナーファンクションコードが16bitになってcxレジスタ上に0x8d81が入っていた。これがデバイスドライバに送られる模様。
この時点での呼び出し順は プロセス→kernel32.dllのDeviceIoControl→KERNELBASE.dllのDeviceIoControlであった。
次にBonDriver_PX_W3U3_T0.dllからどうDeviceIoControlが呼ばれるのか調べる為にKERNELBASE.dll.DeviceIoControlに網を張ることにする。
WinDBGに bp KERNELBASE!DeviceIoControl+0xF "j cx==0x8d81'';'g'" とcxレジスタが0x8d81の時停止するように入れてみた。
んー停止せずTVTestが映ってしまった。 ということは①DeviceIoControlが利用されており引数のマイナーファンクションコードがLinuxのドライバと違う、
②別プロセスからドライバに読書されたか、③Windows上の他のシステム関数から読書されたことになりそうだ。
341:名無しさん@編集中
15/09/18 00:34:44.21 9PcEUns2.net
310 続き
DeviceIoControl以外にデバイスドライバの読書をする関数を知らないので、③のWindows上の他のシステム関数からだと厄介だ...。
①のDeviceIoControlの引数が違う点については、別の側面から疑っている
342:。それは >>296にも書いたが、pestudio.exeというツールでBonDriver_PX_W3U3_T0.dllを見た時にImported symbolsの中にDeviceIoControlが見当たらない。 kumaさんドライバにも同様にDeviceIoControlが見当たらない。対して上記のデバイスドライバをオープンして閉じるだけの短いプログラムにはkernel32.dllのDeviceIoControlを利用していることが表示される。 ということで、このプロセスからはデバイスドライバに対して直接アクセスしてないのではないかと考えている。 ということで>>296にも書いたが、デバイスドライバに対してDirctShowの仕組み、恐らく別プロセスのCOMサーバー上からデバイスドライバにに設定値を送り込んでいるのではないかと考えている。 フィルタグラフを構築する時に、チューニングスペースオブジェクトかMicrosoft DVBT Network Providerフィルタに設定値を送り込む機能があるのではないか、もしくはチューナーフィルタか キャプチャフィルタにその機能があるのではないかとも考えている。 この推測に基づいてまずは、DirectShowのCOMサーバーの実体プロセスがあるものと考え、それがどれなのかを調べていくとことにする。 --------- 別談だが、pestudio.exeでHDTV_PX_W3U3_BDA.sysを調べた時に嫌なImported symbolを見つけた。 srand(乱数)だ。1024byteのデータ、keyという変数が登場する何かの処理、ここから得られたデータをデバイスドライバに対して上記の方法でデバイスドライバに送るので、 これはもしかしたらこれがこちらから送ったkeyを元にどこかで乱数を加え、 MULTI2暗号化されているデータを更にPlex独自の暗号化をHDTV_PX_W3U3_BDA.sysで施し、 キャプチャフィルタから送出されるのではないかと考えている。 そうなると>>296でも書いた2つのデータテーブルの前の謎の1024Byteのデータテーブルが暗号解読に必要なキーではないかと合点がいく。あくまで推測なので定かではない。