NicoCache
とちゃき#//FjlV
03/16/2024 (Sat) 18:10
[Preview]
No.159669
del
【開発途中版4 2024-03-17】
- シークなどで通信が中断された場合に1/16の確率で不完全な動画セグメントファイルが生成されていた問題を修正。
onTransferEnd(boolean completed)の引数を確認していないのが原因でした。
IllegalBlockSizeExceptionもこれが原因でした。
HlsCachingProcessor.javaを改変しながらコードを書いた時にcompleted引数には触れてないから役割が分かってなかった。
Hlsでは受信バイト数をカウントして完了したかどうかを見ていたから触れてないのだった。
- 未知のセグメントを受け取った場合にプレイリストを再スキャンする機能を追加。これによってキャッシュコンプリート処理不発を改善した。
原因は分からないけど対処を追加しました。CacheManager.java#addCachedSegmentAndCheckComplete
プレイリストが揃っていない状態でキャッシュ済セグメントを追加する要求なんて来るはずないんだけれども。
何か見落としている。
- showCachingオプションを追加。trueにすると"caching smXXX"というメッセージがセグメントを受信するごとに出ます(dmc-hlsはではまだ出ません)。デフォはfalse。
デバッグ用にログを仕込んでたんだけれどもリリース版でも欲しい機能だからオプションにしました。
- 数日使ってみて重大なバグがなければ、一般ユーザーにもNicoCacheを勧められる扱いにします。
Message too long. Click here to view full text.