vdr  2.2.0
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
cDvbPlayer Class Reference

Public Member Functions

 cDvbPlayer (const char *FileName, bool PauseLive)
 
virtual ~cDvbPlayer ()
 
void SetMarks (cMarks *Marks)
 
bool Active (void)
 
void Pause (void)
 
void Play (void)
 
void Forward (void)
 
void Backward (void)
 
int SkipFrames (int Frames)
 
void SkipSeconds (int Seconds)
 
void Goto (int Position, bool Still=false)
 
virtual double FramesPerSecond (void)
 
virtual void SetAudioTrack (eTrackType Type, const tTrackId *TrackId)
 
virtual bool GetIndex (int &Current, int &Total, bool SnapToIFrame=false)
 
virtual bool GetReplayMode (bool &Play, bool &Forward, int &Speed)
 
- Public Member Functions inherited from cPlayer
 cPlayer (ePlayMode PlayMode=pmAudioVideo)
 
virtual ~cPlayer ()
 
bool IsAttached (void)
 
virtual void SetSubtitleTrack (eTrackType Type, const tTrackId *TrackId)
 

Protected Member Functions

virtual void Activate (bool On)
 
virtual void Action (void)
 
- Protected Member Functions inherited from cPlayer
void DeviceClrAvailableTracks (bool DescriptionsOnly=false)
 
bool DeviceSetAvailableTrack (eTrackType Type, int Index, uint16_t Id, const char *Language=NULL, const char *Description=NULL)
 
bool DeviceSetCurrentAudioTrack (eTrackType Type)
 
bool DeviceSetCurrentSubtitleTrack (eTrackType Type)
 
bool DevicePoll (cPoller &Poller, int TimeoutMs=0)
 
bool DeviceFlush (int TimeoutMs=0)
 
bool DeviceHasIBPTrickSpeed (void)
 
bool DeviceIsPlayingVideo (void)
 
void DeviceTrickSpeed (int Speed, bool Forward)
 
void DeviceClear (void)
 
void DevicePlay (void)
 
void DeviceFreeze (void)
 
void DeviceMute (void)
 
void DeviceSetVideoDisplayFormat (eVideoDisplayFormat VideoDisplayFormat)
 
void DeviceStillPicture (const uchar *Data, int Length)
 
uint64_t DeviceGetSTC (void)
 
void Detach (void)
 
int PlayPes (const uchar *Data, int Length, bool VideoOnly=false)
 
int PlayTs (const uchar *Data, int Length, bool VideoOnly=false)
 

Private Types

enum  ePlayModes {
  pmPlay, pmPause, pmSlow, pmFast,
  pmStill
}
 
enum  ePlayDirs { pdForward, pdBackward }
 

Private Member Functions

void TrickSpeed (int Increment)
 
void Empty (void)
 
bool NextFile (uint16_t FileNumber=0, off_t FileOffset=-1)
 
int Resume (void)
 
bool Save (void)
 
- Private Member Functions inherited from cThread
 cThread (const char *Description=NULL, bool LowPriority=false)
 
virtual ~cThread ()
 
void SetDescription (const char *Description,...) __attribute__((format(printf
 
void bool Start (void)
 
bool Active (void)
 
void SetPriority (int Priority)
 
void SetIOPriority (int Priority)
 
void Lock (void)
 
void Unlock (void)
 
bool Running (void)
 
void Cancel (int WaitSeconds=0)
 

Private Attributes

cNonBlockingFileReadernonBlockingFileReader
 
cRingBufferFrameringBuffer
 
cPtsIndex ptsIndex
 
cMarksmarks
 
cFileNamefileName
 
cIndexFileindex
 
cUnbufferedFilereplayFile
 
double framesPerSecond
 
bool isPesRecording
 
bool pauseLive
 
bool eof
 
bool firstPacket
 
ePlayModes playMode
 
ePlayDirs playDir
 
int trickSpeed
 
int readIndex
 
bool readIndependent
 
cFramereadFrame
 
cFrameplayFrame
 
cFramedropFrame
 
bool resyncAfterPause
 

Static Private Attributes

static int Speeds [] = { 0, -2, -4, -8, 1, 2, 4, 12, 0 }
 

Additional Inherited Members

- Static Private Member Functions inherited from cThread
static tThreadId ThreadId (void)
 
static tThreadId IsMainThread (void)
 
static void SetMainThreadId (void)
 

Detailed Description

Definition at line 205 of file dvbplayer.c.

Member Enumeration Documentation

§ ePlayDirs

enum cDvbPlayer::ePlayDirs
private
Enumerator
pdForward 
pdBackward 

Definition at line 208 of file dvbplayer.c.

§ ePlayModes

enum cDvbPlayer::ePlayModes
private
Enumerator
pmPlay 
pmPause 
pmSlow 
pmFast 
pmStill 

Definition at line 207 of file dvbplayer.c.

Constructor & Destructor Documentation

§ cDvbPlayer()

cDvbPlayer::cDvbPlayer ( const char *  FileName,
bool  PauseLive 
)

§ ~cDvbPlayer()

cDvbPlayer::~cDvbPlayer ( )
virtual

Definition at line 303 of file dvbplayer.c.

References cPlayer::Detach(), fileName, index, readFrame, ringBuffer, and Save().

Member Function Documentation

§ Action()

void cDvbPlayer::Action ( void  )
protectedvirtual

A derived cThread class must implement the code it wants to execute as a separate thread in this function.

If this is a loop, it must check Running() repeatedly to see whether it's time to stop.

Implements cThread.

Definition at line 413 of file dvbplayer.c.

References cFrame::Count(), cFrame::Data(), cPlayer::DeviceGetSTC(), cPlayer::DeviceHasIBPTrickSpeed(), cPlayer::DeviceIsPlayingVideo(), cPlayer::DevicePlay(), cPlayer::DevicePoll(), cRingBufferFrame::Drop(), dropFrame, Empty(), eof, esyslog, FATALERRNO, cPtsIndex::FindIndex(), cList< T >::First(), firstPacket, framesPerSecond, ftUnknown, cRingBufferFrame::Get(), cMarks::Get(), cIndexFile::Get(), cMarks::GetNextBegin(), cIndexFile::GetNextIFrame(), Goto(), cFrame::Index(), index, cListObject::Index(), IndexToHMSF(), isPesRecording, cIndexFile::IsStillRecording(), isyslog, cIndexFile::Last(), cMutex::Lock(), LOCK_THREAD, LOG_ERROR, marks, MAXFRAMESIZE, MAXSTUCKATEOF, NextFile(), nonBlockingFileReader, cSetup::PauseAtLastMark, pauseLive, pdBackward, pdForward, PesGetPts(), playDir, playFrame, playMode, cPlayer::PlayPes(), cPlayer::PlayTs(), pmFast, pmPause, pmPlay, pmSlow, pmStill, cMark::Position(), cFrame::Pts(), ptsIndex, cPtsIndex::Put(), cRingBufferFrame::Put(), readFrame, readIndependent, readIndex, cNonBlockingFileReader::Reading(), replayFile, cNonBlockingFileReader::Request(), cNonBlockingFileReader::Result(), Resume(), ringBuffer, cThread::Running(), cRemux::SetBrokenLink(), Setup, cSetup::SkipEdited, cCondWait::SleepMs(), TsGetPts(), cMutex::Unlock(), and cNonBlockingFileReader::WaitForDataMs().

§ Activate()

void cDvbPlayer::Activate ( bool  On)
protectedvirtual

Reimplemented from cPlayer.

Definition at line 403 of file dvbplayer.c.

References cThread::Cancel(), replayFile, and cThread::Start().

§ Active()

bool cDvbPlayer::Active ( void  )
inline

Definition at line 243 of file dvbplayer.c.

References cThread::Running().

Referenced by cDvbPlayerControl::Active().

§ Backward()

void cDvbPlayer::Backward ( void  )

§ Empty()

void cDvbPlayer::Empty ( void  )
private

§ Forward()

void cDvbPlayer::Forward ( void  )

§ FramesPerSecond()

virtual double cDvbPlayer::FramesPerSecond ( void  )
inlinevirtual

Reimplemented from cPlayer.

Definition at line 251 of file dvbplayer.c.

§ GetIndex()

bool cDvbPlayer::GetIndex ( int &  Current,
int &  Total,
bool  SnapToIFrame = false 
)
virtual

§ GetReplayMode()

bool cDvbPlayer::GetReplayMode ( bool &  Play,
bool &  Forward,
int &  Speed 
)
virtual

Reimplemented from cPlayer.

Definition at line 923 of file dvbplayer.c.

References cSetup::MultiSpeedMode, NORMAL_SPEED, pdForward, playDir, playMode, pmFast, pmPlay, pmSlow, Setup, and trickSpeed.

Referenced by cDvbPlayerControl::GetReplayMode().

§ Goto()

void cDvbPlayer::Goto ( int  Position,
bool  Still = false 
)

§ NextFile()

bool cDvbPlayer::NextFile ( uint16_t  FileNumber = 0,
off_t  FileOffset = -1 
)
private

Definition at line 356 of file dvbplayer.c.

References eof, fileName, cFileName::NextFile(), replayFile, and cFileName::SetOffset().

Referenced by Action(), Goto(), and Resume().

§ Pause()

void cDvbPlayer::Pause ( void  )

§ Play()

void cDvbPlayer::Play ( void  )

§ Resume()

int cDvbPlayer::Resume ( void  )
private

Definition at line 366 of file dvbplayer.c.

References cIndexFile::Get(), cIndexFile::GetResume(), index, and NextFile().

Referenced by Action().

§ Save()

bool cDvbPlayer::Save ( void  )
private

§ SetAudioTrack()

void cDvbPlayer::SetAudioTrack ( eTrackType  Type,
const tTrackId TrackId 
)
virtual

Reimplemented from cPlayer.

Definition at line 892 of file dvbplayer.c.

References GetIndex(), Goto(), cPtsIndex::IsEmpty(), cThread::IsMainThread(), playMode, pmPause, pmPlay, ptsIndex, and resyncAfterPause.

§ SetMarks()

void cDvbPlayer::SetMarks ( cMarks Marks)

Definition at line 314 of file dvbplayer.c.

References marks.

Referenced by cDvbPlayerControl::SetMarks().

§ SkipFrames()

int cDvbPlayer::SkipFrames ( int  Frames)

Definition at line 826 of file dvbplayer.c.

References GetIndex(), cIndexFile::GetNextIFrame(), and index.

Referenced by cDvbPlayerControl::SkipFrames().

§ SkipSeconds()

void cDvbPlayer::SkipSeconds ( int  Seconds)

§ TrickSpeed()

void cDvbPlayer::TrickSpeed ( int  Increment)
private

Member Data Documentation

§ dropFrame

cFrame* cDvbPlayer::dropFrame
private

Definition at line 229 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and Empty().

§ eof

bool cDvbPlayer::eof
private

Definition at line 220 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and NextFile().

§ fileName

cFileName* cDvbPlayer::fileName
private

Definition at line 214 of file dvbplayer.c.

Referenced by cDvbPlayer(), NextFile(), and ~cDvbPlayer().

§ firstPacket

bool cDvbPlayer::firstPacket
private

Definition at line 221 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and Empty().

§ framesPerSecond

double cDvbPlayer::framesPerSecond
private

Definition at line 217 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), Save(), and SkipSeconds().

§ index

cIndexFile* cDvbPlayer::index
private

§ isPesRecording

bool cDvbPlayer::isPesRecording
private

Definition at line 218 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and Goto().

§ marks

cMarks* cDvbPlayer::marks
private

Definition at line 213 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), Save(), and SetMarks().

§ nonBlockingFileReader

cNonBlockingFileReader* cDvbPlayer::nonBlockingFileReader
private

Definition at line 210 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and Empty().

§ pauseLive

bool cDvbPlayer::pauseLive
private

Definition at line 219 of file dvbplayer.c.

Referenced by Action(), and cDvbPlayer().

§ playDir

ePlayDirs cDvbPlayer::playDir
private

Definition at line 223 of file dvbplayer.c.

Referenced by Action(), Backward(), cDvbPlayer(), Forward(), GetReplayMode(), Pause(), Play(), and TrickSpeed().

§ playFrame

cFrame* cDvbPlayer::playFrame
private

Definition at line 228 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), and Empty().

§ playMode

ePlayModes cDvbPlayer::playMode
private

§ ptsIndex

cPtsIndex cDvbPlayer::ptsIndex
private

Definition at line 212 of file dvbplayer.c.

Referenced by Action(), Empty(), GetIndex(), Goto(), Save(), SetAudioTrack(), and SkipSeconds().

§ readFrame

cFrame* cDvbPlayer::readFrame
private

Definition at line 227 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), Empty(), and ~cDvbPlayer().

§ readIndependent

bool cDvbPlayer::readIndependent
private

Definition at line 226 of file dvbplayer.c.

Referenced by Action(), and cDvbPlayer().

§ readIndex

int cDvbPlayer::readIndex
private

Definition at line 225 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), Empty(), Goto(), and SkipSeconds().

§ replayFile

cUnbufferedFile* cDvbPlayer::replayFile
private

Definition at line 216 of file dvbplayer.c.

Referenced by Action(), Activate(), cDvbPlayer(), Goto(), and NextFile().

§ resyncAfterPause

bool cDvbPlayer::resyncAfterPause
private

Definition at line 230 of file dvbplayer.c.

Referenced by cDvbPlayer(), Play(), and SetAudioTrack().

§ ringBuffer

cRingBufferFrame* cDvbPlayer::ringBuffer
private

Definition at line 211 of file dvbplayer.c.

Referenced by Action(), cDvbPlayer(), Empty(), and ~cDvbPlayer().

§ Speeds

int cDvbPlayer::Speeds = { 0, -2, -4, -8, 1, 2, 4, 12, 0 }
staticprivate

Definition at line 209 of file dvbplayer.c.

Referenced by TrickSpeed().

§ trickSpeed

int cDvbPlayer::trickSpeed
private

Definition at line 224 of file dvbplayer.c.

Referenced by Backward(), cDvbPlayer(), Forward(), GetReplayMode(), and TrickSpeed().


The documentation for this class was generated from the following file: