]> git.pld-linux.org Git - packages/mythtv.git/blame - myth_dn-eit_r10247.diff
- 0.20.2
[packages/mythtv.git] / myth_dn-eit_r10247.diff
CommitLineData
b91fb912 1Index: 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:
19Index: 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,
35Index: 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;
This page took 0.044167 seconds and 4 git commands to generate.