recdvbでepgオプション付けてもTOTが保存されない原因と対策

recdvb 1.2.0では(恐らくrecpt1でも)--sidオプションでhdを指定すると1番目のサービスのみを残す、いわゆるサービス指定録画が出来るようになるが、EPG情報は残らないのでepgdumpやTsRename、eit_txtout等を使うことが出来ない。しかし、--sidオプションにepgを加えて指定するとEPG情報を残すことが出来るらしい。
実際に試してみると、チャンネル名を記したSDT(0x11)、現在日時を記したTOTEPG情報であるEIT(0x12)、テレビやレコーダーの最新ソフトウェア伝送スケジュールを記したSDTT(0x23)、放送局のロゴ画像を記したCDT(0x29)が追加で残されるの確認した。しかし、EpgDataCap_Bon.exe等では残される肝心要なEPG情報であるEIT現在日時を記したTOT(0x14)が残されていないのでeit_txtoutが使えない。
不思議に思ってrecdvb 1.2.0のソースに含まれるtssplitter_lite.cを見てみるとEITTOT(0x14)が残す対象に入っていない(滝汗)

529         else if(!strcasecmp(*p, "epg")) {
530           /* epg抽出に必要なPIDのみを保存する */
531           sid_found    = TRUE;
532           *(pids+0x11) = 1;
533           *(pids+0x12) = 1;
534           *(pids+0x23) = 1;         // SDTT
535           *(pids+0x29) = 1;         // CDT
536         }

てな訳で、534行目に「*(pids+0x14) = 1;」を挿入してコンパイルしたところ、recdvb --b25 --sid hd,epg --strip 13 15 uhf13.ts等で無事EPG情報TOTを残すことが出来た。しかし、何でこんな実装になってるんだろう…。
2015/11/28追記:EITとTOTを間違って見ていたので大幅に訂正(汗)そういえば、TsSplitter.exeで番組情報を残すためのEITオプションはPLAYLIST用にNIT〜TOTを残しているらしい。あと、ts2pts.exeではTOT(0x14)だけでなくNIT(0x10)やSDT(0x11)、さらにはBIT(0x24)まで必要とするらしいので、それらも加えておくことにした。