public iAudioTrackSelection, public iAudioChannelSelection,
public iSubserviceList, public iTimeshiftService,
public iCueSheet, public iSubtitleOutput, public iAudioDelay,
- public iRdsDecoder
+ public iRdsDecoder, public iStreamableService
{
DECLARE_REF(eDVBServicePlay);
public:
int getNumberOfTracks();
RESULT selectTrack(unsigned int i);
RESULT getTrackInfo(struct iAudioTrackInfo &, unsigned int n);
+ int getCurrentTrack();
// iAudioChannelSelection
int getCurrentChannel();
int getPCMDelay();
void setAC3Delay(int);
void setPCMDelay(int);
-
+
+ // iStreamableService
+ RESULT stream(ePtr<iStreamableService> &ptr);
+ PyObject *getStreamingData();
private:
friend class eServiceFactoryDVB;
eServiceReference m_reference;
/* in timeshift mode, we essentially have two channels, and thus pmt handlers. */
eDVBServicePMTHandler m_service_handler_timeshift;
eDVBServiceEITHandler m_event_handler;
+ int m_current_audio_pid;
eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
ePtr<iDVBDemux> m_decode_demux;
int m_current_audio_stream;
- int selectAudioStream(int n);
+ int selectAudioStream(int n = -1);
/* timeshift */
ePtr<iDVBTSRecorder> m_record;
void switchToLive();
void switchToTimeshift();
- void updateDecoder(int intopause=0);
+ void updateDecoder();
int m_skipmode;