From c9839b5bbd097c884d979e43531ddbbcca9fa162 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 28 Jan 2011 12:45:16 +0100 Subject: no more use proprietary /dev/misc/pvr .. use linux tv api /dev/dvb/adapterX/dvrX this needs new hardware drivers!! fixed bug #672 --- lib/dvb/demux.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/dvb/demux.cpp') diff --git a/lib/dvb/demux.cpp b/lib/dvb/demux.cpp index 0c736c55..37eae19f 100644 --- a/lib/dvb/demux.cpp +++ b/lib/dvb/demux.cpp @@ -85,6 +85,13 @@ int eDVBDemux::openDemux(void) return ::open(filename, O_RDWR); } +int eDVBDemux::openDVR(void) +{ + char filename[128]; + snprintf(filename, 128, "/dev/dvb/adapter%d/dvr%d", adapter, demux); + return ::open(filename, O_WRONLY); +} + DEFINE_REF(eDVBDemux) RESULT eDVBDemux::setSourceFrontend(int fenum) -- cgit v1.2.3 From a995c63c0d6c24bbe23935b901bf735c18833adb Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 15 Feb 2011 20:38:41 +0100 Subject: trade open flags to openPVR function refs bug #672 --- lib/dvb/demux.cpp | 4 ++-- lib/dvb/demux.h | 2 +- lib/dvb/dvb.cpp | 2 +- lib/dvb/idvb.h | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/dvb/demux.cpp') diff --git a/lib/dvb/demux.cpp b/lib/dvb/demux.cpp index 37eae19f..f4d86185 100644 --- a/lib/dvb/demux.cpp +++ b/lib/dvb/demux.cpp @@ -85,11 +85,11 @@ int eDVBDemux::openDemux(void) return ::open(filename, O_RDWR); } -int eDVBDemux::openDVR(void) +int eDVBDemux::openDVR(int flags) { char filename[128]; snprintf(filename, 128, "/dev/dvb/adapter%d/dvr%d", adapter, demux); - return ::open(filename, O_WRONLY); + return ::open(filename, flags); } DEFINE_REF(eDVBDemux) diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index 7dbb521a..e73982ec 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -26,7 +26,7 @@ public: RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; } RESULT flush(); RESULT connectEvent(const Slot1 &event, ePtr &conn); - int openDVR(void); + int openDVR(int flags); int getRefCount() { return ref; } private: diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 30d5f554..399e9f58 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -1799,7 +1799,7 @@ RESULT eDVBChannel::playSource(ePtr &source, const char *streaminfo_f ePtr &demux = m_demux ? m_demux : m_decoder_demux; if (demux) { - m_pvr_fd_dst = demux->get().openDVR(); + m_pvr_fd_dst = demux->get().openDVR(O_WRONLY); if (m_pvr_fd_dst < 0) { eDebug("can't open /dev/dvb/adapterX/dvrX - you need to buy the new(!) $$$ box! (%m)"); // or wait for the driver to be improved. diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index f15cd04e..66fef391 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -636,6 +636,7 @@ public: virtual RESULT getSTC(pts_t &pts, int num=0)=0; virtual RESULT getCADemuxID(uint8_t &id)=0; virtual RESULT flush()=0; + int openDVR(int flags)=0; }; #if HAVE_DVB_API_VERSION < 3 && !defined(VIDEO_EVENT_SIZE_CHANGED) -- cgit v1.2.3