return -1;
if (ffratio == 0)
- return 0; /* return m_decoder->play(); is done in caller*/
+ ; /* return m_decoder->play(); is done in caller*/
else if (ffratio != 1)
return m_decoder->setFastForward(ffratio);
else
{
int ret = selectAudioStream(i);
- if (m_decoder->play())
+ if (m_decoder->set())
return -5;
return ret;
eDebug("set audio pid failed");
return -4;
}
-
- m_decoder->set();
/* if we are not in PVR mode, timeshift is not active and we are not in pip mode, check if we need to enable the rds reader */
if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
m_dvb_service->setCacheEntry(eDVBService::cAPID, apid);
m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1);
}
- else
+ else if (apidtype == eDVBAudio::aAC3)
{
m_dvb_service->setCacheEntry(eDVBService::cAPID, -1);
m_dvb_service->setCacheEntry(eDVBService::cAC3PID, apid);
}
+ else
+ {
+ m_dvb_service->setCacheEntry(eDVBService::cAPID, -1);
+ m_dvb_service->setCacheEntry(eDVBService::cAC3PID, -1);
+ }
}
h.resetCachedProgram();
std::multiset<cueEntry>::iterator i(m_cue_entries.begin());
+ int have_any_span = 0;
+
while (1)
{
if (i == m_cue_entries.end())
+ {
+ if (!have_any_span)
+ break;
out = length;
- else {
+ } else {
if (i->what == 0) /* in */
{
in = i++->where;
out = length;
if (in < out)
+ {
+ have_any_span = 1;
m_cue->addSourceSpan(in, out);
+ }
in = length;