:TID 0x50を持つ
表は次3+ 0x51というように、最初の3-4日間があります。理論的には0x5fまで上がることができます。利用可能なすべての将来のイベントを取得するには、TID 0x50 + [0x00 ... 0x0f]を使用してプロセスを繰り返すループを繰り返す必要があります。
しかしlibdvbv5ではこれを行うことはできません。descriptors.cにはさまざまなタイプのテーブルのdvb_table_initializers [256]のテーブルがありますが、DVB_TABLE_EIT_SCHEDULE(0x50)のベースのみを初期化します。他のすべてではありません。したがって、他のテーブルは解析されません。私も、私が想定しDVB_TABLE_EIT_SCHEDULE_OTHER、のためにそれをやった
const dvb_table_init_func dvb_table_initializers[256] = {
[0 ... 255] = NULL,
[DVB_TABLE_PAT] = TABLE_INIT(dvb_table_pat),
[DVB_TABLE_CAT] = TABLE_INIT(dvb_table_cat),
[DVB_TABLE_PMT] = TABLE_INIT(dvb_table_pmt),
[DVB_TABLE_NIT] = TABLE_INIT(dvb_table_nit),
[DVB_TABLE_SDT] = TABLE_INIT(dvb_table_sdt),
[DVB_TABLE_EIT] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x01] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x02] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x03] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x04] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x05] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x06] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x07] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x08] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x09] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0a] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0b] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0c] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0d] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0e] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE + 0x0f] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x01] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x02] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x03] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x04] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x05] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x06] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x07] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x08] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x09] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0a] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0b] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0c] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0d] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0e] = TABLE_INIT(dvb_table_eit),
[DVB_TABLE_EIT_SCHEDULE_OTHER + 0x0f] = TABLE_INIT(dvb_table_eit),
[ATSC_TABLE_MGT] = TABLE_INIT(atsc_table_mgt),
[ATSC_TABLE_EIT] = TABLE_INIT(atsc_table_eit),
[ATSC_TABLE_TVCT] = TABLE_INIT(atsc_table_vct),
[ATSC_TABLE_CVCT] = TABLE_INIT(atsc_table_vct),
};
それを試していないが、正しいです:したがって1は、関連するすべてのTIDを初期化するために、以下に示すようdescriptors.cに変更してlibdvbv5を再構築する必要があります。 DVB_TABLE_EIT_SCHEDULEでも動作するようです。