src/tables/tot.c: Simplify dvbpsi_ValidTOTSection()
[email protected] (Jean-Paul Saman)
| Newsgroups | gmane.comp.video.videolan.libdvbpsi.devel |
|---|---|
| Message-ID | <[email protected]> |
libdvbpsi | branch: master | Jean-Paul Saman <[email protected]> | Wed Jun 27 14:20:33 2012 +0200| [f2b2ab34043fd2a20b7b9754a1c116f071729d85] | committer: Jean-Paul Saman src/tables/tot.c: Simplify dvbpsi_ValidTOTSection() The function reimplemented the CRC check function which is available in src/psi.c > http://git.videolan.org/gitweb.cgi/libdvbpsi.git/?a=commit;h=f2b2ab34043fd2a20b7b9754a1c116f071729d85 --- src/tables/tot.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/tables/tot.c b/src/tables/tot.c index ccdf96f..4eead37 100644 --- a/src/tables/tot.c +++ b/src/tables/tot.c @@ -310,10 +310,11 @@ void dvbpsi_GatherTOTSections(dvbpsi_t* p_dvbpsi, assert(p_dvbpsi); assert(p_dvbpsi->p_private); - const uint8_t i_table_id = ((p_section->i_table_id == 0x70 || - p_section->i_table_id == 0x73)) ? + const uint8_t i_table_id = ((p_section->i_table_id == 0x70 || /* TDT */ + p_section->i_table_id == 0x73)) ? /* TOT */ p_section->i_table_id : 0x70; + /* FIXME: setting b_syntax_indicator is a workaround here */ p_section->b_syntax_indicator = true; if (!dvbpsi_CheckPSISection(p_dvbpsi, p_section, i_table_id, "TDT/TOT decoder")) { @@ -412,22 +413,11 @@ static bool dvbpsi_ValidTOTSection(dvbpsi_t *p_dvbpsi, dvbpsi_psi_section_t* p_s return true; } - /* Check the CRC_32 if it's a TOT */ - uint32_t i_crc = 0xffffffff; - uint8_t* p_byte = p_section->p_data; - - while (p_byte < p_section->p_payload_end) - { - i_crc = (i_crc << 8) ^ dvbpsi_crc32_table[(i_crc >> 24) ^ (*p_byte)]; - p_byte++; - } - - if (i_crc == 0) - return true; - else + if (p_section->b_syntax_indicator && + !dvbpsi_ValidPSISection(p_section)) { dvbpsi_error(p_dvbpsi, "TDT/TOT decoder", - "Bad CRC_32 (0x%08x) !!!", i_crc); + "Bad CRC_32!!!"); return false; } _______________________________________________ libdvbpsi-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libdvbpsi-devel