This new patch should solve the audio problem. If people tell me if it works I will recode it to be more nicely written as currently it is very hacky.
--
Charlie Brej
APT Group, Dept. Computer Science, University of Manchester
Web: http://www.cs.man.ac.uk/~brejc8/ Tel: +44 161 275 6844
Mail: IT302, Manchester University, Manchester, M13 9PL, UK
Index: libs/libmythtv/siparser.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/siparser.cpp,v
retrieving revision 1.15
diff -u -3 -p -r1.15 siparser.cpp
--- libs/libmythtv/siparser.cpp 10 Apr 2005 04:55:47 -0000 1.15
+++ libs/libmythtv/siparser.cpp 14 Apr 2005 10:35:16 -0000
@@ -657,6 +657,7 @@ void SIParser::ParsePMT(tablehead_t* hea
if (Table[PMT]->AddSection(head,head->table_id_ext,0))
return;
+ int Video_taken=0;
SIPARSER(QString("PMT ServiceID: %1 Version = %2").arg(head->table_id_ext).arg(head->version));
@@ -724,6 +725,17 @@ void SIParser::ParsePMT(tablehead_t* hea
case 0x04:
e.Type = ES_TYPE_AUDIO_MPEG2;
break;
+ case 0x06:
+ if (!Video_taken)
+ {
+ e.Type = ES_TYPE_VIDEO_MPEG2;
+ Video_taken=1;
+ }
+ else
+ {
+ e.Type = ES_TYPE_AUDIO_MPEG2;
+ }
+ break;
case 0x08:
case 0x0B:
e.Type = ES_TYPE_DATA;
@@ -781,6 +793,7 @@ void SIParser::ParsePMT(tablehead_t* hea
case 0x59: // Subtitling Descriptor
ParseDescriptorSubtitling(descriptor, descriptor_len);
+ if (e.Type == ES_TYPE_VIDEO_MPEG1) Video_taken=0;
e.Type = ES_TYPE_SUBTITLE;
break;
@@ -806,6 +819,7 @@ void SIParser::ParsePMT(tablehead_t* hea
break;
case ES_TYPE_VIDEO_MPEG2:
e.Description = QString("MPEG-2 Video");
+ if (e.Orig_Type == 0x06) p.PCRPID = e.PID;
p.hasVideo = true;
break;
case ES_TYPE_AUDIO_MPEG1:
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
