From 33a78f65a250068a9c82707b704fb38f3a54091e Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sat, 30 Jul 2005 02:03:06 +0000 Subject: [PATCH] - fix: close source/dst after pvr playback --- lib/dvb/dvb.cpp | 16 +++++++++------- lib/dvb/dvb.h | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index d98aa2a8..4f5ecf2e 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -382,6 +382,8 @@ eDVBChannel::~eDVBChannel() if (m_pvr_thread) { m_pvr_thread->stop(); + ::close(m_pvr_fd_src); + ::close(m_pvr_fd_dst); delete m_pvr_thread; } } @@ -520,18 +522,18 @@ RESULT eDVBChannel::playFile(const char *file) /* (this codepath needs to be improved anyway.) */ - int dest = open("/dev/misc/pvr", O_WRONLY); - if (dest < 0) + m_pvr_fd_dst = open("/dev/misc/pvr", O_WRONLY); + if (m_pvr_fd_dst < 0) { eDebug("can't open /dev/misc/pvr - you need to buy the new(!) $$$ box! (%m)"); return -ENODEV; } - int source = open(file, O_RDONLY); - if (source < 0) + m_pvr_fd_src = open(file, O_RDONLY); + if (m_pvr_fd_src < 0) { - eDebug("can't open PVR source file %s (%m)", file); - close(dest); + eDebug("can't open PVR m_pvr_fd_src file %s (%m)", file); + close(m_pvr_fd_dst); return -ENOENT; } @@ -539,5 +541,5 @@ RESULT eDVBChannel::playFile(const char *file) m_stateChanged(this); m_pvr_thread = new eFilePushThread(); - m_pvr_thread->start(source, dest); + m_pvr_thread->start(m_pvr_fd_src, m_pvr_fd_dst); } diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 0e1c8af5..d9f049eb 100644 --- a/lib/dvb/dvb.h +++ b/lib/dvb/dvb.h @@ -188,6 +188,7 @@ private: /* for PVR playback */ eFilePushThread *m_pvr_thread; + int m_pvr_fd_src, m_pvr_fd_dst; friend class eUsePtr; /* use count */ -- 2.30.2