BonDriver共有ツール総合 [sc](★0)
-
- 773
- 2015/01/04(日) 11:41:01.21
-
>>771-772
つっこみどころがかなり多いなw
例としてWin8.1側のTVTestでCentOS6.6側のPT2のT0をchardev版のデバイスドライバで使うとして、
クライアント側のiniに関しては
BONDRIVER=/home/tv/BON/BonDriverProxy/BonDriver_LinuxPT-T0.so
みたいに使用するsoファイルを指定
サーバ側では
$ /home/tv/BON/BonDriverProxy/BonDriverProxy 192.168.24.44 1192
とかやってサーバを起動しておいて(BonDriverProxy.iniは必要ない)、BonDriver_LinuxPT-T0.so.confは
https://raw.githubusercontent.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/master/BonDriver_LinuxPT.conf
の#DEVICEの行を
#DEVICE=/dev/pt1video2
に編集
この状態で、TVTestでBonDriver_Proxyを選択したら/dev/pt1video2からのストリームが受信できるはず
とりあえず、一度落ち着いて
https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/blob/master/README.md
をちゃんと読む事をおすすめするわ
-
- 774
- 2015/01/04(日) 14:12:10.75
-
>>773
設定の変更でエラーは回避できるようになったのですが
ストリームが受信できていないようです。
サーバー側のBonDriver_LinuxPT-T0.so のBONDRIVERは
BONDRIVER=/home/tv/BON/BonDriverProxy
で問題ないのでしょうか?
チャンネル設定に関しては
https://raw.githubusercontent.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/master/BonDriver_LinuxPT.conf
をまず、コピペ #DEVICE=/dev/pt1video2 に変更
TVtest側で、チャンネルスキャンというイメージでしょうか?
初歩的な質問ですいません
-
- 775
- 2015/01/04(日) 21:03:06.29
-
CentOS7向けに、pt3+bondriverproxyのrpm作ってるわ。
ただ、いろいろいじっってるし、真改造したchinachuとしか動かないから普通の人が使える代物ではないけど(´・ω・`)
-
- 776
- 2015/01/04(日) 22:33:52.18
-
>>774
元のファイルを以下の様にコピーして作成したってことで良いのかな?
すでにここが違う気がしてるんだけど。
BonDriver_LinuxPT2-T0.so : BonDriver_LinuxPT.so をコピー
BonDriver_LinuxPT2-T0.so.conf : BonDriver_LinuxPT.conf をコピー
BonDriver_ProxyPT2-T0.so : BonDriver_Proxy.so をコピー
BonDriver_ProxyPT2-T0.so.conf : BonDriver_Proxy.conf をコピー
>サーバー側のBonDriver_LinuxPT-T0.so のBONDRIVERは
>BONDRIVER=/home/tv/BON/BonDriverProxy
>で問題ないのでしょうか?
問題あると思う。というか、BonDriver_LinuxPT-T0.soは何をどうやって作ったのかが?だよ。
BonDriver_LinuxPT2-T0.so.confのことで良いよね?
https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/blob/master/BonDriver_LinuxPT.conf
BonDriver_Linux.confをBonDriver_LinuxPT2-T0.so.confにコピーしたのなら
BONDRIVERの設定項目なんてないよ。設定すべきなのは#DEVICEの行でPT2なら
#DEVICE=/dev/pt1video2 とかだね。
-
- 777
- 2015/01/04(日) 23:08:09.90
-
>>774
続き
https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/blob/master/BonDriver_Proxy.conf
BONDRIVERの設定項目があるのはBonDriver_ProxyPT2-T0.so.conf の方だよね。
>>773が書いているとおり
>BONDRIVER=/home/tv/BON/BonDriverProxy/BonDriver_LinuxPT-T0.so
>みたいに使用するsoファイルを指定
なので、BonDriver_LinuxPT2-T0.so.conf ではなくて BonDriver_ProxyPT2-T0.so.conf の方を修正。
>>772で設置場所が/home/tv/BONなら
BONDRIVER=/home/tv/BON/BonDriver_LinuxPT2-T0.so
もちろん、WindowsのBonDriver_Proxy.dllの設定ファイルBonDriver_Proxy.iniのBONDRIVERも同じく、
BONDRIVER=/home/tv/BON/BonDriver_LinuxPT2-T0.so
ちなみに、以下でBonDriverProxyを起動するのなら
$ /home/tv/BON/BonDriverProxy 192.168.24.44 1192
ADDRESS=127.0.0.1ではなくてADDRESS=192.168.24.44 じゃないかな。
LinuxのsampleでTSが保存できてるかどうかは確認済み?
$ sample -b /home/tv/BON/BonDriver_LinuxPT2-T0.so -s 0 -c 63 -t 10 -o aaa.ts
$ sample -b /home/tv/BON/BonDriver_ProxyPT2-T0.so -s 0 -c 63 -t 10 -o bbb.ts
チャンネルは自分の住んでる所で映るチャンネルで(63=UHF13)。
-
- 778
- 2015/01/11(日) 13:03:48.04
-
>>776 776
ありがとうございます。設定の変更でストリームの受信は出来ているようです。
クライアントのTVTestからチャンネルスキャンする際
SetChannel() ioctl(SET_CHANNEL) error: /dev/pt1video3
のエラーが延々と発生し。
映像が全く表示されません(通信はしている様です)
何度も、質問して申し訳ございません。
-
- 779
- 2015/01/11(日) 18:17:35.30
-
馬鹿には無理
-
- 780
- 2015/01/11(日) 23:40:38.23
-
>>778
そのメッセージは、BonDriver_LinuxPTでチャンネル変更指示を受けたから変更しようとしたけど、
デバイスドライバがそんなチャンネルには変更できんとエラーを返してきた場合に出るメッセージです
つまり、とりあえずwin側のTVTestとlinux側のBonDriverProxyは正しく通信できていて、BonDriverProxyから
BonDriver_LinuxPTも正しく読み込めている状態ではあるようです
で、chardev版デバイスドライバは、現在受信できない周波数への変更指示を行うとそのエラーを返してきたと
思うので、テンプレ用のconf(BonDriver_LinuxPT.conf)のように、自分の地域では必要の無い物理チャンネルを
多数含んでいる場合、地上波のチャンネルスキャン時にそのエラーが大量に出るのは正しい挙動だったかと思います
また、デバイスドライバがこのエラーを返してくるまでに結構時間が掛かるので、必然的にチャンネルスキャンには
かなり時間がかかります
なので、confとしてBonDriver_LinuxPT.confの#DEVICE行だけ書き換えた物を使用している場合は、そのエラーが
延々出てもチャンネルスキャンが終わるまでは放置してみてください
なお、TVTestは今のmaster(0.8.2)とかそれより古いのだと、チャンネルスキャンがタイムアウトする可能性が高いです
これはDtvEngineのデッドロックが由来なので、設定でチャンネルスキャンの待ち時間を長くしても効果はありません
この問題は今のdevelopでは直っているので、なるべくそっちを使うのが良いと思います
-
- 781
- 2015/01/11(日) 23:47:47.43
-
この手のスレでここまで初心者向けに分かりやすい解説してくれる奴を見た事があるだろうか
-
- 782
- 2015/01/11(日) 23:57:30.06
-
詳しい解説サンクスを横から贈りたくなるね
-
- 783
- 2015/01/12(月) 02:55:11.27
-
改行の仕方が自作自演だと思ってしまう俺はエスパーかなw
-
- 784
- 2015/01/12(月) 09:47:41.01
-
>>783
役に立たないレスをするお前も俺も無能だよ?
-
- 785
- 2015/01/12(月) 11:30:31.13
-
>>783
改行から何がわかるんだ?
どういう思考回路してるんだよ
-
- 787
- 2015/01/20(火) 09:49:26.43
-
>>595
BonCasLink_1.10.z2 111003
で上記のような修正をしたいです。
ソースの修正箇所を教えていただけないでしょうか?
-
- 788
- 2015/01/20(火) 12:26:33.89
-
BonDriverProxyExのLinux版ってリリース予定はないんでしょうか…。
-
- 789
- 2015/01/21(水) 13:10:26.68
-
>>787と同じく教えて欲しい
現状は謎の人がビルドしたソースなしの改変BonCasServerを使うしかない
最新版に対する改変でもないし複数クライアントがアクセスしてる状態で
どれか一つのクライアントが終了すると他のクライアント全てで解除漏れが出る
-
- 790
- 2015/01/22(木) 07:16:43.01
-
>>787
当方「BonCasLink_1.10.z2 111003」を持っていないのでそれに関してはわからないのですが、
>>595のバイナリパッチは、BonCasLink_src\Common\BcasCard.cppの、CBcasCard::OpenCard()から
CBcasCard::InitialSetting()を呼んでいる部分をバイパスして呼ばないようにするものです
ソースで修正するなら、単純にその部分の削除で同じ意味になると思います
CBcasCard::InitialSetting()はBCAS用のコマンドをカードに投げて応答を確認する処理です
BonCasLinkは、本来のつくり的には何のカードに対してもサーバ側のカードリーダへコマンドを
プロキシできるようになっているのですが、BonCasServerがこの確認処理を行っているため、
実質的にBCASカード専用となっています
>>595のパッチはこの確認を行わないようにすれば、BCAS/SPHD関係なく機能するんじゃないかな、
と考えてのモノです
#多分住基カードとかも使えるようになるかと思います
-
- 791
- 2015/01/22(木) 07:26:55.49
-
ただしCBcasCard::OpenCard()は、BonCasLink_src\Common\CasClient.cppのCCasClient::ClientThread()から
引数無しで呼び出される以外の呼び出し方が無い為、複数起動するBonCasServerの全部に上記変更を
行ってしまうと、それらはどれもカードリーダを列挙した結果の最初の物を使用するようになってしまいます
これを防ぐには、
1.上記変更に加え、設定ファイルなどからカードリーダ名を指定できるようにし、CCasClient::ClientThread()から
そのリーダ名指定でCBcasCard::OpenCard()を呼ぶように改造する
2.BCAS用はオリジナルのまま、SPHD用だけに上記変更を行い、SPHD用のカードはカードリーダ名の列挙の
最初に出てくるリーダで使用する
辺りが妥当でしょうか
望ましいのはやはり前者かと思います
列挙されるカードリーダ名の順番が変わったりしない限りは後者でもまず困る事は無い気はしますが、
変わらない保証があるのかどうか知らないもので…
-
- 792
- 2015/01/22(木) 07:30:15.99
-
>>788
需要があったとは…
ここ最近忙しいものでなかなか手を付けられないかもしれませんが、その内やってみます
-
- 793
- 2015/01/22(木) 07:39:01.45
-
今更レスですが、自作自演やるほどヒマなら嬉しいのですが(;´Д`)
しかし改行のしかたはともかく、ソースコードからは結構、これはあの人のコードかなとか思う事ありますね
例えば、BDPL用b25パッチの人は、B-CASカードの処理時間測定ツールwをlinuxに移植/改良した人で、
今なにやら一部で話題の、imperfect...の人でもあるんじゃないかなーと勝手に思ってます
もしこの予想が当たってたとしたら、相変わらず攻めてますねと思う次第ですw
-
- 794
- 2015/01/22(木) 10:19:39.34
-
BonCasLink_1.10.z2 111003のソースうpって大丈夫かな?
-
- 795
- 2015/01/22(木) 10:23:25.89
-
>>792
需要ありますよ。
BonDriverProxy系は凄くいいですよ。
というか、マイナーなだけで機能的にはSpinelを超えているし・・・
-
- 796
- 2015/01/22(木) 12:02:30.43
-
>>791
InitialSettingはBCASカードが刺さってるか判定だからなくせばOpenCardは成功する
ただしそれで動くのかどうかはSPHDカード持ってないから確認できない
複数カードリーダー対応はz2では入ってるからそれ自体は大きな問題にはならない
まあ呼び出し側で呼び分けられるようになっているっていう必要はあるけどな
-
- 797
- 2015/01/22(木) 12:50:26.09
-
proxyexもチューナー埋まってる状態で固定視聴だけできたりする?
-
- 799
- 2015/01/22(木) 14:45:53.33
-
ああBCASカードに限定してある確認処理スキップしてるだけで
もともとz2は複数枚挿しOKだしコメントアウトだけでOKなのか
-
- 801
- 2015/01/25(日) 10:28:06.06
-
>>701のバイナリ、EX付きとそうでないものを起動してみたんだけど、
タスクトレイにもタスクバーにも何も出てこないのは正常な反応なの?
一応VC2013と2005のランタイムとBonDriver_ptmr.dllはインストールしました。
-
- 802
- 2015/01/25(日) 11:22:33.80
-
ドキュメントくらい読めよ。
-
- 803
- 2015/01/25(日) 13:47:12.61
-
PLEX PX-BCUD で使用しています。
サーバ Windows8.1。クライアント Windows or Ubuntu。
BCUCが一つで、2クライアントから同時接続すると、
両方のクライアント終了時に、サーバプロセスが異常終了してしまいます。
BCUDが二つで、BonDriverProxyEx を使用の場合、2クライアント同時接続、
別チャンネル視聴の場合問題なく、同じチャンネルを視聴すると、
同じくサーバプロセスが異常終了します。
CHANNEL_LOCK=0 です。
BonDriver_BSCS_Wrapper を使ってみましたが、解決しませんでした。
BCUD以外のチューナで、同様の事象を確認できていません。テスト環境がないため。
何か対策はないでしょうか?
イベントログには、次の内容が記録されています。
障害が発生しているアプリケーション名: BonDriverProxy.exe、バージョン: 1.1.4.7、タイム スタンプ: 0x549bf6db
障害が発生しているモジュール名: msvidctl.dll_unloaded、バージョン: 6.5.9600.16384、タイム スタンプ: 0x5215828a
例外コード: 0xc0000005
障害オフセット: 0x0008b880
障害が発生しているモジュール パス: msvidctl.dll
-
- 804
- 2015/01/25(日) 20:45:09.44
-
>>803
それ家でもなるや
TBSシリーズだからハードウェアじゃなくbonドラ依存くさい
PLEXは社員がbonドラ書いてるからなんかあるんだと思う
-
- 805
- 2015/01/26(月) 02:11:58.11
-
>558
>b25パッチを小改造
この部分が知りたいです・・・。
-
- 806
- 2015/01/26(月) 07:23:52.18
-
>>788
追加しておきました
>>801
正常に動いていてもぱっと見は何も起こらないので、起動の確認はタスクマネージャとかでお願いします
なお当方からのバイナリは、ランタイムは必要ないようにビルドしてます
>>803
おお、0xc0000005(;´Д`)
イベントログの内容見る限りこれもBonDriver側で落ちてますね…BDAがらみのBonDriverは鬼門なのか…
BonDriverをロードして使用すると言う構造上ある程度はしかたないのですが、やはりBonDriver側で
トラブってもなるべくサーバプロセスが巻き込まれないようにしたいところですね
とりあえず、その手の問題はBonDriverの解放処理のタイミングで発生するパターンが多いようなので、
IBonDriver::Release()の呼び出しの時だけAccess Violation等を無視する設定を追加して、
カレントバイナリも更新しました
https://drive.google.com/folderview?id=0B-b35lIwjw6ybzV5QU9DWkJLUWc
サーバ側のiniで、SANDBOXED_RELEASEを1にして試してみてもらえるでしょうか
ただ、仮にこれでサーバが落ちるような事が無くなったとしても、大元の原因が直るわけではないので、
例えば問題の起きたBonDriverが使用していたメモリがリーク状態になったりする可能性はあります
#これに関しては、対象BonDriver内でのリソース管理のしかたと問題の発生タイミング次第ですね…
-
- 807
- 2015/01/26(月) 07:34:31.96
-
>>805
BDPL用b25パッチにはチャンネル変更等の際に少し待ってからlibarib25をリセットする機能が組み込まれています
これは元々、linuxのchardev版デバドラの仕様と標準のlibarib25とが組み合わさって発生する問題への対応ですが、
libarib25にパッチを当てるとこの対応は必要無くなる筈なので、その機能を使用しない様に改造しているだけですね
ちなみに残したままでも(恐らく)問題になったりはしないと思いますよ
-
- 808
- 2015/01/26(月) 08:36:33.35
-
>>807
丁寧なご回答ありがとうございます。
ソースの該当箇所を探してみます。
-
- 809
- 2015/01/26(月) 09:25:30.98
-
>>807
もしかして該当箇所のreset()自体が必要ないということでしょうか
-
- 810
- 2015/01/26(月) 13:17:20.38
-
>>809
ハイ、大体そんな感じです
libarib25はTSストリームの変更に自動追従する仕組みを持っていますが、特定の条件で追従に失敗する事があります
#http://hayabusa6.2ch.net/test/read.cgi/linux/1388900589/645
これに対するアプリ側での対応がb25パッチのdelayedReset()であり、ライブラリ自体での対応が
上記や>>602のリンク先の物となります
なお、>>602のリンク先の物は192バイトTSの処理には一部都合が悪い部分があるのでご注意ください
実際に放送されてるのは188バイトTSなので、放送局の中の人が仕事で使うとかでもない限りは関係ないとは思いますが…
-
- 811
- 2015/01/26(月) 15:43:11.56
-
BonDriverProxyEx導入しようとして半日悩んだ
↓これしちゃダメなんだな
サーバー側iniファイル
[OPTION]
ADDRESS=127.0.0.1
クライアント側iniファイル
[OPTION]
ADDRESS=192.168.0.100
ちなみにADDRESS=ホスト名でも行けるが、
アドレス指定とホスト名指定を混在させるとチャンネル切替が遅い。
サービス登録にはsexeを使った。
-
- 812
- 2015/01/26(月) 17:49:02.01
-
急に賑やかになったから不思議だったけど、
他スレで話題になっていたのか・・・
-
- 813
- 2015/01/26(月) 18:18:18.46
-
うw!くっさw
-
- 814
- 2015/01/26(月) 20:20:13.21
-
proxyex、Win8で起動しなかった
-
- 815
- 2015/01/26(月) 23:11:08.22
-
>803
検証してみました。
起動順で終了させるとなりますが、起動順の逆だとなりません。
★異常終了したパターン
1.A記号
2.B起動
3.A終了
4.B終了
☆異常終了しなかったパターン
1.A記号
2.B起動
3.B終了
4.A終了
ちなみにPX-S1UDでも同じでした。
-
- 816
- 2015/01/27(火) 01:29:36.32
-
>810
がんばってb25を移植してみたのですが、どうもうまく行きません。
アドバイスを頂けませんでしょうか。
http://pastebin.com/VGGajnGe
ビルドは普通にできるのですが、TVTestを使ってテストしたところ
オリジナルのarib25のソースだと、スクランブルは0ですが、画面は真っ黒。
>602のリンクのものだとTVTestが異常終了してしまいます。
ちなみにBonDriver_Proxy.dllはオリジナルをそのまま使ってます。
-
- 817
- 2015/01/27(火) 06:39:52.66
-
>>816
2点だけ…
1つは、そのリンク先のdiffの行数での88,89行目の
---
delete[] ppv;
+ B25Decoder *b25 = static_cast<B25Decoder *>(ppv[5]);
---
は、順序を入れ替える必要がある事です
でないと解放後メモリにアクセスする事になるので、サーバプロセスが落ちる可能性があるでしょうね
もう1つは、g_b25_enableを非0にする手段が提供されていない事です
b25パッチはこの値が0でない場合のみb25デコードを行うようになりますので…
Init()の中などで、
---
g_b25_enable = GetPrivateProfileIntA("OPTION", "B25_DECODE", 0, szIniPath);
---
とでもやって、iniから設定できるようにすれば良いかと思います
これだけで恐らく機能するようになるんじゃないでしょうか
#細かい事を言えば、windows版は一応GUIアプリなので、fprintfは他の出力手段に置き換えるか削除した方が
#良いとか、delayedReset()を削るなら_put_bytes/_get_bytesも削れるよとかありますけども
TVTestが異常終了と言うのが何なのか若干気になるところではありますが…
-
- 818
- 2015/01/27(火) 09:15:17.36
-
>>817
ご返答ありがとうございます。
g_b25_enableについては、TVTestが落ちるので、とりあえずオフにして試してみた感じです。
しかし、オフでも落ちるので、まったく原因がわからないところでした。
ちなみに落ちるとは、TVTestを起動して、TVTestがBonDriverにアクセスし、チャンネルに行ったところで落ちる感じです。
ご指摘の箇所を修正して再度試してみたいと思います。
また、不要な変数等、細かいご指摘もありがとうございます。勉強になります。
-
- 819
- 2015/01/27(火) 10:00:08.52
-
>>818
完成したらパッチうpして欲しいww
-
- 820
- 2015/01/27(火) 13:00:49.18
-
>>819
そのつもりです。
よくわからない中で作ってるので、むしろバグとか指摘して頂けたらと思います。
-
- 821
- 2015/01/27(火) 20:34:16.88
-
TVTestとEDCBでチューナーを沢山使っていたらエラーが出たので報告
大量に使っていてTVTestを閉じると時々発生する症状です。
EDCBで落ちるかはわかりません。
-
- 822
- 2015/01/27(火) 20:35:01.68
-
問題の署名:
問題イベント名: APPCRASH
アプリケーション名: BonDriverProxyEx.exe
アプリケーションのバージョン: 1.1.4.8
アプリケーションのタイムスタンプ: 54c54f74
障害モジュールの名前: ntdll.dll
障害モジュールのバージョン: 6.1.7601.18247
障害モジュールのタイムスタンプ: 521ea8e7
例外コード: c0000005
例外オフセット: 00038e19
OS バージョン: 6.1.7601.2.1.0.256.1
ロケール ID: 1041
追加情報 1: 0a9e
追加情報 2: 0a9e372d3b4ad19135b953a78882e789
追加情報 3: 0a9e
追加情報 4: 0a9e372d3b4ad19135b953a78882e789
-
- 823
- 2015/01/27(火) 21:09:45.31
-
再現方法わかりました。TVTestで短時間に同じチャンネルを指定して複数起動させると、TVTest終了時にBonDriverProxyEx.exeが落ちます。
短期間に違うチャンネルを指定して複数起動させても落ちません。
落ちる
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 1
Sleep, 0
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 1
Sleep, 0
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 1
落ちない
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 1
Sleep, 0
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 2
Sleep, 0
TVTestMulti.exe d BonDriver_Proxy_T.dll /rch 3
-
- 824
- 2015/01/27(火) 21:24:02.31
-
>>602のリンク先のパッチをもうちょっと変更して、上に少し書いた192バイトTSでの問題への対応と、
ライブラリとして使用する際に、ごく小さなサイズでput()を繰り返されると、ユニットサイズの検出や
TS同期ができない問題に対応したバージョンにしておきました
ttp://pastebin.com/zV1WvNb8
実用上は殆ど変わりませんが、気になってたので一応…
あと、手元では>>816さんのパッチに>>817の修正をやって機能するのを確認できました
このページを共有する
おすすめワード