{
m_have_cached_program = false;
serviceEvent(eventNewProgramInfo);
- eEPGCache::getInstance()->PMTready(this);
if (!m_pvr_channel) // don't send campmt to camd.socket for playbacked services
{
+ eEPGCache::getInstance()->PMTready(this);
if(!m_ca_servicePtr)
{
int demuxes[2] = {0,0};
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);
- cached_apid_mpeg = m_service->getCacheEntry(eDVBService::cAC3PID);
- cached_apid_ac3 = m_service->getCacheEntry(eDVBService::cAPID);
+ cached_apid_mpeg = m_service->getCacheEntry(eDVBService::cAPID);
+ cached_apid_ac3 = m_service->getCacheEntry(eDVBService::cAC3PID);
cached_tpid = m_service->getCacheEntry(eDVBService::cTPID);
}
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
{
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;
return r;
}
-static inline PyList_AppendSteal(PyObject *list, PyObject *item)
+static inline void PyList_AppendSteal(PyObject *list, PyObject *item)
{
PyList_Append(list, item);
Py_DECREF(item);