facebook twitter hatena line google mixi email
★お気に入り追加


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

  • 1
  •  
  • 2013/04/19(金) 11:48:58.95
BonDriver共有ツール総合

ここまで見た
  • 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の修正をやって機能するのを確認できました

ここまで見た
  • 825
  •  
  • 2015/01/27(火) 21:25:46.44
>>821-823
おお、詳細な報告ありがとうございます
ちょっと確認してみます

ここまで見た
  • 826
  •  
  • 2015/01/28(水) 01:44:21.74
>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
>826
あ、select_unit_sizeで、prv->unit_sizeの値が変わるから
その判定をしてたんですね。

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

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

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

ここまで見た
  • 830
  •  
  • 2015/01/28(水) 09:24:28.96
BonDriver_ProxyやExで現在どのチューナーが使われているのか確認する方法ありますか?

ここまで見た
  • 831
  •  
  • 2015/01/28(水) 20:21:21.10
>>823
これかなと思うのに対応してみたので試してみてもらえるでしょうか
カレントバイナリも更新しています

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

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

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

ここまで見た
  • 833
  •  
  • 2015/01/28(水) 21:25:36.73
>>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
問題の署名:
問題イベント名: 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
1度だけ落ちないで下記ウィンドウが表示されたので、関係ないかもしれませんがご報告しておきます。

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

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

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

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

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

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

ここまで見た
  • 837
  •  
  • 2015/01/28(水) 21:58:43.98
タスクトレイじゃなくて、タスクバー

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

ここまで見た
  • 839
  •  
  • 2015/01/29(木) 00:11:16.67
バグレポはかくありたい

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

ここまで見た
  • 841
  •  
  • 2015/01/29(木) 01:14:14.11
>>832
828です。ありがとうございます!
デバッグビルドはGoogleドライブにあるのでしょうか?

ここまで見た
  • 842
  •  
  • 2015/01/29(木) 01:42:23.20
>>840
もとから Windows "Server" でなければならない理由は何一つないだろ

ここまで見た
  • 843
  •  
  • 2015/01/29(木) 08:40:16.66
>>842

ここまで見た
  • 844
  •  
  • 2015/01/29(木) 08:55:58.21
>>842

ここまで見た
  • 845
  •  
  • 2015/01/29(木) 09:28:30.71
>>842

ここまで見た
  • 846
  •  
  • 2015/01/29(木) 11:16:36.84
bondriverproxyexつけた状態で元のBondriver-T0.dllとかのドライバ読むと
PT3ctrl.exeが落ちるんスけど

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

ここまで見た
  • 848
  • 831
  • 2015/01/29(木) 19:57:01.38
>>838
直っていました。
対応ありがとうございます。

ここまで見た
  • 849
  •  
  • 2015/01/29(木) 21:04:02.14
>>840の書き方が悪いだけだと思うんだけど、なんで>>842が赤くなってんの

ここまで見た
  • 850
  •  
  • 2015/01/29(木) 21:29:21.89
PS2コントローラーの刑にしたいね

ここまで見た
  • 851
  •  
  • 2015/01/29(木) 22:34:37.29
なんで俺の書き方が悪いことになってんのw

ここまで見た
  • 852
  •  
  • 2015/01/29(木) 22:43:40.51
>>851
あんたが 838 なのであれば
例えば Windows 7 と Windows Server 2008 R2 をはっきりと区別していないじゃないの ?

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

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

ここまで見た
  • 853
  •  
  • 2015/01/29(木) 22:50:42.11
文脈くらい見ろアホ

フリックゾンビ
フリックゾンビ
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email
おすすめワード