Index: siparser.cpp =================================================================== --- siparser.cpp (revision 7770) +++ siparser.cpp (working copy) @@ -1435,7 +1435,11 @@ #endif // Hold short & extended event information from descriptors. + QString bestLanguageSE = ""; + uint bestPrioritySE = UINT_MAX; const unsigned char *bestDescriptorSE = NULL; + QString bestLanguageEE = ""; + uint bestPriorityEE = UINT_MAX; vector bestDescriptorsEE; // Parse descriptors @@ -1446,8 +1450,9 @@ // Pick out EIT descriptors for later parsing, and parse others. while ((des_pos < (pos + descriptors_length)) && (des_pos <= size)) { - des_pos += ProcessDVBEventDescriptors( - &buffer[des_pos], bestDescriptorSE, bestDescriptorsEE, event); + des_pos += ProcessDVBEventDescriptors(&buffer[des_pos], + bestLanguageSE, bestPrioritySE, bestDescriptorSE, + bestLanguageEE, bestPriorityEE, bestDescriptorsEE, event); } // Parse extended event descriptions for the most preferred language @@ -1944,7 +1949,7 @@ return retval; } -/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,const unsigned char*,QString&, vector&,Event&) +/** \fn ProcessDVBEventDescriptors(const unsigned char*,QString&,uint,const unsigned char*,QString&,uint,vector&,Event&) * \brief Processes non-language dependent DVB Event descriptors, and caches * language dependent DVB Event descriptors for the most preferred * language. @@ -1952,16 +1957,14 @@ */ uint SIParser::ProcessDVBEventDescriptors( const unsigned char *data, + QString &bestLanguageSE, + uint &bestPrioritySE, const unsigned char* &bestDescriptorSE, + QString &bestLanguageEE, + uint &bestPriorityEE, vector &bestDescriptorsEE, Event &event) { - QString bestLanguageSE = ""; - uint bestPrioritySE = UINT_MAX; - - QString bestLanguageEE = ""; - uint bestPriorityEE = UINT_MAX; - uint descriptorTag = data[0]; uint descriptorLength = data[1]; Index: siparser.h =================================================================== --- siparser.h (revision 7770) +++ siparser.h (working copy) @@ -174,7 +174,11 @@ // DVB EIT Table Descriptor processors uint ProcessDVBEventDescriptors( const unsigned char *data, + QString &bestLanguageSE, + uint &bestPrioritySE, const unsigned char* &bestDescriptorSE, + QString &bestLanguageEE, + uint &bestPriorityEE, vector &bestDescriptorsEE, Event &event);