if ( !getProgramInfo(prog) )
{
- int cnt=prog.caids.size();
- if (cnt)
+ if (pair)
{
- ret=PyList_New(cnt);
- std::set<program::capid_pair>::iterator it(prog.caids.begin());
- if (pair)
+ int cnt=prog.caids.size();
+ if (cnt)
{
+ ret=PyList_New(cnt);
+ std::list<program::capid_pair>::iterator it(prog.caids.begin());
while(cnt--)
{
ePyObject tuple = PyTuple_New(2);
PyList_SET_ITEM(ret, cnt, tuple);
}
}
- else
- {
- while(cnt--)
- PyList_SET_ITEM(ret, cnt, PyInt_FromLong((it++)->caid));
- }
+ }
+ else
+ {
+ std::set<program::capid_pair> set(prog.caids.begin(), prog.caids.end());
+ std::set<program::capid_pair>::iterator it(set.begin());
+ int cnt=set.size();
+ ret=PyList_New(cnt);
+ while(cnt--)
+ PyList_SET_ITEM(ret, cnt, PyInt_FromLong((it++)->caid));
}
}
program::capid_pair pair;
pair.caid = descr->getCaSystemId();
pair.capid = descr->getCaPid();
- program.caids.insert(pair);
+ program.caids.push_back(pair);
}
else if ((*desc)->getTag() == REGISTRATION_DESCRIPTOR)
{
program::capid_pair pair;
pair.caid = descr->getCaSystemId();
pair.capid = descr->getCaPid();
- program.caids.insert(pair);
+ program.caids.push_back(pair);
break;
}
default:
program::capid_pair pair;
pair.caid = *it;
pair.capid = -1; // not known yet
- program.caids.insert(pair);
+ program.caids.push_back(pair);
}
if ( cnt )
ret = 0;
{
if (!ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
{
- eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;
+ bool b = source || !tstools.openFile(ref.path.c_str(), 1);
+ eWarning("no .meta file found, trying to find PMT pid");
if (source)
- tstools.setSource(source, streaminfo_file ? streaminfo_file : ref.path.c_str());
- else if (tstools.openFile(ref.path.c_str()))
- eWarning("failed to open file");
- else
+ tstools.setSource(source, NULL);
+ if (b)
{
int service_id, pmt_pid;
if (!tstools.findPMT(pmt_pid, service_id))
m_pmt_pid = pmt_pid;
}
}
+ else
+ eWarning("no valid source to find PMT pid!");
}
eDebug("alloc PVR");
/* allocate PVR */