git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't reorder audio streams, instead store thre default audio stream index in 'defaul...
[enigma2.git]
/
lib
/
dvb
/
pmt.cpp
diff --git
a/lib/dvb/pmt.cpp
b/lib/dvb/pmt.cpp
index e70942009136e8739c1562878f743385302d9472..c295df31a174e317c9b541a1b97ecdf1604aa147 100644
(file)
--- a/
lib/dvb/pmt.cpp
+++ b/
lib/dvb/pmt.cpp
@@
-174,12
+174,13
@@
int eDVBServicePMTHandler::getProgramInfo(struct program &program)
program.pcrPid = -1;
program.pmtPid = -1;
program.textPid = -1;
program.pcrPid = -1;
program.pmtPid = -1;
program.textPid = -1;
+ program.defaultAudioStream = 0;
if ( m_service && !m_service->cacheEmpty() )
{
cached_vpid = m_service->getCacheEntry(eDVBService::cVPID);
if ( m_service && !m_service->cacheEmpty() )
{
cached_vpid = m_service->getCacheEntry(eDVBService::cVPID);
- cached_apid_mpeg = m_service->getCacheEntry(eDVBService::cA
C3
PID);
- cached_apid_ac3 = m_service->getCacheEntry(eDVBService::cAPID);
+ cached_apid_mpeg = m_service->getCacheEntry(eDVBService::cAPID);
+ cached_apid_ac3 = m_service->getCacheEntry(eDVBService::cA
C3
PID);
cached_tpid = m_service->getCacheEntry(eDVBService::cTPID);
}
cached_tpid = m_service->getCacheEntry(eDVBService::cTPID);
}
@@
-318,12
+319,8
@@
int eDVBServicePMTHandler::getProgramInfo(struct program &program)
audio.pid = (*es)->getPid();
if ( !program.audioStreams.empty() &&
( audio.pid == cached_apid_ac3 || audio.pid == cached_apid_mpeg) )
audio.pid = (*es)->getPid();
if ( !program.audioStreams.empty() &&
( audio.pid == cached_apid_ac3 || audio.pid == cached_apid_mpeg) )
- {
- program.audioStreams.push_back(program.audioStreams[0]);
- program.audioStreams[0] = audio;
- }
- else
- program.audioStreams.push_back(audio);
+ program.defaultAudioStream = program.audioStreams.size();
+ program.audioStreams.push_back(audio);
}
else if (isvideo)
{
}
else if (isvideo)
{
@@
-496,8
+493,9
@@
int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
} else
{
eDVBMetaParser parser;
} else
{
eDVBMetaParser parser;
-
- if (parser.parseFile(ref.path))
+
+ int ret=parser.parseFile(ref.path);
+ if (ret || !parser.m_ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
{
eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;
{
eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;