進捗

各種入力ソースと動作モードの整理が完了。

1.0.0までのToDo

  • ECM鍵到着と利用の時間差を計測して表示
  • 時間ベースのTS遅延バッファサイズ指定
  • 終了時の各種バッファのフラッシュ
  • 終了時の各種バッファとインスタンスの解放
  • B-CAS 初期データをダンプする
  • 最初のECM鍵が到着するまでTSをsniffしない? その場合は無効区間をログ出力
  • 末尾のECMエラーの回避

TS遅延バッファはとりあえず8MBで足りるみたいだ。でも、チャンネルによってビットレートが違うから、サイズでの指定はやっぱり上手くないんだな。規格で鍵更新間隔は1秒以下となってるらしいので、時間での指定なら2〜3秒遅延固定で良いはず。

実装した。32バイト単位B-CAS転送、TS 3秒遅延で0.9秒ぐらいのマージンがあるから大丈夫そうだ。

最初の鍵が到着するまでのTSをすべて捨てる。CTRL-Cを入力した時点でTS出力を止め、追加で鍵を1個受け取るまで待つ。これで undecrypted TS が 0 になった。結果として、先頭・末尾のマージンは1〜3秒程度。