Ticket #1056: 1056.patch

File 1056.patch, 2.9 KB (added by danielk, 14 years ago)

mostly updated patch

  • libs/libmythtv/siparser.cpp

     
    583583            /* Standard Future Event Information Table(s) */
    584584            ParseDVBEIT(pid, &head, &buffer[8], size-8);
    585585            break;
     586        case 0x80 ... 0xFE:
     587            /* Dishnet uses this range for longterm(7-9days) EIT */
     588            ParseDVBEIT(pid, &head, &buffer[8], size-8);
     589            break;
    586590#endif
    587591        }
    588592    }
     
    11981202    uint16_t network_id = buffer[0] << 8 | buffer[1];
    11991203    // TODO: Handle Network Specifics here if they aren't set
    12001204
     1205    // TODO : Make this configurable.
     1206    //PrivateTypes.ForceGuidePresent = true;
     1207
    12011208    if (PrivateTypesLoaded == false)
    12021209        LoadPrivateTypes(network_id);
    12031210
     
    12741281        bool eit_requested = false;
    12751282
    12761283#ifdef USING_DVB_EIT
    1277         if ((s.EITPresent) &&
    1278             (s.ServiceType == SDTObject::TV ||
    1279              s.ServiceType == SDTObject::RADIO) &&
    1280             ((!PrivateTypes.GuideOnSingleTransport) ||
    1281             ((PrivateTypes.GuideOnSingleTransport) &&
    1282             (PrivateTypes.GuideTransportID ==
    1283              PrivateTypes.CurrentTransportID))))
     1284        bool valid_service = s.ServiceType == SDTObject::TV ||
     1285            s.ServiceType == SDTObject::RADIO;
     1286        bool valid_transport = !PrivateTypes.GuideOnSingleTransport ||
     1287            (PrivateTypes.GuideTransportID == PrivateTypes.CurrentTransportID);
     1288
     1289        if (PrivateTypes.ForceGuidePresent ||
     1290            (s.EITPresent && valid_service && valid_transport))
    12841291        {
    12851292            Table[EVENTS]->RequestEmit(s.ServiceID);
    12861293            eit_requested = true;
     
    13111318    Table[EVENTS]->DependencyMet(SERVICES);
    13121319    //Table[EVENTS]->AddPid(0x12,0x00,0x00,true); // see ticket #755
    13131320    Table[EVENTS]->AddPid(0x12,0x7F,0x80,0x12); // see ticket #755
     1321
     1322    // This should only be added based on the user enabling 7-9day dishnet
     1323    // EIT events
     1324    //Table[EVENTS]->AddPid(0x300,0x00,0x00,true);
    13141325}
    13151326
    13161327/** \fn SIParser::GetLanguagePriority(const QString&)
     
    20412052            ProcessContentDescriptor(data, descriptorLength + 2, event);
    20422053            break;
    20432054
     2055        case DescriptorID::dish_ename:
     2056        {
     2057            int ht = (event.TableID > 0x80) ? 2 : 1;
     2058            huffman2_to_string(data+3, data[1]-1, ht, event.Event_Name);
     2059        }
     2060        break;
     2061
     2062        case DescriptorID::dish_edescription:
     2063        {
     2064            int ht = (event.TableID > 0x80) ? 2 : 1;
     2065            if ((data[3] & 0xf8) == 0x80)
     2066                huffman2_to_string(data+4, data[1]-2, ht, event.Description);
     2067            else
     2068                huffman2_to_string(data+3, data[1]-1, ht, event.Description);
     2069        }
     2070        break;
     2071
    20442072        default:
    20452073            ProcessUnusedDescriptor(pid, data, descriptorLength + 2);
    20462074            break;