All pastes #120993 Raw Edit

Mine

public text v1 · immutable
·published 2006-08-07 18:15 UTC
rendered paste body
Index: mythtv-trunk/libs/libmythtv/eithelper.cpp
===================================================================
--- mythtv-trunk.orig/libs/libmythtv/eithelper.cpp
+++ mythtv-trunk/libs/libmythtv/eithelper.cpp
@@ -210,6 +210,8 @@ void EITHelper::AddETT(uint atsc_major, 
 
 void EITHelper::AddEIT(const DVBEventInformationTable *eit)
 {
+    QDateTime invalid = QDateTime::currentDateTime().addDays(30);
+
     uint descCompression = (eit->TableID() > 0x80) ? 2 : 1;
     uint fix = fixup[eit->OriginalNetworkID() << 16];
     fix |= fixup[(((uint64_t)eit->TSID()) << 32) |
@@ -224,6 +226,12 @@ void EITHelper::AddEIT(const DVBEventInf
     uint version   = eit->Version();
     for (uint i = 0; i < eit->EventCount(); i++)
     {
+        if (eit->StartTimeUTC(i) > invalid)
+        {
+            VERBOSE(VB_IMPORTANT, LOC + QString("\nFound invalid event\n\n") + eit->toString());
+            continue;
+        }
+
         // Skip event if we have already processed it before...
         if (!eitcache->IsNewEIT(networkid, tsid, serviceid, tableid, version,
                                 eit->EventID(i), eit->EndTimeUnixUTC(i)))
Index: mythtv-trunk/libs/libmythtv/mpeg/dvbtables.cpp
===================================================================
--- mythtv-trunk.orig/libs/libmythtv/mpeg/dvbtables.cpp
+++ mythtv-trunk/libs/libmythtv/mpeg/dvbtables.cpp
@@ -186,6 +186,32 @@ uint DVBEventInformationTable::StartTime
     return secsSince1970;
 }
 
+QString DVBEventInformationTable::toString(void) const
+{
+    QString str =
+        QString("EIT: TSID(0x%1) original_network_id(0x%2) service_id(%3), "
+                "No. of events: %4\n")
+        .arg(OriginalNetworkID())
+        .arg(TSID())
+        .arg(ServiceID())
+        .arg(EventCount());
+
+    for (uint i = 0; i < EventCount(); i++)
+    {
+        str.append(QString(" event #%1 EID(0x%2)\n")
+                   .arg(i, 2, 10)
+                   .arg(EventID(i), 0, 16));
+        str.append("   starts " + StartTimeUTC(i).toString(Qt::ISODate) +
+                   QString(" (%2, %3), length %4\n")
+                   .arg(StartTimeKey(i))
+                   .arg(StartTimeUnixUTC(i))
+                   .arg(DurationInSeconds(i)));
+        str.append(QString("  event descriptors length: %1\n")
+                   .arg(DescriptorsLength(i)));
+    }
+    return str;
+}
+
 /** \fn dvbdate2qt(const unsigned char*)
  *  \return UTC time
  */
Index: mythtv-trunk/libs/libmythtv/mpeg/dvbtables.h
===================================================================
--- mythtv-trunk.orig/libs/libmythtv/mpeg/dvbtables.h
+++ mythtv-trunk/libs/libmythtv/mpeg/dvbtables.h
@@ -282,6 +282,8 @@ class DVBEventInformationTable : public 
 
     static bool IsEIT(uint table_id);
 
+    QString toString(void) const;
+
   private:
     mutable vector<const unsigned char*> _ptrs; // used to parse
 };
Index: mythtv-trunk/libs/libmythtv/mpeg/pespacket.cpp
===================================================================
--- mythtv-trunk.orig/libs/libmythtv/mpeg/pespacket.cpp
+++ mythtv-trunk/libs/libmythtv/mpeg/pespacket.cpp
@@ -21,6 +21,11 @@ using namespace std;
 bool PESPacket::AddTSPacket(const TSPacket* packet)
 {
     uint tlen = Length() + ((_pesdata-1) - _fullbuffer) + 4 /* CRC bytes */;
+    
+//     cerr << tlen << " = ";
+//     cerr << Length() << " + (( ";
+//     cerr << (uint64_t)_pesdata << "-1) - ";
+//     cerr << (uint64_t)_fullbuffer << " ) + 4" << endl;
 
     if (!tsheader()->PayloadStart())
     {
@@ -78,6 +83,8 @@ bool PESPacket::AddTSPacket(const TSPack
         return true;
     }
 
+//     cerr << _pesdataSize << ":";
+//     cerr << tlen << endl;
     if (_pesdataSize >= tlen)
     {
         _badPacket = !VerifyCRC();
@@ -153,7 +160,8 @@ uint PESPacket::CalcCRC(void) const
 
 bool PESPacket::VerifyCRC(void) const
 {
-    bool ret = !HasCRC() || (CalcCRC() == CRC());
+    bool ret = !HasCRC()
+        || (CalcCRC() == CRC());
     if (!ret)
     {
         VERBOSE(VB_SIPARSER,
@@ -324,20 +332,20 @@ static QMutex pes_alloc_mutex;
 unsigned char *pes_alloc(uint size)
 {
     QMutexLocker locker(&pes_alloc_mutex);
-    if (size <= 188)
+/*    if (size <= 188)
         return get_188_block();
     else if (size <= 4096)
-        return get_4096_block();
+    return get_4096_block();*/
     return (unsigned char*) malloc(size);
 }
 
 void pes_free(unsigned char *ptr)
 {
     QMutexLocker locker(&pes_alloc_mutex);
-    if (is_188_block(ptr))
+    /*if (is_188_block(ptr))
         return_188_block(ptr);
     else if (is_4096_block(ptr))
         return_4096_block(ptr);
-    else
+        else*/
         free(ptr);
 }