BonDriver共有ツール総合 その2at AVI
BonDriver共有ツール総合 その2 - 暇つぶし2ch514: ◆SALrG1ld3mTc
15/11/19 20:08:47.93 T7X9SZk4.net
>>471
あまり問題になる事は無いとは思うのですが、以前からぼんやりと思ってた事が…
このdecode()の実装の場合、_b25->put()でエラーになった際に、decode()呼び出し側からみると
少なくとも1パケットドロップする(ECMが処理できずにrelease()を呼んだ場合)事になるか、
不必要なデータが追加されてしまう(次回以降の_b25->put()がまた成功した場合)事になりますよね
これを回避する為には、やり方は色々考えられると思いますが、一応当方の手元で期待通りに動いているのは、
b25ライブラリ側へput()がエラーになった場合の処理の変更と、未処理バッファの回収APIの追加を行い、
decode()内でput()がエラーになった場合にはそれらを使って、今までdecode()呼び出し側に返したデータと
一貫性がある(ドロップも追加も無く、ただ復号漏れになる)ように返すデータを調整する、と言う物です
具体的には、put()のエラー処理の方はsbufとdbufのtail位置を呼び出される前の状態に巻き戻し、
未処理バッファの回収APIはsbufのheadからtailまでを返すものをwithdraw()として実装しています
URLリンク(github.com)
へのパッチなら
URLリンク(pastebin.com)
と言う感じですね
#まず問題にはならない地味なバグ修正や、ECMやEMMをカードへ送るのに失敗した場合のリトライ方法及び
#回数の変更なども含んでいます


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch