tss.pyもどき

tss.pyは2-passで、PATと先頭ProgramのPMTをみつけたら、先頭にseekして出力し直している。
録画中にこれをやるには、PMTがみつかるまでバッファする必要があるので面倒だし、b25のputも、PMTやECMが揃うまで32MB上限でバッファしているようなので、2重にやるのももったいない。なので、

  • PATまで読み飛ばして、PATを修正して出力
  • PMTまで読み飛ばして、PMTを出力
  • 以降は、PMTに載っているPIDだけ出力

としてみた。PMTが見つかるまでに数100パケット位捨てちゃうようだけど、まあいいや。

とりあえず単体のツールとして作って、b25デコード済の録画ファイルへの処理はできた。5分 425MBくらいのファイルが、352MBにダイエット。そのまま、uShare経由LinkTheaterで再生できた。
。。。のだけど、これをhdusrecに組み込むとb25::putが怒る。エラーはARIB_STD_B25_ERROR_NO_ECM_IN_HEAD_32Mなので、ECMがないと言っている?これって、tss.pyが捨てていたtype=0x0dのことかと思ってこれも出力してみたが、ダメ。。。うーん。