Support fast channel change.
[vuplus_dvbapp] / lib / dvb / demux.cpp
index 0c736c5..0d03927 100644 (file)
@@ -85,6 +85,13 @@ int eDVBDemux::openDemux(void)
        return ::open(filename, O_RDWR);
 }
 
+int eDVBDemux::openDVR(int flags)
+{
+       char filename[128];
+       snprintf(filename, 128, "/dev/dvb/adapter%d/dvr%d", adapter, demux);
+       return ::open(filename, flags);
+}
+
 DEFINE_REF(eDVBDemux)
 
 RESULT eDVBDemux::setSourceFrontend(int fenum)
@@ -446,6 +453,7 @@ public:
        
        void startSaveMetaInformation(const std::string &filename);
        void stopSaveMetaInformation();
+       void enableAccessPoints(bool enable);
        int getLastPTS(pts_t &pts);
 protected:
        int filterRecordData(const unsigned char *data, int len, size_t &current_span_remaining);
@@ -478,6 +486,11 @@ void eDVBRecordFileThread::stopSaveMetaInformation()
        m_stream_info.stopSave();
 }
 
+void eDVBRecordFileThread::enableAccessPoints(bool enable)
+{
+       m_ts_parser.enableAccessPoints(enable);
+}
+
 int eDVBRecordFileThread::getLastPTS(pts_t &pts)
 {
        return m_ts_parser.getLastPTS(pts);
@@ -641,6 +654,12 @@ RESULT eDVBTSRecorder::setTargetFilename(const char *filename)
        return 0;
 }
 
+RESULT eDVBTSRecorder::enableAccessPoints(bool enable)
+{
+       m_thread->enableAccessPoints(enable);
+       return 0;
+}
+
 RESULT eDVBTSRecorder::setBoundary(off_t max)
 {
        return -1; // not yet implemented