日々

TSパケットの確認をするプログラムは、久々に手を付けてロジックを組もうとするもロジックがかなり煩雑になってきたので整理。まずは大きめのファイルバッファでTSファイルを読んでTSパケットが連続する部分を読み出すトコをfread(buf,1,188,fp)と置き換えられるように関数化してみた。これだけでかなり見やすくなった。
次にセクション組み立て部分も同様に関数化。こっちは比較するものが無いけど、fgetcならぬgetpsiってカンジで。どちらも連続して呼び出すことを前提にしているのでバッファ内の現在位置を示すポインタを維持しないといけないので、変数を参照渡しで。ここで軽くつまづく。
関数内で参照渡しされた値を1つずつ増加する処理で「*sp++」って書くと「*sp」を「++」ではなく、「++」が優先されるので「sp++」した上で「*sp」となってしまう。意図的に「(*sp)++」と書けばいいんだけど、ここだけ何でカッコでくくるか判りづらいなと思ったので「*sp=*sp+1」に置き換えた。
関数化して見やすくなったソースでtsselect相当のエラーチェックプログラムを作った後、TOTの表示、初回と最終のTOTの表示、PCRの表示と出来たが、PCRの経過時間を表示する部分で詰まったので本日は終了。
定時後、第二神明で帰宅。晩御飯は揚げ出し豆腐とかぼちゃの煮付けとわかめとたまごの味噌汁。
学園ベビーシッターズ見終わってからお茶入れてもらって一服。