X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6f3208500f3b07aaa3733b0b47f2e7a00426ed3e..e448808c8c2faf89397318e61fd83259835d1977:/lib/dvb/pmt.cpp diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index e1aa096d..dc427aa1 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -214,7 +214,7 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) ElementaryStreamInfoConstIterator es; for (es = pmt.getEsInfo()->begin(); es != pmt.getEsInfo()->end(); ++es) { - int isaudio = 0, isvideo = 0, issubtitle = 0, forced_video = 0, forced_audio = 0; + int isaudio = 0, isvideo = 0, issubtitle = 0, forced_video = 0, forced_audio = 0, isteletext = 0; videoStream video; audioStream audio; audio.component_tag=video.component_tag=-1; @@ -342,6 +342,7 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) s.subtitling_type = 0x01; // EBU TELETEXT SUBTITLES s.pid = program.textPid = (*es)->getPid(); TeletextDescriptor *d = (TeletextDescriptor*)(*desc); + isteletext = 1; const VbiTeletextList *list = d->getVbiTeletexts(); for (VbiTeletextConstIterator it(list->begin()); it != list->end(); ++it) { @@ -460,11 +461,16 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) default: break; } - if (issubtitle && (isaudio || isvideo)) + if (isteletext && (isaudio || isvideo)) + { + eDebug("ambiguous streamtype for PID %04x detected.. forced as teletext!", (*es)->getPid()); + continue; // continue with next PID + } + else if (issubtitle && (isaudio || isvideo)) eDebug("ambiguous streamtype for PID %04x detected.. forced as subtitle!", (*es)->getPid()); else if (isaudio && isvideo) eDebug("ambiguous streamtype for PID %04x detected.. forced as video!", (*es)->getPid()); - if (issubtitle) + if (issubtitle) // continue with next PID continue; else if (isvideo) {