aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-11-10 20:29:15 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-11-10 20:29:15 +0100
commit961f33b8fa7a02154a5da9504ca0056990b424bd (patch)
tree01a94d1cb54ae4279ecbf0e872456867bc439ca0 /lib/dvb/dvb.cpp
parent55b8dd6115c2bb0921842c6dc77aafb8d0a40c4f (diff)
downloadenigma2-961f33b8fa7a02154a5da9504ca0056990b424bd.tar.gz
enigma2-961f33b8fa7a02154a5da9504ca0056990b424bd.zip
eDVBChannel: invalidate iDataSource in stopSource call
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index 640f327c..c980ac5a 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -1764,7 +1764,7 @@ RESULT eDVBChannel::playFile(const char *file)
return playSource(source, file);
}
-RESULT eDVBChannel::playSource(ePtr<iDataSource> &source, const char *priv)
+RESULT eDVBChannel::playSource(ePtr<iDataSource> &source, const char *streaminfo_file)
{
ASSERT(!m_frontend);
if (m_pvr_thread)
@@ -1774,7 +1774,13 @@ RESULT eDVBChannel::playSource(ePtr<iDataSource> &source, const char *priv)
m_pvr_thread = 0;
}
- m_tstools.setSource(source, priv);
+ if (!source->valid())
+ {
+ eDebug("PVR source is not valid!");
+ return -ENOENT;
+ }
+
+ m_tstools.setSource(source, streaminfo_file);
/* DON'T EVEN THINK ABOUT FIXING THIS. FIX THE ATI SOURCES FIRST,
THEN DO A REAL FIX HERE! */
@@ -1820,6 +1826,8 @@ void eDVBChannel::stopSource()
}
if (m_pvr_fd_dst >= 0)
::close(m_pvr_fd_dst);
+ ePtr<iDataSource> d;
+ m_tstools.setSource(d);
}
void eDVBChannel::stopFile()