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

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

BonDriver共有ツール総合

1 :名無しさん@編集中:2013/04/19(金) 11:48:58.95 ID:OJrmFK7q.net
BonDriver共有ツール総合

753 :名無しさん@編集中:2014/12/25(木) 20:24:05.10 ID:CXsFM06x.net
>>750
HDUSFが生きていたことに感動した。

754 :名無しさん@編集中:2014/12/25(木) 20:34:27.71 ID:CXsFM06x.net
>>752
直接の解決策じゃないけど、
使っているバージョンはBonDriver_nnb_009ですか?
それ以外にも、
ドライバー名:最終バージョン
BonDriver_HDP2 : 006
BonDriver_nnc4hd : バージョン表記なし
がHDUSFに対応していたと思うけど???

BonDriver_HDUS(人柱版14)改造版4はHDUS(F)は未対応だったと記憶

755 :749:2014/12/25(木) 21:22:43.56 ID:H/t9AARQ.net
>>754
使用ドライバーはBonDriver_nnb_009です。

BonDriver_HDP2はWinUSBを使えるという優位性があるのですが、
特定のチャンネル(28chだか32ch)で受信感度が落ちるというバグがあり、使用できません。
BonDriver_HDP2は011まで持ってます。
BonDriver_nnc4hdは一応持ってますが、使ったことが無いかもしれません。

SpinelでBonDriver_nnb_009は問題が無かったので、このまま移行したかったのですが。

756 :名無しさん@編集中:2014/12/25(木) 21:46:26.51 ID:qyDgSlWb.net
>>749
少なくともd3d9.dllはサーバモジュールが直接ロードするものではないので、BonDriver_BDAの内部で
その辺のdllインスタンスとそのリソースの扱いがどうなってるかでしょうか…

それと関係するかどうかわかりませんが、SetChannel()内部とGetSignalLevel()内部で同じメソッドである
GetSignalState()が呼ばれており、BonDriverProxyではこれらはメインスレッドとTS読み込みスレッドから
非同期で呼ぶようになっていた為、これが大丈夫なのかどうか気になったので、とりあえずSetChannel()と
GetSignalLevel()の呼び出しを排他にしてみました
これで試してみてもらえるでしょうか

757 :名無しさん@編集中:2014/12/25(木) 21:51:28.86 ID:qyDgSlWb.net
>>750-752
画像を見る限り、BonDriver_nnb内部での問題に見えますね…
最初はロードでき、それを一度Release()した後で、再度ロードする時にコケると言う事ですよね?
うーん、Release()後の時点で何らかのリソースリークが起きているとかでしょうか…
#あるいは、終了処理に時間が掛かるとか

ソースが無いのと、なにぶん当方が対象ハードウェアを持っていないのとで、調べる手段自体が
無い状態なのが厳しいですね(;´Д`)
モノを持っている人に突っ込んで調べてもらえるのが一番確実なのですが…

>>756に書いた修正はBonDriver_nnbにも影響するかもしれないので、とりあえず試してみてもらえるでしょうか
#期待薄ではありますが

758 :名無しさん@編集中:2014/12/25(木) 21:54:28.97 ID:qyDgSlWb.net
あ、バイナリ置いてる場所は>>701に書いてるのと同じです

759 :749:2014/12/25(木) 22:16:17.61 ID:H/t9AARQ.net
>>757
お世話になっています。
仰る通り、再度ロードする時にコケるということです。
残念ながら、current(20141225)でも症状は改善しませんでした。

760 :名無しさん@編集中:2014/12/25(木) 22:54:57.69 ID:qyDgSlWb.net
>>759
やっぱり関係ありませんでしたか…
Spinelでは大丈夫との事なので、その辺りちょっと調べてみようかと思います
#それくらいしか出来る事が無いとも言いますが(;´Д`)

761 :名無しさん@編集中:2014/12/25(木) 23:50:04.87 ID:CXsFM06x.net
>>755
011が最終でした。ごめんなさい。

762 :名無しさん@編集中:2014/12/25(木) 23:54:55.85 ID:au/JIUtN.net
設定見直してるんだけどサーバーでADDRESS設定するのって何のため?

763 :名無しさん@編集中:2014/12/26(金) 00:52:36.58 ID:wsB6ANza.net
接続を受け付けるクライアントの範囲を決めるため

764 :名無しさん@編集中:2014/12/26(金) 22:39:12.85 ID:IS1Amv6v.net
>>753
死にかけてるのかもねw

765 :名無しさん@編集中:2014/12/28(日) 09:04:44.54 ID:xLhoL+ZQ.net
CentOS 6.6+PT2+softcasの構成で
make driverを実行した際

g++ -Wall -pthread -O2 -DNDEBUG -fPIC -c -o BonDriver_LinuxPT.so.o BonDriver_LinuxPT.cpp
BonDriver_LinuxPT.cpp: In static member function ‘static void* BonDriver_LinuxPT::cBonDriverLinuxPT::TsSplitter(void*)’:
BonDriver_LinuxPT.cpp:852: error: jump to label ‘complete’
BonDriver_LinuxPT.cpp:1108: error: ここから
BonDriver_LinuxPT.cpp:829: error: skips initialization of ‘unsigned char ver’
make: *** [BonDriver_LinuxPT.so.o] エラー 1

で止まってしまいます。

make server make clientは問題なく完了するのですが

766 :名無しさん@編集中:2014/12/28(日) 10:37:18.43 ID:Lv/dSkO/.net
>>765
スミマセン、修正しておきました(;´Д`)

元々win8+テレ東問題を調べてた時に、TsSplitter部分のみを切り出してファイルに適用するツールにしたのを
VCでコンパイルしてたのですが、それに加えた変更を逆移植した際の確認不足でした
失礼しました(;´Д`)

767 :名無しさん@編集中:2014/12/28(日) 12:03:30.21 ID:xLhoL+ZQ.net
早速のご対応ありがとうございます。

ファイルを入れ替えて、Make driver実行で
ドライバは作成できました。
ただ、コンパイル中以下の警告がでました。
色々、試させていただきます。


g++ -Wall -pthread -O2 -DNDEBUG -fPIC -c -o BonDriver_LinuxPT.so.o BonDriver_LinuxPT.cpp
BonDriver_LinuxPT.cpp: In static member function ‘static void* BonDriver_LinuxPT::cBonDriverLinuxPT::TsSplitter(void*)’:
BonDriver_LinuxPT.cpp:636: 警告: ‘iNumSplit’ may be used uninitialized in this function
BonDriver_LinuxPT.cpp:637: 警告: ‘rpmt_ci’ may be used uninitialized in this function
BonDriver_LinuxPT.cpp:638: 警告: ‘pmt_tail’ may be used uninitialized in this function
g++ -shared -Wall -pthread -O2 -o BonDriver_LinuxPT.so BonDriver_LinuxPT.so.o -ldl
g++ -Wall -pthread -O2 -DNDEBUG -fPIC -c -o BonDriver_DVB.so.o BonDriver_DVB.cpp
BonDriver_DVB.cpp: In static member function ‘static void* BonDriver_DVB::cBonDriverDVB::TsSplitter(void*)’:
BonDriver_DVB.cpp:809: 警告: ‘iNumSplit’ may be used uninitialized in this function
BonDriver_DVB.cpp:810: 警告: ‘rpmt_ci’ may be used uninitialized in this function
BonDriver_DVB.cpp:811: 警告: ‘pmt_tail’ may be used uninitialized in this function
g++ -shared -Wall -pthread -O2 -o BonDriver_DVB.so BonDriver_DVB.so.o -ldl

768 :名無しさん@編集中:2014/12/28(日) 23:59:51.54 ID:MReYGziM.net
>>767
その警告に関しては、問題無いようにつくってるつもりなので大丈夫かと思います
#コンパイラにバグが無い限りは、ですが

769 :名無しさん@編集中:2014/12/29(月) 00:01:26.71 ID:FSjYhPAK.net
以下、気になる人向けに具体例で言うと、形的には下記の例で出る警告
(clangでは出ないかもしれませんが)と大体同じです
---
// gcc -Wall -O2 a.c
// 疑似乱数を10回取得し、奇数->偶数の順に並んでいる部分のみ出力する
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int ac, char *av[])
{
int i, flag, odd, r;
flag = 0;
srand(time(0));
for (i = 0; i < 10; i++)
{
if ((r = rand()) % 2)
{
flag = 1;
odd = r;
}
else
{
if (!flag)
continue;
printf("flag[%d] odd[%d] even[%d]\n", flag, odd, r);
flag = 0;
}
}
return 0;
}
---

770 :名無しさん@編集中:2014/12/29(月) 00:02:26.31 ID:FSjYhPAK.net
警告を出なくするのは簡単なのですが、意味の無い初期化をする事になるだけですし、もしコンパイラに
バグがあればその警告を出なくしていたところでどのみち意図した通りには動かないと思うので、
放置している次第です

771 :名無しさん@編集中:2015/01/04(日) 10:24:01.72 ID:I2zTYLLe.net
色々試してはいるのですが

IBonDriver を取得できません。
CreateBonDriver()の呼び出しでNULLが返されました。

このエラーから進まず、詰んでいます。
ちなみに、chinachuを使っての録画等は可能です。

以下が現状の構成と設定内容です。

<クライアント>
Win8.1+Tvtest+winscard.dll
BonDriver_Proxy.dll+ini
iniの内容

[OPTION]
ADDRESS=192.168.24.44
PORT=1192
BONDRIVER=/home/tv/BON/BonDriverProxy
CHANNEL_LOCK=0
CONNECT_TIMEOUT=5
USE_MAGICPACKET=0

[MAGICPACKET]
TARGET_ADDRESS=192.168.24.44
TARGET_PORT=1192
TARGET_MACADDRESS=AA-BB-CC-DD-EE-FF

[SYSTEM]
PACKET_FIFO_SIZE=16
TS_FIFO_SIZE=32
TSPACKET_BUFSIZE=192512

772 :名無しさん@編集中:2015/01/04(日) 10:27:43.99 ID:I2zTYLLe.net
続き

<サーバー>
CentOs6.6+PT2+wincard.cpp
設置場所の中身
BonDriverProxy
BonDriverProxy.ini
BonDriver_LinuxPT2-T0.so
BonDriver_LinuxPT2-T0.so.conf
BonDriver_ProxyPT2-T0.so
BonDriver_ProxyPT2-T0.so.conf

【BonDriverProxy.ini】
[OPTION]
ADDRESS=127.0.0.1
PORT=1192
CHANNEL_LOCK=0
CONNECT_TIMEOUT=5
USE_MAGICPACKET=0
[SYSTEM]
PACKET_FIFO_SIZE =16
TSPACKET_BUFSIZE =192512

【BonDriver_LinuxPT2-T0.so.conf】
[OPTION]
ADDRESS=127.0.0.1
PORT=1192
BONDRIVER=/home/tv/BON/BonDriverProxy
CHANNEL_LOCK=0
CONNECT_TIMEOUT=5
USE_MAGICPACKET=0

773 :名無しさん@編集中:2015/01/04(日) 11:41:01.21 ID:lXVvsQGn.net
>>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 ID:I2zTYLLe.net
>>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 ID:bZD5e1iO.net
CentOS7向けに、pt3+bondriverproxyのrpm作ってるわ。
ただ、いろいろいじっってるし、真改造したchinachuとしか動かないから普通の人が使える代物ではないけど(´・ω・`)

776 :名無しさん@編集中:2015/01/04(日) 22:33:52.18 ID:KFD+oeHG.net
>>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 ID:KFD+oeHG.net
>>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 ID:j8SrzFGo.net
>>776 776
ありがとうございます。設定の変更でストリームの受信は出来ているようです。

クライアントのTVTestからチャンネルスキャンする際
SetChannel() ioctl(SET_CHANNEL) error: /dev/pt1video3
のエラーが延々と発生し。
映像が全く表示されません(通信はしている様です)

何度も、質問して申し訳ございません。

779 :名無しさん@編集中:2015/01/11(日) 18:17:35.30 ID:b7YNBufC.net
馬鹿には無理

780 :名無しさん@編集中:2015/01/11(日) 23:40:38.23 ID:zCbm/SKB.net
>>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 ID:e9V+D6ts.net
この手のスレでここまで初心者向けに分かりやすい解説してくれる奴を見た事があるだろうか

782 :名無しさん@編集中:2015/01/11(日) 23:57:30.06 ID:alc6s+s1.net
詳しい解説サンクスを横から贈りたくなるね

783 :名無しさん@編集中:2015/01/12(月) 02:55:11.27 ID:BpTdkonK.net
改行の仕方が自作自演だと思ってしまう俺はエスパーかなw

784 :名無しさん@編集中:2015/01/12(月) 09:47:41.01 ID:It8aTiWo.net
>>783
役に立たないレスをするお前も俺も無能だよ?

785 :名無しさん@編集中:2015/01/12(月) 11:30:31.13 ID:cIweZP6o.net
>>783
改行から何がわかるんだ?
どういう思考回路してるんだよ

786 :780:2015/01/14(水) 20:53:00.80 ID:4xesFCVB.net
>>783
Dreamspark向けのVisualStudioでTVTestとEDCBビルドするのが限界の俺に
こんな詳しい解説ができるわけがない

787 :名無しさん@編集中:2015/01/20(火) 09:49:26.43 ID:FUaFmgEZ.net
>>595
BonCasLink_1.10.z2 111003
で上記のような修正をしたいです。
ソースの修正箇所を教えていただけないでしょうか?

788 :名無しさん@編集中:2015/01/20(火) 12:26:33.89 ID:vzCYncsN.net
BonDriverProxyExのLinux版ってリリース予定はないんでしょうか…。

789 :名無しさん@編集中:2015/01/21(水) 13:10:26.68 ID:hust5DMd.net
>>787と同じく教えて欲しい
現状は謎の人がビルドしたソースなしの改変BonCasServerを使うしかない
最新版に対する改変でもないし複数クライアントがアクセスしてる状態で
どれか一つのクライアントが終了すると他のクライアント全てで解除漏れが出る

790 :名無しさん@編集中:2015/01/22(木) 07:16:43.01 ID:Mn1qwivq.net
>>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 ID:Mn1qwivq.net
ただし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 ID:Mn1qwivq.net
>>788
需要があったとは…
ここ最近忙しいものでなかなか手を付けられないかもしれませんが、その内やってみます

793 :名無しさん@編集中:2015/01/22(木) 07:39:01.45 ID:Mn1qwivq.net
今更レスですが、自作自演やるほどヒマなら嬉しいのですが(;´Д`)

しかし改行のしかたはともかく、ソースコードからは結構、これはあの人のコードかなとか思う事ありますね
例えば、BDPL用b25パッチの人は、B-CASカードの処理時間測定ツールwをlinuxに移植/改良した人で、
今なにやら一部で話題の、imperfect...の人でもあるんじゃないかなーと勝手に思ってます
もしこの予想が当たってたとしたら、相変わらず攻めてますねと思う次第ですw

794 :名無しさん@編集中:2015/01/22(木) 10:19:39.34 ID:7h/6/Gu1.net
BonCasLink_1.10.z2 111003のソースうpって大丈夫かな?

795 :名無しさん@編集中:2015/01/22(木) 10:23:25.89 ID:7h/6/Gu1.net
>>792
需要ありますよ。
BonDriverProxy系は凄くいいですよ。
というか、マイナーなだけで機能的にはSpinelを超えているし・・・

796 :名無しさん@編集中:2015/01/22(木) 12:02:30.43 ID:Wv/8V90f.net
>>791
InitialSettingはBCASカードが刺さってるか判定だからなくせばOpenCardは成功する
ただしそれで動くのかどうかはSPHDカード持ってないから確認できない

複数カードリーダー対応はz2では入ってるからそれ自体は大きな問題にはならない
まあ呼び出し側で呼び分けられるようになっているっていう必要はあるけどな

797 :名無しさん@編集中:2015/01/22(木) 12:50:26.09 ID:Pe/FbtUM.net
proxyexもチューナー埋まってる状態で固定視聴だけできたりする?

798 :名無しさん@編集中:2015/01/22(木) 12:52:28.62 ID:566iiVgw.net
>>790
ありがとうございます
おかげで使えるようになりました
謎の人版にあった複合漏れも無くなったので大満足です

>>794
いいんじゃないの
自分はSPHD1枚しか共有してないからコメントアウトするだけの単純修正でいいけど
BCASと2枚挿し共有してるともっと大変な修正必要みたいだから少なくともわかってる人じゃないと無理みたいだし

799 :名無しさん@編集中:2015/01/22(木) 14:45:53.33 ID:566iiVgw.net
ああBCASカードに限定してある確認処理スキップしてるだけで
もともとz2は複数枚挿しOKだしコメントアウトだけでOKなのか

800 :名無しさん@編集中:2015/01/22(木) 20:15:41.02 ID:PbB+RCfJ.net
>>798
愚弟的なコメントアウトの箇所教えてください。

>>799
コメントアウトだけでFA?

801 :名無しさん@編集中:2015/01/25(日) 10:28:06.06 ID:fAJedb+G.net
>>701のバイナリ、EX付きとそうでないものを起動してみたんだけど、
タスクトレイにもタスクバーにも何も出てこないのは正常な反応なの?
一応VC2013と2005のランタイムとBonDriver_ptmr.dllはインストールしました。

802 :名無しさん@編集中:2015/01/25(日) 11:22:33.80 ID:m1otS21p.net
ドキュメントくらい読めよ。

803 :名無しさん@編集中:2015/01/25(日) 13:47:12.61 ID:u/MSQhzT.net
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 ID:l5Za+d5v.net
>>803
それ家でもなるや
TBSシリーズだからハードウェアじゃなくbonドラ依存くさい
PLEXは社員がbonドラ書いてるからなんかあるんだと思う

805 :名無しさん@編集中:2015/01/26(月) 02:11:58.11 ID:RLfWC4Ff.net
>558
>b25パッチを小改造
この部分が知りたいです・・・。

806 :名無しさん@編集中:2015/01/26(月) 07:23:52.18 ID:G8eRN3d5.net
>>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 ID:G8eRN3d5.net
>>805
BDPL用b25パッチにはチャンネル変更等の際に少し待ってからlibarib25をリセットする機能が組み込まれています
これは元々、linuxのchardev版デバドラの仕様と標準のlibarib25とが組み合わさって発生する問題への対応ですが、
libarib25にパッチを当てるとこの対応は必要無くなる筈なので、その機能を使用しない様に改造しているだけですね
ちなみに残したままでも(恐らく)問題になったりはしないと思いますよ

808 :名無しさん@編集中:2015/01/26(月) 08:36:33.35 ID:jbeyeCoz.net
>>807
丁寧なご回答ありがとうございます。
ソースの該当箇所を探してみます。

809 :名無しさん@編集中:2015/01/26(月) 09:25:30.98 ID:jbeyeCoz.net
>>807
もしかして該当箇所のreset()自体が必要ないということでしょうか

810 :名無しさん@編集中:2015/01/26(月) 13:17:20.38 ID:G8eRN3d5.net
>>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 ID:gYdD4/Ub.net
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 ID:o4HxSKhL.net
急に賑やかになったから不思議だったけど、
他スレで話題になっていたのか・・・

813 :名無しさん@編集中:2015/01/26(月) 18:18:18.46 ID:ry0dJOdA.net
うw!くっさw

814 :名無しさん@編集中:2015/01/26(月) 20:20:13.21 ID:lxnWk8Yr.net
proxyex、Win8で起動しなかった

815 :名無しさん@編集中:2015/01/26(月) 23:11:08.22 ID:V02z8nGTb
>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 ID:L4b+7/no.net
>810
がんばってb25を移植してみたのですが、どうもうまく行きません。
アドバイスを頂けませんでしょうか。
http://pastebin.com/VGGajnGe

ビルドは普通にできるのですが、TVTestを使ってテストしたところ
オリジナルのarib25のソースだと、スクランブルは0ですが、画面は真っ黒。
>602のリンクのものだとTVTestが異常終了してしまいます。
ちなみにBonDriver_Proxy.dllはオリジナルをそのまま使ってます。

817 :名無しさん@編集中:2015/01/27(火) 06:39:52.66 ID:9fYM4cYn.net
>>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 ID:aADH7JhG.net
>>817
ご返答ありがとうございます。
g_b25_enableについては、TVTestが落ちるので、とりあえずオフにして試してみた感じです。
しかし、オフでも落ちるので、まったく原因がわからないところでした。

ちなみに落ちるとは、TVTestを起動して、TVTestがBonDriverにアクセスし、チャンネルに行ったところで落ちる感じです。

ご指摘の箇所を修正して再度試してみたいと思います。

また、不要な変数等、細かいご指摘もありがとうございます。勉強になります。

819 :名無しさん@編集中:2015/01/27(火) 10:00:08.52 ID:Hly7MB9o.net
>>818
完成したらパッチうpして欲しいww

820 :名無しさん@編集中:2015/01/27(火) 13:00:49.18 ID:aADH7JhG.net
>>819
そのつもりです。

よくわからない中で作ってるので、むしろバグとか指摘して頂けたらと思います。

821 :名無しさん@編集中:2015/01/27(火) 20:34:16.88 ID:gUE1oeDq.net
TVTestとEDCBでチューナーを沢山使っていたらエラーが出たので報告
大量に使っていてTVTestを閉じると時々発生する症状です。
EDCBで落ちるかはわかりません。

822 :名無しさん@編集中:2015/01/27(火) 20:35:01.68 ID:gUE1oeDq.net
問題の署名:
問題イベント名: 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 ID:gUE1oeDq.net
再現方法わかりました。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 ID:9fYM4cYn.net
>>602のリンク先のパッチをもうちょっと変更して、上に少し書いた192バイトTSでの問題への対応と、
ライブラリとして使用する際に、ごく小さなサイズでput()を繰り返されると、ユニットサイズの検出や
TS同期ができない問題に対応したバージョンにしておきました
ttp://pastebin.com/zV1WvNb8
実用上は殆ど変わりませんが、気になってたので一応…

あと、手元では>>816さんのパッチに>>817の修正をやって機能するのを確認できました

825 :名無しさん@編集中:2015/01/27(火) 21:25:46.44 ID:9fYM4cYn.net
>>821-823
おお、詳細な報告ありがとうございます
ちょっと確認してみます

826 :名無しさん@編集中:2015/01/28(水) 01:44:21.74 ID:6j9XZJan.net
>824
ご苦労さまです。
ところでパッチの
@@ -539,6 +539,9 @@
if(r < 0){
return r;
}
+ if(prv->unit_size < 188){
+ return ARIB_STD_B25_ERROR_NON_TS_INPUT_STREAM;
+ }
のところですが、
if(prv->unit_size < 188){
はいらなくないですか?
そのすぐ上にあるので。

827 :名無しさん@編集中:2015/01/28(水) 01:47:48.38 ID:6j9XZJan.net
>826
あ、select_unit_sizeで、prv->unit_sizeの値が変わるから
その判定をしてたんですね。

828 :名無しさん@編集中:2015/01/28(水) 02:07:18.05 ID:6j9XZJan.net
要望なのですが、BonDriver_Proxy.iniに
BONDRIVER=PT-S
BONDRIVER=PT-T
のように2つ書いて、地デジ,BS,CS全部1つのドライバーで
扱えるようにしていただけると便利かと思います。

829 :814:2015/01/28(水) 08:27:57.61 ID:Yw8LuuM0.net
>>824
こちらでも動作確認できました。
最初arib25のビルドオプションにあわせてunicodeではなくマルチバイトでビルトしていたのがTVTestが落ちた原因でした。

ご指摘の箇所を含め、コードを整理してまたアップしようと思います。

830 :名無しさん@編集中:2015/01/28(水) 09:24:28.96 ID:zr8Aj+zL.net
BonDriver_ProxyやExで現在どのチューナーが使われているのか確認する方法ありますか?

831 :名無しさん@編集中:2015/01/28(水) 20:21:21.10 ID:hSZMB8Kt.net
>>823
これかなと思うのに対応してみたので試してみてもらえるでしょうか
カレントバイナリも更新しています

>>829
ナルホド…
BonDriverインタフェースは文字列がなぜかTCHARで定義されてしまっているんですよね
実際にはマルチバイトのBonDriverは多分存在しないので、必然的にBonDriverを使用する
アプリはUNICODE専用になってしまうと言うのが実情かと思います

832 :名無しさん@編集中:2015/01/28(水) 20:23:29.17 ID:hSZMB8Kt.net
>>828
その辺はBonDriver_RDCTを、と言いたいのですが、何やらEx版との組み合わせでは
期待通りに機能しないそうですね…
暇をみてちょっと理由を調べてみます

>>830
現状そう言う機能はありませんが、Ex版のデバッグビルドに、ウインドウをクリックしたら
接続してる数とそれぞれが使用しているBonDriverを表示する機能を付けてみたので、
その辺をベースにしてみるとかでお願いします…

833 :名無しさん@編集中:2015/01/28(水) 21:25:36.73 ID:oLgS8gWd.net
>>831
BonDriverProxy_current(20150128).zipを試してみました。
結果同じ症状でしたが、再現の詳細がわかりましたのでご報告します。

TVTest.exe d BonDriver_Proxy_T.dll /rch 1
Sleep, 0
TVTest..exe d BonDriver_Proxy_T.dll /rch 1
で、TVTest.を2つ起動させてWin7のタスクバーから同時に2つ終了すると、BonDriverProxyEx.exeが落ちる。
個別に1つずつ間隔をあけて終了すると落ちない。
(Sleep 0 だと100%落ちます。Sleep 3000 だと落ちません。 Sllp時間に比例して落ちにくくなる?)

TVTest.を3つ起動させて、1つも先に、2つをタスクバーから同時終了してもBonDriverProxyEx.が落ちます。

他、こちらから補足したほうがいい情報がありましたら教えてください。

834 :名無しさん@編集中:2015/01/28(水) 21:26:37.76 ID:oLgS8gWd.net
問題の署名:
問題イベント名: APPCRASH
アプリケーション名: BonDriverProxyEx.exe
アプリケーションのバージョン: 1.1.4.9
アプリケーションのタイムスタンプ: 54c8b264
障害モジュールの名前: 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

835 :名無しさん@編集中:2015/01/28(水) 21:29:02.75 ID:oLgS8gWd.net
1度だけ落ちないで下記ウィンドウが表示されたので、関係ないかもしれませんがご報告しておきます。

∇ ウィンドウ タイトル ∇
BonDriverProxyEx.exe - アプリケーション エラー

∇ スタティックテキスト ∇
OK
0x778b43e0 の命令が 0x00000005 のメモリを参照しました。メモリが read になることはできませんでした。

プログラムを終了するには [OK] をクリックしてください

836 :名無しさん@編集中:2015/01/28(水) 21:54:25.56 ID:oLgS8gWd.net
ごめんなさい。
再現方法凄く簡単でした。
同じjチャンネルを開いたままタスクトレイからTVTestを終了するだけで、BonDriverProxyEx.が落ちました。

1)TVTest.Aを起動
2)TVTest.Bを起動
3)同じチャンネルにする
4)タスクトレイから2つ同時に終了
5)BonDriverProxyEx.が落ちる

凄く複雑化させてしまいました。すみません。

837 :名無しさん@編集中:2015/01/28(水) 21:58:43.98 ID:oLgS8gWd.net
タスクトレイじゃなくて、タスクバー

838 :名無しさん@編集中:2015/01/28(水) 23:59:17.46 ID:hSZMB8Kt.net
>>833-837
ありがとうございます、対応してみました
タスクバーからまとめて終了と言う再現方法を絞り込んで頂けたおかげで、
原因らしきモノの特定が非常に楽でしたヽ(;´ー`)ノ今度は大丈夫ではないかと…

839 :名無しさん@編集中:2015/01/29(木) 00:11:16.67 ID:MNm1hl5w.net
バグレポはかくありたい

840 :名無しさん@編集中:2015/01/29(木) 01:09:03.92 ID:pMfuiBRC.net
>>788 で BonDriverProxyEx の Linux版が欲しいと言った張本人です。
作者さん、ありがとう!!これで完全にWindowsサーバから脱却できる。

841 :名無しさん@編集中:2015/01/29(木) 01:14:14.11 ID:mERZFwc5.net
>>832
828です。ありがとうございます!
デバッグビルドはGoogleドライブにあるのでしょうか?

842 :名無しさん@編集中:2015/01/29(木) 01:42:23.20 ID:64uXG1EE.net
>>840
もとから Windows "Server" でなければならない理由は何一つないだろ

843 :名無しさん@編集中:2015/01/29(木) 08:40:16.66 ID:9URlQILs.net
>>842

844 :名無しさん@編集中:2015/01/29(木) 08:55:58.21 ID:MNm1hl5w.net
>>842

845 :名無しさん@編集中:2015/01/29(木) 09:28:30.71 ID:UYGnrZwh.net
>>842

846 :名無しさん@編集中:2015/01/29(木) 11:16:36.84 ID:vZBuxkgB.net
bondriverproxyexつけた状態で元のBondriver-T0.dllとかのドライバ読むと
PT3ctrl.exeが落ちるんスけど

847 :828:2015/01/29(木) 11:59:10.29 ID:i1U2bxGm.net
>>832
確認できました。ありがとうございました。
鯖機の再起動時などに家族が接続中かどうか確かめる時が多いので
助かりました!

848 :831:2015/01/29(木) 19:57:01.38 ID:JdrGr4/f.net
>>838
直っていました。
対応ありがとうございます。

849 :名無しさん@編集中:2015/01/29(木) 21:04:02.14 ID:9+jHC6qX.net
>>840の書き方が悪いだけだと思うんだけど、なんで>>842が赤くなってんの

850 :名無しさん@編集中:2015/01/29(木) 21:29:21.89 ID:v1gQzqYV.net
PS2コントローラーの刑にしたいね

851 :名無しさん@編集中:2015/01/29(木) 22:34:37.29 ID:pMfuiBRC.net
なんで俺の書き方が悪いことになってんのw

852 :名無しさん@編集中:2015/01/29(木) 22:43:40.51 ID:64uXG1EE.net
>>851
あんたが 838 なのであれば
例えば Windows 7 と Windows Server 2008 R2 をはっきりと区別していないじゃないの ?

> Windowsサーバから脱却できる

この言い方したら Win6.1 でも Windows 7 ではなく Windows Server 2008 R2 って事になる。
たんに Windows から脱却できると言えば問題はない。

総レス数 997
376 KB
新着レスの表示

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