}
extern void PutToDict(ePyObject &dict, const char*key, long value); // defined in dvb/frontend.cpp
-extern void PutToDict(ePyObject &dict, const char*key, ePyObject item); // defined in dvb/frontend.cpp
-extern void PutToDict(ePyObject &dict, const char*key, const char *value); // defined in dvb/frontend.cpp
-
-void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &feparm)
-{
- PutToDict(dict, "tuner_type", "DVB-S");
- PutToDict(dict, "frequency", feparm.frequency);
- PutToDict(dict, "symbol_rate", feparm.symbol_rate);
- PutToDict(dict, "orbital_position", feparm.orbital_position);
- PutToDict(dict, "inversion", feparm.inversion);
- PutToDict(dict, "fec_inner", feparm.fec);
- PutToDict(dict, "modulation", feparm.modulation);
- PutToDict(dict, "polarization", feparm.polarisation);
- if (feparm.system == eDVBFrontendParametersSatellite::System_DVB_S2)
- {
- PutToDict(dict, "rolloff", feparm.rolloff);
- PutToDict(dict, "pilot", feparm.pilot);
- }
- PutToDict(dict, "system", feparm.system);
-}
-
-void PutTerrestrialDataToDict(ePyObject &dict, eDVBFrontendParametersTerrestrial &feparm)
-{
- PutToDict(dict, "tuner_type", "DVB-T");
- PutToDict(dict, "frequency", feparm.frequency);
- PutToDict(dict, "bandwidth", feparm.bandwidth);
- PutToDict(dict, "code_rate_lp", feparm.code_rate_LP);
- PutToDict(dict, "code_rate_hp", feparm.code_rate_HP);
- PutToDict(dict, "constellation", feparm.modulation);
- PutToDict(dict, "transmission_mode", feparm.transmission_mode);
- PutToDict(dict, "guard_interval", feparm.guard_interval);
- PutToDict(dict, "hierarchy_information", feparm.hierarchy);
- PutToDict(dict, "inversion", feparm.inversion);
-}
-
-void PutCableDataToDict(ePyObject &dict, eDVBFrontendParametersCable &feparm)
-{
- PutToDict(dict, "tuner_type", "DVB-C");
- PutToDict(dict, "frequency", feparm.frequency);
- PutToDict(dict, "symbol_rate", feparm.symbol_rate);
- PutToDict(dict, "modulation", feparm.modulation);
- PutToDict(dict, "inversion", feparm.inversion);
- PutToDict(dict, "fec_inner", feparm.fec_inner);
-}
+extern void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &feparm); // defined in dvb/frontend.cpp
+extern void PutTerrestrialDataToDict(ePyObject &dict, eDVBFrontendParametersTerrestrial &feparm); // defined in dvb/frontend.cpp
+extern void PutCableDataToDict(ePyObject &dict, eDVBFrontendParametersCable &feparm); // defined in dvb/frontend.cpp
PyObject *eStaticServiceDVBInformation::getInfoObject(const eServiceReference &r, int what)
{
RESULT deleteFromDisk(int simulate);
RESULT getListOfFilenames(std::list<std::string> &);
+ RESULT reindex();
};
DEFINE_REF(eDVBPVRServiceOfflineOperations);
return 0;
}
+RESULT eDVBPVRServiceOfflineOperations::reindex()
+{
+ const char *filename = m_ref.path.c_str();
+ eDebug("reindexing %s...", filename);
+
+ eMPEGStreamInformation info;
+ eMPEGStreamParserTS parser(info);
+
+ info.startSave(filename);
+
+ eRawFile f;
+
+ int err = f.open(m_ref.path.c_str(), 0);
+ if (err < 0)
+ return -1;
+
+ off_t length = f.length();
+ unsigned char buffer[188*256*4];
+ while (1)
+ {
+ off_t offset = f.lseek(0, SEEK_CUR);
+ eDebug("at %08llx / %08llx (%d %%)", offset, length, (int)(offset * 100 / length));
+ int r = f.read(buffer, sizeof(buffer));
+ if (!r)
+ break;
+ if (r < 0)
+ return r;
+ parser.parseData(offset, buffer, r);
+ }
+
+ info.stopSave();
+ f.close();
+
+ return 0;
+}
+
DEFINE_REF(eServiceFactoryDVB)
eServiceFactoryDVB::eServiceFactoryDVB()
Py_DECREF(subs);
}
}
+ m_decoder->play(); /* pids will be set later */
}
if (m_cue)
m_cue->setDecodingDemux(m_decode_demux, m_decoder);
+ m_decoder->play(); /* pids will be set later. */
}
m_timeshift_changed = 0;
m_decoder->setRadioPic(radio_pic);
}
-/* if (!m_is_primary)
- m_decoder->setTrickmode();
- else */ if (m_is_paused)
- m_decoder->pause();
- else
- m_decoder->play();
-
+ m_decoder->set();
m_decoder->setAudioChannel(achannel);
/* don't worry about non-existing services, nor pvr services */