Ticket #1056: dishnet_eit_8612.patch
File dishnet_eit_8612.patch, 4.1 KB (added by , 20 years ago) |
---|
-
libs/libmythtv/mpeg/mpegdescriptors.h
115 115 audio_stream = 0x81, 116 116 caption_service = 0x86, 117 117 content_advisory = 0x87, 118 119 // Dish Network 120 dish_ename = 0x91, 121 dish_edescription = 0x92, 122 118 123 extended_channel_name = 0xA0, 119 124 service_location = 0xA1, 120 125 atsc_time_shifted_service = 0xA2, -
libs/libmythtv/siparser.cpp
570 570 break; 571 571 case 0x42: /* Service Table(s) */ 572 572 case 0x46: 573 VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseSDT (%1 / %2)") 574 .arg(head.table_id, 0, 16).arg(pid, 0, 16)); 575 573 576 ParseSDT(pid, &head, &buffer[8], size-8); 574 577 break; 575 578 #ifdef USING_DVB_EIT … … 577 580 /* Standard Now/Next Event Information Table(s) */ 578 581 case 0x50 ... 0x6F: 579 582 /* Standard Future Event Information Table(s) */ 583 VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseDVBEIT (%1/%2)") 584 .arg(head.table_id, 0, 16).arg(pid, 0, 16)); 580 585 ParseDVBEIT(pid, &head, &buffer[8], size-8); 581 586 break; 587 case 0x80 ... 0xFE: 588 /* Dishnet uses this range for longterm(7-9days) EIT */ 589 VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseDVBEIT DN(%1/%2)") 590 .arg(head.table_id, 0, 16).arg(pid, 0, 16)); 591 ParseDVBEIT(pid, &head, &buffer[8], size-8); 592 break; 582 593 #endif 583 594 } 584 595 } … … 1180 1191 uint16_t network_id = buffer[0] << 8 | buffer[1]; 1181 1192 // TODO: Handle Network Specifics here if they aren't set 1182 1193 1194 //TODO : Make this configurable. 1195 PrivateTypes.ForceGuidePresent = true; 1196 1183 1197 if (PrivateTypesLoaded == false) 1184 1198 LoadPrivateTypes(network_id); 1185 1199 … … 1266 1280 Table[EVENTS]->RequestEmit(s.ServiceID); 1267 1281 eit_requested = true; 1268 1282 } 1283 1284 //TODO: This should be tied into the above ? 1285 if ((PrivateTypes.ForceGuidePresent) && (!eit_requested)) 1286 { 1287 Table[EVENTS]->RequestEmit(s.ServiceID); 1288 eit_requested = true; 1289 } 1269 1290 #endif 1270 1291 1271 1292 VERBOSE(VB_SIPARSER, LOC + … … 1292 1313 Table[EVENTS]->DependencyMet(SERVICES); 1293 1314 //Table[EVENTS]->AddPid(0x12,0x00,0x00,true); // see ticket #755 1294 1315 Table[EVENTS]->AddPid(0x12,0x7F,0x80,0x12); // see ticket #755 1316 1317 // This should only be added based on the user enabling 7-9day dishnet 1318 // EIT events 1319 Table[EVENTS]->AddPid(0x300,0x00,0x00,true); 1295 1320 } 1296 1321 1297 1322 /** \fn GetLanguagePriority(const QString&) … … 1967 1992 { 1968 1993 uint descriptorTag = data[0]; 1969 1994 uint descriptorLength = data[1]; 1995 int tnum; 1970 1996 1971 1997 switch (descriptorTag) 1972 1998 { … … 2022 2048 ProcessContentDescriptor(data, descriptorLength + 2, event); 2023 2049 break; 2024 2050 2051 case DescriptorID::dish_ename: 2052 if (event.TableID > 0x80) 2053 tnum = 2; 2054 else 2055 tnum = 1; 2056 2057 Huffman2ToQString((uint8_t *)data+3, data[1]-1, tnum, event.Event_Name); 2058 break; 2059 2060 case DescriptorID::dish_edescription: 2061 if (event.TableID > 0x80) 2062 tnum = 2; 2063 else 2064 tnum = 1; 2065 2066 if ((data[3]&0xf8) == 0x80) 2067 Huffman2ToQString((uint8_t *)data+4, data[1]-2, tnum, event.Description); 2068 else 2069 Huffman2ToQString((uint8_t *)data+3, data[1]-1, tnum, event.Description); 2070 //VERBOSE(VB_EIT, LOC + QString("Descr : %1").arg(event.Description)); 2071 break; 2072 2025 2073 default: 2026 2074 ProcessUnusedDescriptor(pid, data, descriptorLength + 2); 2027 2075 break;