Ticket #579: patch_siparser.txt

File patch_siparser.txt, 3.0 KB (added by mikko.suonio@…, 18 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