BonDriver共有ツール総合 [sc](★0)
-
- 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つのドライバーで
扱えるようにしていただけると便利かと思います。
-
- 830
- 2015/01/28(水) 09:24:28.96
-
BonDriver_ProxyやExで現在どのチューナーが使われているのか確認する方法ありますか?
-
- 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が落ちるんスけど
-
- 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 から脱却できると言えば問題はない。
このページを共有する
おすすめワード