TSファイルをD&Dして、そのtsの番組のepg情報を取得するスクリプトを書いています。

transport stream idはPID=0x00のPATから取得出来ます。
PATからPMTのPIDが取れるので、PMTからService idが取得出来ます。
そこまではよいのですが、original network idはどこから取得すればよいのでしょうか?

今のところ、PID=0x11のSDTから放送局の一覧を取得して、既に取得済みのtransport stream idとService idに一致する局の情報からoriginal network idを取得しているのですが
tsidとsidが同じでonidだけ異なる局の場合に区別出来なくなってしまう気がします。

また、放送中の番組のserviceIDはどこのパケットに入っていますでしょうか?
現状は、まずTOTを取得します。これでonid tsid sidと放送時刻が確定出来るから、PID=0x12のEITの中から順番に検索しようかと思っていますが
直接、「今放送中の番組のeventID」を取得するにはどうしたらよいでしょうか。