aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-03-03 03:13:13 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-03-03 03:13:13 +0000
commit8ef240801bf66e543cdea9df3b32fc09cebcc7e5 (patch)
tree5518ec66c8b24014faa47659591f0d47f8816155 /lib/dvb/dvb.cpp
parent13e74ce7d8fcccc12bed3ce65c4f35987f206799 (diff)
downloadenigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.tar.gz
enigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.zip
enable playback of multifile (split) movies
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index 3bceebb0..f8f95276 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -1008,14 +1008,6 @@ RESULT eDVBChannel::playFile(const char *file)
return -ENODEV;
}
- m_pvr_fd_src = open(file, O_RDONLY|O_LARGEFILE);
- if (m_pvr_fd_src < 0)
- {
- eDebug("can't open PVR m_pvr_fd_src file %s (%m)", file);
- close(m_pvr_fd_dst);
- return -ENOENT;
- }
-
m_state = state_ok;
m_stateChanged(this);
@@ -1023,7 +1015,13 @@ RESULT eDVBChannel::playFile(const char *file)
m_pvr_thread->enablePVRCommit(1);
m_pvr_thread->setScatterGather(this);
- m_pvr_thread->start(m_pvr_fd_src, m_pvr_fd_dst);
+ if (m_pvr_thread->start(file, m_pvr_fd_dst))
+ {
+ delete m_pvr_thread;
+ m_pvr_thread = 0;
+ eDebug("can't open PVR file %s (%m)", file);
+ return -ENOENT;
+ }
CONNECT(m_pvr_thread->m_event, eDVBChannel::pvrEvent);
return 0;
@@ -1034,7 +1032,6 @@ void eDVBChannel::stopFile()
if (m_pvr_thread)
{
m_pvr_thread->stop();
- ::close(m_pvr_fd_src);
::close(m_pvr_fd_dst);
delete m_pvr_thread;
m_pvr_thread = 0;