]>
Commit | Line | Data |
---|---|---|
b91fb912 | 1 | Index: libs/libmythtv/mpeg/mpegdescriptors.cpp |
2 | =================================================================== | |
3 | --- libs/libmythtv/mpeg/mpegdescriptors.cpp.orig 2006-06-20 17:31:10.000000000 -0400 | |
4 | +++ libs/libmythtv/mpeg/mpegdescriptors.cpp 2006-06-20 17:36:06.000000000 -0400 | |
5 | @@ -223,8 +223,12 @@ | |
6 | return QString("Audio"); | |
7 | case DescriptorID::caption_service: | |
8 | return QString("Caption Service"); | |
9 | - case DescriptorID:: content_advisory: | |
10 | + case DescriptorID::content_advisory: | |
11 | return QString("Content Advisory"); | |
12 | + case DescriptorID::dish_ename: | |
13 | + return QString("Dishnet EIT Name"); | |
14 | + case DescriptorID::dish_edescription: | |
15 | + return QString("Dishnet EIT Description"); | |
16 | case DescriptorID::extended_channel_name: | |
17 | return QString("Extended Channel Name"); | |
18 | case DescriptorID::service_location: | |
19 | Index: libs/libmythtv/mpeg/mpegdescriptors.h | |
20 | =================================================================== | |
21 | --- libs/libmythtv/mpeg/mpegdescriptors.h.orig 2006-06-20 17:31:10.000000000 -0400 | |
22 | +++ libs/libmythtv/mpeg/mpegdescriptors.h 2006-06-20 17:36:06.000000000 -0400 | |
23 | @@ -115,6 +115,11 @@ | |
24 | audio_stream = 0x81, | |
25 | caption_service = 0x86, | |
26 | content_advisory = 0x87, | |
27 | + | |
28 | + // Dish Network | |
29 | + dish_ename = 0x91, | |
30 | + dish_edescription = 0x92, | |
31 | + | |
32 | extended_channel_name = 0xA0, | |
33 | service_location = 0xA1, | |
34 | atsc_time_shifted_service = 0xA2, | |
35 | Index: libs/libmythtv/siparser.cpp | |
36 | =================================================================== | |
37 | --- libs/libmythtv/siparser.cpp.orig 2006-06-20 17:31:10.000000000 -0400 | |
38 | +++ libs/libmythtv/siparser.cpp 2006-06-20 17:37:24.000000000 -0400 | |
39 | @@ -570,6 +570,9 @@ | |
40 | break; | |
41 | case 0x42: /* Service Table(s) */ | |
42 | case 0x46: | |
43 | + VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseSDT (%1 / %2)") | |
44 | + .arg(head.table_id, 0, 16).arg(pid, 0, 16)); | |
45 | + | |
46 | ParseSDT(pid, &head, &buffer[8], size-8); | |
47 | break; | |
48 | #ifdef USING_DVB_EIT | |
49 | @@ -577,6 +580,14 @@ | |
50 | /* Standard Now/Next Event Information Table(s) */ | |
51 | case 0x50 ... 0x6F: | |
52 | /* Standard Future Event Information Table(s) */ | |
53 | + VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseDVBEIT (%1/%2)") | |
54 | + .arg(head.table_id, 0, 16).arg(pid, 0, 16)); | |
55 | + ParseDVBEIT(pid, &head, &buffer[8], size-8); | |
56 | + break; | |
57 | + case 0x80 ... 0xFE: | |
58 | + /* Dishnet uses this range for longterm(7-9days) EIT */ | |
59 | + VERBOSE(VB_SIPARSER, LOC + QString("Calling ParseDVBEIT DN(%1/%2)") | |
60 | + .arg(head.table_id, 0, 16).arg(pid, 0, 16)); | |
61 | ParseDVBEIT(pid, &head, &buffer[8], size-8); | |
62 | break; | |
63 | #endif | |
64 | @@ -1180,6 +1191,9 @@ | |
65 | uint16_t network_id = buffer[0] << 8 | buffer[1]; | |
66 | // TODO: Handle Network Specifics here if they aren't set | |
67 | ||
68 | + //TODO : Make this configurable. | |
69 | + PrivateTypes.ForceGuidePresent = true; | |
70 | + | |
71 | if (PrivateTypesLoaded == false) | |
72 | LoadPrivateTypes(network_id); | |
73 | ||
74 | @@ -1266,6 +1280,13 @@ | |
75 | Table[EVENTS]->RequestEmit(s.ServiceID); | |
76 | eit_requested = true; | |
77 | } | |
78 | + | |
79 | + //TODO: This should be tied into the above ? | |
80 | + if ((PrivateTypes.ForceGuidePresent) && (!eit_requested)) | |
81 | + { | |
82 | + Table[EVENTS]->RequestEmit(s.ServiceID); | |
83 | + eit_requested = true; | |
84 | + } | |
85 | #endif | |
86 | ||
87 | VERBOSE(VB_SIPARSER, LOC + | |
88 | @@ -1292,6 +1313,10 @@ | |
89 | Table[EVENTS]->DependencyMet(SERVICES); | |
90 | //Table[EVENTS]->AddPid(0x12,0x00,0x00,true); // see ticket #755 | |
91 | Table[EVENTS]->AddPid(0x12,0x7F,0x80,0x12); // see ticket #755 | |
92 | + | |
93 | + // This should only be added based on the user enabling 7-9day dishnet | |
94 | + // EIT events | |
95 | + Table[EVENTS]->AddPid(0x300,0x00,0x00,true); | |
96 | } | |
97 | ||
98 | /** \fn SIParser::GetLanguagePriority(const QString&) | |
99 | @@ -1967,6 +1992,7 @@ | |
100 | { | |
101 | uint descriptorTag = data[0]; | |
102 | uint descriptorLength = data[1]; | |
103 | + int tnum; | |
104 | ||
105 | switch (descriptorTag) | |
106 | { | |
107 | @@ -2022,6 +2048,28 @@ | |
108 | ProcessContentDescriptor(data, descriptorLength + 2, event); | |
109 | break; | |
110 | ||
111 | + case DescriptorID::dish_ename: | |
112 | + if (event.TableID > 0x80) | |
113 | + tnum = 2; | |
114 | + else | |
115 | + tnum = 1; | |
116 | + | |
117 | + Huffman2ToQString((uint8_t *)data+3, data[1]-1, tnum, event.Event_Name); | |
118 | + break; | |
119 | + | |
120 | + case DescriptorID::dish_edescription: | |
121 | + if (event.TableID > 0x80) | |
122 | + tnum = 2; | |
123 | + else | |
124 | + tnum = 1; | |
125 | + | |
126 | + if ((data[3]&0xf8) == 0x80) | |
127 | + Huffman2ToQString((uint8_t *)data+4, data[1]-2, tnum, event.Description); | |
128 | + else | |
129 | + Huffman2ToQString((uint8_t *)data+3, data[1]-1, tnum, event.Description); | |
130 | + //VERBOSE(VB_EIT, LOC + QString("Descr : %1").arg(event.Description)); | |
131 | + break; | |
132 | + | |
133 | default: | |
134 | ProcessUnusedDescriptor(pid, data, descriptorLength + 2); | |
135 | break; |