日々

TSパケットを確認するプログラムは、先頭のTOTを見つけた後、末尾からTOTを探すようにして処理速度の向上を目指したが、2GB以上のファイルへのランダムアクセスでつまづいた。どうやら、Cコンパイラの環境ごとに対処方法が異なるっぽい。仕方ないので最低限の処理を2GB未満で動作するソースを作成して、末尾からTOTを探すロジックの完成を優先させた。
その後、大抵の環境でそのままコンパイルできる状態をあきらめて、MinGWで2GB以上のファイルを扱えるようにしてみた。結論から言えば、stat→_stat64、fopen→fopen64、fseek→fseeko64に変更することで動作するようになった。もちろん、statやfseekで扱う構造体や型も合わせて変わる。何はともあれ、先頭と末尾のTOTだけを取り出す処理は出来上がり。あとはPCRでの補正を加えねば。
定時後、須磨のエッソでレギュラー満タン給油。スピードパスでリッター140円。その後、第二神明で帰宅。晩御飯はソーセージをポテトで固めて焼いたものとコーン。あとコーンスープ。
何となくTSパケットを確認するプログラムの続きを作り始める。PCRの取得とラップアラウンドの処理。先頭のPCR、前回のPCR、今回のPCRから先頭のPCRの差で一番大きなものをPIDごとに保存。これを先頭と末尾のTOTに対して補正するために使う部分も完成。12GBのTSファイルでもすぐに録画開始と終了の日時が表示出来るようになった。
未読前にお茶入れてもらって一服。