2010年7月上旬

2010年7月上旬 | 日記の目次へ


2010年7月6日(火) : 分離修正 [通勤 + PC]

つい昨夜は夜更かししてしまったが、何とか朝は7:20頃には起きる。朝食中に雨が降ってきたので保育園への送りは車にしたが、雨は出発までには上がり、その後も結局雨には当たらず。
あとはいつも通り、中央林間8:15発の小田急線急行。大和からは相鉄線始発急行、二俣川からは各停に乗り継ぎ。9:00少し前の出社。

退社は今日も、21:45頃。車両は今日は8000系だったが、座席は微妙な埋まり方。順方向窓側が空いていると思って行ってみると荷物が置かれていたり、というのを2〜3回繰り返し、結局は逆方向通路側。
大和からは22:21発の小田急線快急で、中央林間下車。

先週発覚した、自前のTS分離プログラムがバグってる件を追跡。他人製のツールとパケットを比較してみると、やはりPMTが途中更新されて文字放送(?)のストリームが増えた辺りでごっそり違いが発生。
ということで対象は絞り込めてきたので、その辺りを詳細に比較。ここを境にPMTが単一パケット構成から複数パケット構成へと変わっているのだが、この処理(複数パケットの結合)が怪しそうだ(要は自分で書いてて自信がない部分)。デバッグ用のprintfを仕込んだりしてみるが、PMT処理自体は正常な模様。
最初の推測は外れてしまったので、対象範囲を少しずつ広げながらソースを眺めてみる。…と、なんとなく怪しげな記述を発見。PMTが確定したときにその直前のPAT位置を覚えておく変数があるのだが(SD→HD切り替え時の読み飛ばし用)、そのハンドリングに問題が。番組途中でPMTが更新されたらその都度、録画開始(ファイル先頭)からその時点までに相当する数のパケットを読み飛ばしていたようだ。例えば前回失敗したアマガミだと、録画開始からしばらくは正常なものの、約75秒でPMTが更新(アバン開始)された瞬間に75秒ほど、結果的にはOPの途中まですっ飛ぶということに。症状とも一致しているので、これで原因確定だ。
原因は分かったので、あとは数行ほどの修正。少々直し方が美しくなかったし、明らかに対応漏れがあるのは分かっているが、実使用上は問題ないだろうと勝手に判断。試しに数本ほど通してみたが、一応どれも正常に分離できているようだ。突貫修正なので少し不安ではあるが、ぶっつけ本番で今晩のけいおん!!にも適用してみることにする。
ということで、tsstrip.c更新。


2010年7月上旬 | 日記の目次へ

Tosy <tosy@wig.nu>