Index: mythtv/libs/libmythtv/siparser.cpp =================================================================== --- mythtv/libs/libmythtv/siparser.cpp (revision 6740) +++ mythtv/libs/libmythtv/siparser.cpp (working copy) @@ -727,6 +727,7 @@ 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)); @@ -795,6 +796,17 @@ 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; @@ -852,6 +864,7 @@ case 0x59: // Subtitling Descriptor ParseDescriptorSubtitling(descriptor, descriptor_len); + if (e.Type == ES_TYPE_VIDEO_MPEG2) Video_taken=0; e.Type = ES_TYPE_SUBTITLE; break; @@ -877,6 +890,7 @@ 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: