X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fdvb.cpp;h=414ab8da7d9419f37b86d722bf7617523ccb3cea;hp=21ebecf1b86c854fb3de0b96fb39acca6d9d9bc3;hb=30da484f79db1d8210a3dcb31b359484873dc240;hpb=6fdb2d2094c50a2bc324f4094473c2107d2ea943 diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 21ebecf..414ab8d 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -1752,16 +1752,8 @@ RESULT eDVBChannel::getCurrentFrontendParameters(ePtr &p RESULT eDVBChannel::playFile(const char *file) { - ASSERT(!m_frontend); - if (m_pvr_thread) - { - m_pvr_thread->stop(); - delete m_pvr_thread; - m_pvr_thread = 0; - } - eRawFile *f = new eRawFile(); - ePtr source = f; + ePtr source = f; if (f->open(file) < 0) { @@ -1772,9 +1764,23 @@ RESULT eDVBChannel::playFile(const char *file) return playSource(source, file); } -RESULT eDVBChannel::playSource(ePtr &source, const char *priv) +RESULT eDVBChannel::playSource(ePtr &source, const char *streaminfo_file) { - m_tstools.setSource(source, priv); + ASSERT(!m_frontend); + if (m_pvr_thread) + { + m_pvr_thread->stop(); + delete m_pvr_thread; + m_pvr_thread = 0; + } + + 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 d; + m_tstools.setSource(d); } void eDVBChannel::stopFile()