26 bool DevicePoll(
cPoller &Poller,
int TimeoutMs = 0) {
return device ? device->
Poll(Poller, TimeoutMs) :
false; }
27 bool DeviceFlush(
int TimeoutMs = 0) {
return device ? device->
Flush(TimeoutMs) :
true; }
43 int PlayPes(
const uchar *Data,
int Length,
bool VideoOnly =
false);
47 int PlayTs(
const uchar *Data,
int Length,
bool VideoOnly =
false) {
return device ? device->
PlayTs(Data, Length, VideoOnly) : -1; }
57 virtual bool GetIndex(
int &Current,
int &Total,
bool SnapToIFrame =
false) {
return false; }
87 virtual void Hide(
void) = 0;
95 virtual cString GetHeader(
void);
102 bool GetIndex(
int &Current,
int &Total,
bool SnapToIFrame =
false) {
return player->
GetIndex(Current, Total, SnapToIFrame); }
104 static void Launch(
cControl *Control);
105 static void Attach(
void);
106 static void Shutdown(
void);
107 static cControl *Control(
bool Hidden =
false);
static cControl * control
void DeviceClrAvailableTracks(bool DescriptionsOnly=false)
#define DEFAULTFRAMESPERSECOND
bool GetIndex(int &Current, int &Total, bool SnapToIFrame=false)
double FramesPerSecond(void)
bool DeviceSetAvailableTrack(eTrackType Type, int Index, uint16_t Id, const char *Language=NULL, const char *Description=NULL)
bool DeviceSetCurrentAudioTrack(eTrackType Type)
virtual void SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat)
Sets the video display format to the given one (only useful if this device has an MPEG decoder)...
bool SetAvailableTrack(eTrackType Type, int Index, uint16_t Id, const char *Language=NULL, const char *Description=NULL)
Sets the track of the given Type and Index to the given values.
virtual void Play(void)
Sets the device into play mode (after a previous trick mode).
bool GetReplayMode(bool &Play, bool &Forward, int &Speed)
virtual void Clear(void)
Clears all video and audio data from the device.
virtual bool HasIBPTrickSpeed(void)
Returns true if this device can handle all frames in 'fast forward' trick speeds. ...
int PlayPes(const uchar *Data, int Length, bool VideoOnly=false)
virtual bool GetReplayMode(bool &Play, bool &Forward, int &Speed)
bool DeviceHasIBPTrickSpeed(void)
virtual void Mute(void)
Turns off audio while replaying.
bool SetCurrentAudioTrack(eTrackType Type)
Sets the current audio track to the given Type.
virtual double FramesPerSecond(void)
virtual void SetAudioTrack(eTrackType Type, const tTrackId *TrackId)
virtual void Freeze(void)
Puts the device into "freeze frame" mode.
virtual void Activate(bool On)
void DeviceStillPicture(const uchar *Data, int Length)
virtual bool IsPlayingVideo(void) const
Returns true if the currently attached player has delivered any video packets.
void ClrAvailableTracks(bool DescriptionsOnly=false, bool IdsOnly=false)
Clears the list of currently available tracks.
virtual bool Flush(int TimeoutMs=0)
Returns true if the device's output buffers are empty, i.
bool DevicePoll(cPoller &Poller, int TimeoutMs=0)
bool DeviceIsPlayingVideo(void)
virtual void SetSubtitleTrack(eTrackType Type, const tTrackId *TrackId)
virtual int PlayTs(const uchar *Data, int Length, bool VideoOnly=false)
Plays the given TS packet.
int PlayTs(const uchar *Data, int Length, bool VideoOnly=false)
void DeviceTrickSpeed(int Speed, bool Forward)
void DeviceSetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat)
uint64_t DeviceGetSTC(void)
virtual bool GetIndex(int &Current, int &Total, bool SnapToIFrame=false)
virtual bool Poll(cPoller &Poller, int TimeoutMs=0)
Returns true if the device itself or any of the file handles in Poller is ready for further action...
virtual int64_t GetSTC(void)
Gets the current System Time Counter, which can be used to synchronize audio, video and subtitles...
virtual void TrickSpeed(int Speed, bool Forward)
Sets the device into a mode where replay is done slower.
bool DeviceFlush(int TimeoutMs=0)
bool SetCurrentSubtitleTrack(eTrackType Type, bool Manual=false)
Sets the current subtitle track to the given Type.
bool DeviceSetCurrentSubtitleTrack(eTrackType Type)
virtual void StillPicture(const uchar *Data, int Length)
Displays the given I-frame as a still picture.
The cDevice class is the base from which actual devices can be derived.
cPlayer(ePlayMode PlayMode=pmAudioVideo)