14/09/03 06:52:51.56 ZY4L+Z2d
>>604-606
サーバでのスクランブル解除はカードの処理能力がボトルネックになる場合があるから注意…
と思ってたんですが、今libarib25をナナメ読みした限りでは、あるサービスに対して最初のECMで購入済みか
チェックして、未購入だった場合は以降のECMはカードに投げない様にしてくれてるみたいですね
#win環境で一般的に使われてるB25Decoder.dllではやってなかったと思います
これならあんまり心配する必要は無さそう
#20チューナー同時稼働とかでない限り
ただその辺りも含めて、libarib25は内部的に色々と現在のTSストリームの状態を保持しているので、
チャンネル変更の際にはそれらの情報の破棄が必要でしょう
> 視聴中にチャンネル切換すると稀にストリームが滞る事があるようです。
の現象も、その内部情報破棄を行っていない事が原因だと推測します
対応としては、チャンネル変更のタイミングでb25->reset()を呼べば良いと思います
そうすればb25->put()やb25->get()でコケる事も無くなるかと
実装的には、b25を配信スレッドのローカル変数からcProxyServerのメンバ変数にして、m_pposなどと
同じ様な形で持つのが良いんじゃないでしょうか
b25の取得、release()及びreset()も、m_pposの場所に準じる感じで
#そこでなら排他ロックも掛かってるので