void eFilePushThread::start(int fd, int fd_dest)
{
eRawFile *f = new eRawFile();
- ePtr<iDataSource> source = f;
+ ePtr<iTsSource> source = f;
f->setfd(fd);
start(source, fd_dest);
}
int eFilePushThread::start(const char *file, int fd_dest)
{
eRawFile *f = new eRawFile();
- ePtr<iDataSource> source = f;
+ ePtr<iTsSource> source = f;
if (f->open(file) < 0)
return -1;
start(source, fd_dest);
return 0;
}
-void eFilePushThread::start(ePtr<iDataSource> &source, int fd_dest)
+void eFilePushThread::start(ePtr<iTsSource> &source, int fd_dest)
{
m_source = source;
m_fd_dest = fd_dest;
void start(int sourcefd, int destfd);
int start(const char *filename, int destfd);
- void start(ePtr<iDataSource> &source, int destfd);
+ void start(ePtr<iTsSource> &source, int destfd);
void pause();
void resume();
int m_blocksize;
off_t m_current_position;
- ePtr<iDataSource> m_source;
+ ePtr<iTsSource> m_source;
eFixedMessagePump<int> m_messagepump;
#include <lib/base/object.h>
-class iDataSource: public iObject
+class iTsSource: public iObject
{
public:
/* NOTE: should only be used to get current position or filelength */
#define __lib_base_rawfile_h
#include <string>
-#include <lib/base/idatasource.h>
+#include <lib/base/itssource.h>
-class eRawFile: public iDataSource
+class eRawFile: public iTsSource
{
DECLARE_REF(eRawFile);
eSingleLock m_lock;
void setfd(int fd);
int close();
- // iDataSource
+ // iTsSource
off_t lseek(off_t offset, int whence);
ssize_t read(off_t offset, void *buf, size_t count);
off_t length();
RESULT eDVBChannel::playFile(const char *file)
{
eRawFile *f = new eRawFile();
- ePtr<iDataSource> source = f;
+ ePtr<iTsSource> source = f;
if (f->open(file) < 0)
{
return playSource(source, file);
}
-RESULT eDVBChannel::playSource(ePtr<iDataSource> &source, const char *streaminfo_file)
+RESULT eDVBChannel::playSource(ePtr<iTsSource> &source, const char *streaminfo_file)
{
ASSERT(!m_frontend);
if (m_pvr_thread)
}
if (m_pvr_fd_dst >= 0)
::close(m_pvr_fd_dst);
- ePtr<iDataSource> d;
+ ePtr<iTsSource> d;
m_tstools.setSource(d);
}
RESULT playFile(const char *file);
void stopFile();
- RESULT playSource(ePtr<iDataSource>& source, const char *priv=NULL);
+ RESULT playSource(ePtr<iTsSource>& source, const char *priv=NULL);
void stopSource();
void setCueSheet(eCueSheet *cuesheet);
#include <lib/base/object.h>
#include <lib/base/ebase.h>
#include <lib/base/elock.h>
-#include <lib/base/idatasource.h>
+#include <lib/base/itssource.h>
#include <lib/service/service.h>
#include <libsig_comp.h>
#include <connection.h>
virtual void stopFile() = 0;
/* new interface */
- virtual RESULT playSource(ePtr<iDataSource> &source, const char *priv=NULL) = 0;
+ virtual RESULT playSource(ePtr<iTsSource> &source, const char *priv=NULL) = 0;
virtual void stopSource() = 0;
virtual void setCueSheet(eCueSheet *cuesheet) = 0;
int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
{
- ePtr<iDataSource> s;
+ ePtr<iTsSource> s;
return tuneExt(ref, use_decode_demux, s, NULL, cue, simulate, service);
}
-int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service)
+int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &source, const char *streaminfo_file, eCueSheet *cue, bool simulate, eDVBService *service)
{
RESULT res=0;
m_reference = ref;
int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
/* new interface */
- int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iDataSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+ int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
void free();
private:
int eDVBTSTools::openFile(const char *filename, int nostreaminfo)
{
eRawFile *f = new eRawFile();
- ePtr<iDataSource> src = f;
+ ePtr<iTsSource> src = f;
if (f->open(filename, 1) < 0)
return -1;
return 0;
}
-void eDVBTSTools::setSource(ePtr<iDataSource> &source, const char *stream_info_filename)
+void eDVBTSTools::setSource(ePtr<iTsSource> &source, const char *stream_info_filename)
{
closeFile();
eDVBTSTools();
~eDVBTSTools();
- void setSource(ePtr<iDataSource> &source, const char *streaminfo_filename=NULL);
+ void setSource(ePtr<iTsSource> &source, const char *streaminfo_filename=NULL);
void closeSource();
int openFile(const char *filename, int nostreaminfo = 0);
int m_pid;
int m_maxrange;
- ePtr<iDataSource> m_source;
+ ePtr<iTsSource> m_source;
int m_begin_valid, m_end_valid;
pts_t m_pts_begin, m_pts_end;
if (m_skipmode < 0)
m_cue->seekTo(0, -1000);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, r.path.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
m_service_handler_timeshift.free();
resetTimeshift(1);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file_next.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
m_event((iPlayableService*)this, evUser+1);
m_event(this, evStart);
m_first_program_info = 1;
- ePtr<iDataSource> source = createDataSource(service);
+ ePtr<iTsSource> source = createTsSource(service);
m_service_handler.tuneExt(service, m_is_pvr, source, service.path.c_str(), m_cue, false, m_dvb_service);
if (m_is_pvr)
m_timeshift_active = 0;
}
-ePtr<iDataSource> eDVBServicePlay::createDataSource(eServiceReferenceDVB &ref)
+ePtr<iTsSource> eDVBServicePlay::createTsSource(eServiceReferenceDVB &ref)
{
eRawFile *f = new eRawFile();
f->open(ref.path.c_str());
- return ePtr<iDataSource>(f);
+ return ePtr<iTsSource>(f);
}
void eDVBServicePlay::switchToTimeshift()
m_cue->seekTo(0, -1000);
- ePtr<iDataSource> source = createDataSource(r);
+ ePtr<iTsSource> source = createTsSource(r);
m_service_handler_timeshift.tuneExt(r, 1, source, m_timeshift_file.c_str(), m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
eDebug("eDVBServicePlay::switchToTimeshift, in pause mode now.");
ePtr<eConnection> m_video_event_connection;
void video_event(struct iTSMPEGDecoder::videoEvent);
- virtual ePtr<iDataSource> createDataSource(eServiceReferenceDVB &ref);
+ virtual ePtr<iTsSource> createTsSource(eServiceReferenceDVB &ref);
};
class eStaticServiceDVBBouquetInformation: public iStaticServiceInformation