Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -rua src.orig/EpgDataLoader.cpp src/EpgDataLoader.cpp
- --- src.orig/EpgDataLoader.cpp 2021-08-11 08:59:52.000000000 +0900
- +++ src/EpgDataLoader.cpp 2021-09-01 20:42:08.850224800 +0900
- @@ -102,7 +102,21 @@
- Size = std::min(RemainSize, BUFFER_SIZE);
- if (!::ReadFile(hFile, pBuffer, Size, &Read, nullptr))
- break;
- - BYTE *p = pBuffer, *pEnd = pBuffer + Read / 188 * 188;
- + BYTE* p = pBuffer, * pEnd = pBuffer + Read / 188 * 188;
- + // 先にTOTを1つ見つけて送出してやる
- + while (p < pEnd) {
- + const WORD PID = ((WORD)(p[1] & 0x1F) << 8) | (WORD)p[2];
- + if (PID == 0x0014) {
- + Packet.SetData(p, 188);
- + if (Packet.ParsePacket() == LibISDB::TSPacket::ParseResult::OK) {
- + LibISDB::SingleDataStream<LibISDB::TSPacket> Stream(&Packet);
- + m_EPGDatabaseFilter.ReceiveData(&Stream);
- + }
- + break;
- + }
- + p += 188;
- + }
- + p = pBuffer, pEnd = pBuffer + Read / 188 * 188;
- while (p < pEnd) {
- const WORD PID = ((WORD)(p[1] & 0x1F) << 8) | (WORD)p[2];
- // H-EIT / TOT / M-EIT / L-EIT
- diff -rua src.orig/LibISDB/LibISDB/Filters/EPGDatabaseFilter.cpp src/LibISDB/LibISDB/Filters/EPGDatabaseFilter.cpp
- --- src.orig/LibISDB/LibISDB/Filters/EPGDatabaseFilter.cpp 2021-08-11 08:57:04.000000000 +0900
- +++ src/LibISDB/LibISDB/Filters/EPGDatabaseFilter.cpp 2021-09-01 19:54:28.436255800 +0900
- @@ -37,6 +37,7 @@
- EPGDatabaseFilter::EPGDatabaseFilter()
- : m_pEPGDatabase(nullptr)
- + , m_fTOTReady(false)
- {
- Reset();
- }
- @@ -59,6 +60,7 @@
- if (m_pEPGDatabase != nullptr)
- m_pEPGDatabase->ResetTOTTime();
- + m_fTOTReady = false;
- }
- @@ -110,9 +112,10 @@
- if (pEITTable != nullptr) {
- m_ResetTable = false;
- - m_pEPGDatabase->UpdateSection(pEITScheduleTable, pEITTable);
- + if (m_fTOTReady)
- + m_pEPGDatabase->UpdateSection(pEITScheduleTable, pEITTable);
- - if (m_ResetTable) {
- + if (m_ResetTable || !m_fTOTReady) {
- const uint16_t NetworkID = pEITTable->GetOriginalNetworkID();
- const uint16_t TransportStreamID = pEITTable->GetTransportStreamID();
- const uint16_t ServiceID = pEITTable->GetServiceID();
- @@ -138,6 +141,7 @@
- if (pTOTTable != nullptr)
- m_pEPGDatabase->UpdateTOT(pTOTTable);
- + m_fTOTReady = true;
- }
- }
- diff -rua src.orig/LibISDB/LibISDB/Filters/EPGDatabaseFilter.hpp src/LibISDB/LibISDB/Filters/EPGDatabaseFilter.hpp
- --- src.orig/LibISDB/LibISDB/Filters/EPGDatabaseFilter.hpp 2021-08-11 08:57:04.000000000 +0900
- +++ src/LibISDB/LibISDB/Filters/EPGDatabaseFilter.hpp 2021-09-01 18:08:42.572708900 +0900
- @@ -63,6 +63,7 @@
- PIDMapManager m_PIDMapManager;
- EPGDatabase *m_pEPGDatabase;
- bool m_ResetTable;
- + bool m_fTOTReady;
- private:
- // EPGDatabase::EventListener
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement