日々

 TS処理プログラムはパケットの読み込み処理を188バイト単位で行っていたけど、189バイト単位にしてパケットに次のパケットの同期バイトが含まれているかどうかをチェックするようにして、189バイト未満でも188バイトでかつ先頭が同期バイトならパケットを読み込めたものとして判別するようにしてみた。
 PCRベースを元に経過時間を求める処理を実装。以前にラップアラウンドがPCRベースよりも狭いビット幅で行われる現象に出会って対策もしてたけど、どうやらPCRベースを取得する際にintに暗黙の型変換を行われて符号ビットが邪魔をして正しい値を取得できてないだけだった模様。
 TDT/TOTの取得処理も実装。初回取得時にPCRの経過時間を差し引いて録画開始時間を求めるようにしたので、最終的なPCRの経過時間を足すことで録画終了時間も求められるようになった。
 そういえば、PATを取得するまでTSIDが決まらないので、先にNITを取得しないようにしたり、PAT更新時にNITやPMTを読む前の初期値に戻したり等の処理を追加。
 EDCBのerrファイルのようにドロップ発生日時を出力する処理を追加してみたけど、どうやらEDCBは連続して発生するドロップやスクランブルはまとめて表示しているっぽい。それとは別にEDCBのドロップ数はtsselectのようなドロップ発生回数ではなく、ドロップしたパケット数を類推して表示しているんだけど、同様な処理を組んだハズがEDCBの結果表示と一致しないので、若干諦め気味。
 これで次はそろそろSDT、そしてEITの処理を実装するタイミングになったかな。

 定時後、第二神明で帰宅。晩御飯は焼き魚のほっけとじゃがいもの味噌汁。
 夜9時にお茶入れてもらって一服。