Ticket #579: patch_siparser.txt

File patch_siparser.txt, 3.0 KB (added by mikko.suonio@…, 20 years ago)

A small fix to siparser

Line 
1Index: siparser.cpp
2===================================================================
3--- siparser.cpp (revision 7770)
4+++ siparser.cpp (working copy)
5@@ -1435,7 +1435,11 @@
6 #endif
7
8 // Hold short & extended event information from descriptors.
9+ QString bestLanguageSE = "";
10+ uint bestPrioritySE = UINT_MAX;
11 const unsigned char *bestDescriptorSE = NULL;
12+ QString bestLanguageEE = "";
13+ uint bestPriorityEE = UINT_MAX;
14 vector<const unsigned char*> bestDescriptorsEE;
15
16 // Parse descriptors
17@@ -1446,8 +1450,9 @@
18 // Pick out EIT descriptors for later parsing, and parse others.
19 while ((des_pos < (pos + descriptors_length)) && (des_pos <= size))
20 {
21- des_pos += ProcessDVBEventDescriptors(
22- &buffer[des_pos], bestDescriptorSE, bestDescriptorsEE, event);
23+ des_pos += ProcessDVBEventDescriptors(&buffer[des_pos],
24+ bestLanguageSE, bestPrioritySE, bestDescriptorSE,
25+ bestLanguageEE, bestPriorityEE, bestDescriptorsEE, event);
26 }
27
28 // Parse extended event descriptions for the most preferred language
29@@ -1944,7 +1949,7 @@
30 return retval;
31 }
32
33-/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,const unsigned char*,QString&, vector<const unsigned char*>&,Event&)
34+/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,uint,const unsigned char*,QString&,uint,vector<const unsigned char*>&,Event&)
35 * \brief Processes non-language dependent DVB Event descriptors, and caches
36 * language dependent DVB Event descriptors for the most preferred
37 * language.
38@@ -1952,16 +1957,14 @@
39 */
40 uint SIParser::ProcessDVBEventDescriptors(
41 const unsigned char *data,
42+ QString &bestLanguageSE,
43+ uint &bestPrioritySE,
44 const unsigned char* &bestDescriptorSE,
45+ QString &bestLanguageEE,
46+ uint &bestPriorityEE,
47 vector<const unsigned char*> &bestDescriptorsEE,
48 Event &event)
49 {
50- QString bestLanguageSE = "";
51- uint bestPrioritySE = UINT_MAX;
52-
53- QString bestLanguageEE = "";
54- uint bestPriorityEE = UINT_MAX;
55-
56 uint descriptorTag = data[0];
57 uint descriptorLength = data[1];
58
59Index: siparser.h
60===================================================================
61--- siparser.h (revision 7770)
62+++ siparser.h (working copy)
63@@ -174,7 +174,11 @@
64 // DVB EIT Table Descriptor processors
65 uint ProcessDVBEventDescriptors(
66 const unsigned char *data,
67+ QString &bestLanguageSE,
68+ uint &bestPrioritySE,
69 const unsigned char* &bestDescriptorSE,
70+ QString &bestLanguageEE,
71+ uint &bestPriorityEE,
72 vector<const unsigned char*> &bestDescriptorsEE,
73 Event &event);
74