GNOME Bugzilla – Bug 730435
mpegts: add support for ATSC tables MGT / ETT / EIT / STT
Last modified: 2014-05-29 08:45:07 UTC
ATSC has the Master Guide Table that contains an association of PIDs to EITs abd also ETTs (extended text table) tables, the ETTs contains internationalized descriptions of the content in the virtual channels or for events. The table id for ETT should be 0xCC and for EIT (in ATSC) should be 0xCB, the MGT has the table id 0xC7 and is on pid 0x1FFB. The proposed solution adds: 1) Add MGT/ETT parsing to mpegts 2) Add identification of EIT and ETT tables so they are properly identified by mpegts lib and used in tsbase (tsparse/tsdemux) element 3) Add dumping of ETT table to ts-parse example
Created attachment 276842 [details] [review] mpegts: add atsc MGT section parsing Add a parsing function for MGT and also detect the EIT tables for ATSC, the EIT pids are reported inside the MGT and we are still only relying only on the table id for detecting it. In the future we would want to also check the pid and compare with whatever the MGT previously reported to confirm that it is indeed the EIT.
Created attachment 276843 [details] [review] tsbase: parse the mgt and add listed EIT/ETT pids to the known psi This will make tsbase also parse the EITs and ETTs from ATSC streams that have their pids reported on the MGT and post to the bus
Created attachment 276844 [details] [review] mpegts: atsc: add ETT structures and parsing ETT (extended text table) contains ATSC text information with descriptions of virtual channels and events. The text can be internationalized and also compressed.
Created attachment 276845 [details] [review] examples: mpegts: add function to dump ETT tables
Created attachment 276846 [details] [review] mpegts: atsc: add encoding conversion for UTF-16 ETT strings
Created attachment 277072 [details] [review] mpegts: atsc: add STT table parsing Also adding STT (system time table)
Could you add ts-parser support for MGT ? Also it looks as though you're leaking all the returned parsed sections/tables
Review of attachment 276842 [details] [review]: ::: gst-libs/gst/mpegts/gstmpegtssection.c @@ +1055,3 @@ + case GST_MTS_TABLE_ID_ATSC_EVENT_INFORMATION: + /* FIXME check pids reported on the MGT to confirm expectations */ + return GST_MPEGTS_SECTION_EIT; ATSC has a different formatting for EIT than the way it's implement in DVB, you can't re-use that one. And it made me realize that EIT is a DVB-specific table (and not a generic H.222.0 one ...)
Created attachment 277412 [details] [review] mpegts: add atsc MGT section parsing Add a parsing function for MGT and also detect the EIT tables for ATSC, the EIT pids are reported inside the MGT and we are still only relying only on the table id for detecting it. In the future we would want to also check the pid and compare with whatever the MGT previously reported to confirm that it is indeed the EIT.
Created attachment 277413 [details] [review] tsbase: parse the mgt and add listed EIT/ETT pids to the known psi This will make tsbase also parse the EITs and ETTs from ATSC streams that have their pids reported on the MGT and post to the bus
Created attachment 277414 [details] [review] mpegts: atsc: add ETT structures and parsing ETT (extended text table) contains ATSC text information with descriptions of virtual channels and events. The text can be internationalized and also compressed.
Created attachment 277415 [details] [review] examples: mpegts: add function to dump ETT tables
Created attachment 277416 [details] [review] mpegts: atsc: add encoding conversion for UTF-16 ETT strings
Created attachment 277417 [details] [review] mpegts: atsc: add STT table parsing Adds the system time table structure and functions for convenient parsing of it and for getting the UTC datetime that it represents. Also adds its information dumping to the ts-parser example
Created attachment 277418 [details] [review] tests: mpegts: add test for STT parsing Specially for the time to UTC datetime conversion Example taken from the A65 spec
Created attachment 277419 [details] [review] mpegts: atsc: add atsc's EIT table parsing ATSC has its own version of the EIT table (DVB also has one). This patch adds parsing for the ATSC EIT table and also fixed the section identification to mark it as the ATSC one. The implementation aws refactored to reuse some common internal structures from ETT. Also adds its dumping function to ts-parser example
Created attachment 277420 [details] [review] mpegts: atsc: add missing field to ETT table Set the subtable_extension as ett_table_id_extension for ETT tables as it is used by it
New versions with requested fixes.
Not sure why ... but git bz apply is failing for me with those patches.
My bad, just realized I needed to apply the patches from #730642 first
yay, commited \o/