OK you're right. It is my patch's fault. I was getting confused about the dates of the recordings.
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
mythtv-dev@mythtv.org
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to