Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
CVideoPlayer Class Reference

#include <VideoPlayer.h>

Inheritance diagram for CVideoPlayer:
IPlayer CThread IVideoPlayer IDispResource IRenderLoop IRenderMsg

Classes

struct  SContent
 
struct  SDVDInfo
 
struct  SSpeedState
 

Public Member Functions

 CVideoPlayer (IPlayerCallback &callback)
 
 ~CVideoPlayer () override
 
bool OpenFile (const CFileItem &file, const CPlayerOptions &options) override
 
bool CloseFile (bool reopen=false) override
 
bool IsPlaying () const override
 
void Pause () override
 
bool HasVideo () const override
 
bool HasAudio () const override
 
bool HasRDS () const override
 
bool IsPassthrough () const override
 
bool CanSeek () override
 
void Seek (bool bPlus, bool bLargeStep, bool bChapterOverride) override
 
bool SeekScene (bool bPlus=true) override
 
void SeekPercentage (float iPercent) override
 
float GetCachePercentage () override
 
void SetVolume (float nVolume) override
 
void SetMute (bool bOnOff) override
 
void SetDynamicRangeCompression (long drc) override
 
bool CanPause () override
 
void SetAVDelay (float fValue=0.0f) override
 
float GetAVDelay () override
 
bool IsInMenu () const override
 
bool HasMenu () const override
 
void SetSubTitleDelay (float fValue=0.0f) override
 
float GetSubTitleDelay () override
 
int GetSubtitleCount () override
 
int GetSubtitle () override
 
void GetSubtitleStreamInfo (int index, SubtitleStreamInfo &info) override
 
void SetSubtitle (int iStream) override
 
bool GetSubtitleVisible () override
 
void SetSubtitleVisible (bool bVisible) override
 
void AddSubtitle (const std::string &strSubPath) override
 Adds the subtitle(s) provided by the given file to the available player streams and actives the first of the added stream(s). E.g., vob subs can contain multiple streams. More...
 
int GetAudioStreamCount () override
 
int GetAudioStream () override
 
void SetAudioStream (int iStream) override
 
int GetVideoStream () const override
 
int GetVideoStreamCount () const override
 
void GetVideoStreamInfo (int streamId, VideoStreamInfo &info) override
 
void SetVideoStream (int iStream) override
 
int GetPrograms (std::vector< ProgramInfo > &programs) override
 
void SetProgram (int progId) override
 
int GetProgramsCount () override
 
std::shared_ptr< TextCacheStruct_tGetTeletextCache () override
 
void LoadPage (int p, int sp, unsigned char *buffer) override
 
std::string GetRadioText (unsigned int line) override
 
int GetChapterCount () override
 
int GetChapter () override
 
void GetChapterName (std::string &strChapterName, int chapterIdx=-1) override
 
int64_t GetChapterPos (int chapterIdx=-1) override
 
int SeekChapter (int iChapter) override
 
void SeekTime (int64_t iTime) override
 
bool SeekTimeRelative (int64_t iTime) override
 
void SetSpeed (float speed) override
 
void SetTempo (float tempo) override
 
bool SupportsTempo () override
 
void FrameAdvance (int frames) override
 
bool OnAction (const CAction &action) override
 
void GetAudioStreamInfo (int index, AudioStreamInfo &info) override
 
std::string GetPlayerState () override
 
bool SetPlayerState (const std::string &state) override
 
void FrameMove () override
 
void Render (bool clear, uint32_t alpha=255, bool gui=true) override
 hook into render loop of render thread More...
 
void FlushRenderer () override
 
void SetRenderViewMode (int mode, float zoom, float par, float shift, bool stretch) override
 
float GetRenderAspectRatio () override
 
void TriggerUpdateResolution () override
 
bool IsRenderingVideo () override
 
bool Supports (EINTERLACEMETHOD method) override
 
EINTERLACEMETHOD GetDeinterlacingMethodDefault () override
 
bool Supports (ESCALINGMETHOD method) override
 
bool Supports (ERENDERFEATURE feature) override
 
unsigned int RenderCaptureAlloc () override
 
void RenderCapture (unsigned int captureId, unsigned int width, unsigned int height, int flags) override
 
void RenderCaptureRelease (unsigned int captureId) override
 
bool RenderCaptureGetPixels (unsigned int captureId, unsigned int millis, uint8_t *buffer, unsigned int size) override
 
void OnLostDisplay () override
 
void OnResetDisplay () override
 
bool IsCaching () const override
 
int GetCacheLevel () const override
 
int OnDiscNavResult (void *pData, int iMessage) override
 
void GetVideoResolution (unsigned int &width, unsigned int &height) override
 
CVideoSettings GetVideoSettings () override
 
void SetVideoSettings (CVideoSettings &settings) override
 
void SetUpdateStreamDetails ()
 
- Public Member Functions inherited from IPlayer
 IPlayer (IPlayerCallback &callback)
 
virtual ~IPlayer ()=default
 
virtual bool Initialize (TiXmlElement *pConfig)
 
virtual bool QueueNextFile (const CFileItem &file)
 
virtual void OnNothingToQueueNotify ()
 
virtual bool HasGame () const
 
virtual void SetTime (int64_t time)
 Sets the current time. This can be used for injecting the current time. This is not to be confused with a seek. It just can be used if endless streams contain multiple tracks in reality (like with airtunes) More...
 
virtual void SetTotalTime (int64_t time)
 Set the total time in milliseconds this can be used for injecting the duration in case its not available in the underlaying decoder (airtunes for example) More...
 
virtual void DoAudioWork ()
 
virtual void GetAudioCapabilities (std::vector< int > &audioCaps)
 
virtual void GetSubtitleCapabilities (std::vector< int > &subCaps)
 define the subtitle capabilities of the player More...
 
virtual bool HasGameAgent ()
 Check if any players are playing a game. More...
 
- Public Member Functions inherited from CThread
 CThread (IRunnable *pRunnable, const char *ThreadName)
 
virtual ~CThread ()
 
void Create (bool bAutoDelete=false, unsigned stacksize=0)
 
void Sleep (unsigned int milliseconds)
 
int GetSchedRRPriority (void)
 
bool SetPrioritySched_RR (int iPriority)
 
bool IsAutoDelete () const
 
virtual void StopThread (bool bWait=true)
 
bool IsRunning () const
 
bool IsCurrentThread () const
 
int GetMinPriority (void)
 
int GetMaxPriority (void)
 
int GetNormalPriority (void)
 
int GetPriority (void)
 
bool SetPriority (const int iPriority)
 
bool WaitForThreadExit (unsigned int milliseconds)
 
float GetRelativeUsage ()
 
int64_t GetAbsoluteUsage ()
 
virtual void OnException ()
 
- Public Member Functions inherited from IVideoPlayer
virtual ~IVideoPlayer ()=default
 
- Public Member Functions inherited from IDispResource
virtual void OnAppFocusChange (bool focus)
 
- Public Member Functions inherited from IRenderMsg
virtual ~IRenderMsg ()=default
 

Protected Types

enum  ECacheState {
  CACHESTATE_DONE = 0 , CACHESTATE_FULL , CACHESTATE_INIT , CACHESTATE_PLAY ,
  CACHESTATE_FLUSH
}
 
- Protected Types inherited from CThread
enum  WaitResponse { WAIT_INTERRUPTED = -1 , WAIT_SIGNALED = 0 , WAIT_TIMEDOUT = 1 }
 

Protected Member Functions

void OnStartup () override
 
void OnExit () override
 
void Process () override
 
void VideoParamsChange () override
 
void GetDebugInfo (std::string &audio, std::string &video, std::string &general) override
 
void UpdateClockSync (bool enabled) override
 
void UpdateRenderInfo (CRenderInfo &info) override
 
void UpdateRenderBuffers (int queued, int discard, int free) override
 
void UpdateGuiRender (bool gui) override
 
void UpdateVideoRender (bool video) override
 
void CreatePlayers ()
 
void DestroyPlayers ()
 
void Prepare ()
 
bool OpenStream (CCurrentStream &current, int64_t demuxerId, int iStream, int source, bool reset=true)
 
bool OpenAudioStream (CDVDStreamInfo &hint, bool reset=true)
 
bool OpenVideoStream (CDVDStreamInfo &hint, bool reset=true)
 
bool OpenSubtitleStream (CDVDStreamInfo &hint)
 
bool OpenTeletextStream (CDVDStreamInfo &hint)
 
bool OpenRadioRDSStream (CDVDStreamInfo &hint)
 
void AdaptForcedSubtitles ()
 Switches forced subtitles to forced subtitles matching the language of the current audio track. If these are not available, subtitles are disabled. More...
 
bool CloseStream (CCurrentStream &current, bool bWaitForBuffers)
 
bool CheckIsCurrent (CCurrentStream &current, CDemuxStream *stream, DemuxPacket *pkg)
 
void ProcessPacket (CDemuxStream *pStream, DemuxPacket *pPacket)
 
void ProcessAudioData (CDemuxStream *pStream, DemuxPacket *pPacket)
 
void ProcessVideoData (CDemuxStream *pStream, DemuxPacket *pPacket)
 
void ProcessSubData (CDemuxStream *pStream, DemuxPacket *pPacket)
 
void ProcessTeletextData (CDemuxStream *pStream, DemuxPacket *pPacket)
 
void ProcessRadioRDSData (CDemuxStream *pStream, DemuxPacket *pPacket)
 
int AddSubtitleFile (const std::string &filename, const std::string &subfilename="")
 
void SetSubtitleVisibleInternal (bool bVisible)
 
void SetPlaySpeed (int iSpeed)
 
void SetCaching (ECacheState state)
 
double GetQueueTime ()
 
bool GetCachingTimes (double &play_left, double &cache_left, double &file_offset)
 
void FlushBuffers (double pts, bool accurate, bool sync)
 
void HandleMessages ()
 
void HandlePlaySpeed ()
 
bool IsInMenuInternal () const
 
void SynchronizeDemuxer ()
 
void CheckAutoSceneSkip ()
 
bool CheckContinuity (CCurrentStream &current, DemuxPacket *pPacket)
 
bool CheckSceneSkip (CCurrentStream &current)
 
bool CheckPlayerInit (CCurrentStream &current)
 
void UpdateCorrection (DemuxPacket *pkt, double correction)
 
void UpdateTimestamps (CCurrentStream &current, DemuxPacket *pPacket)
 
IDVDStreamPlayerGetStreamPlayer (unsigned int player)
 
void SendPlayerMessage (CDVDMsg *pMsg, unsigned int target)
 
bool ReadPacket (DemuxPacket *&packet, CDemuxStream *&stream)
 
bool IsValidStream (CCurrentStream &stream)
 
bool IsBetterStream (CCurrentStream &current, CDemuxStream *stream)
 
void CheckBetterStream (CCurrentStream &current, CDemuxStream *stream)
 
void CheckStreamChanges (CCurrentStream &current, CDemuxStream *stream)
 
bool OpenInputStream ()
 
bool OpenDemuxStream ()
 
void CloseDemuxer ()
 
void OpenDefaultStreams (bool reset=true)
 
void UpdatePlayState (double timeout)
 
void GetGeneralInfo (std::string &strVideoInfo)
 
int64_t GetUpdatedTime ()
 
int64_t GetTime ()
 
float GetPercentage ()
 
void UpdateContent ()
 
void UpdateContentState ()
 
void UpdateFileItemStreamDetails (CFileItem &item)
 
- Protected Member Functions inherited from CThread
 CThread (const char *ThreadName)
 
WaitResponse AbortableWait (CEvent &event, int timeoutMillis=-1)
 

Protected Attributes

bool m_players_created
 
CFileItem m_item
 
CPlayerOptions m_playerOptions
 
bool m_bAbortRequest
 
bool m_error
 
ECacheState m_caching
 
XbmcThreads::EndTime m_cachingTimer
 
std::unique_ptr< CProcessInfom_processInfo
 
CCurrentStream m_CurrentAudio
 
CCurrentStream m_CurrentVideo
 
CCurrentStream m_CurrentSubtitle
 
CCurrentStream m_CurrentTeletext
 
CCurrentStream m_CurrentRadioRDS
 
CSelectionStreams m_SelectionStreams
 
std::vector< ProgramInfom_programs
 
struct CVideoPlayer::SContent m_content
 
int m_playSpeed
 
int m_streamPlayerSpeed
 
int m_demuxerSpeed = DVD_PLAYSPEED_NORMAL
 
struct CVideoPlayer::SSpeedState m_SpeedState
 
double m_offset_pts
 
CDVDMessageQueue m_messenger
 
std::unique_ptr< CJobQueuem_outboundEvents
 
IDVDStreamPlayerVideom_VideoPlayerVideo
 
IDVDStreamPlayerAudiom_VideoPlayerAudio
 
CVideoPlayerSubtitlem_VideoPlayerSubtitle
 
CDVDTeletextDatam_VideoPlayerTeletext
 
CDVDRadioRDSDatam_VideoPlayerRadioRDS
 
CDVDClock m_clock
 
CDVDOverlayContainer m_overlayContainer
 
std::shared_ptr< CDVDInputStreamm_pInputStream
 
CDVDDemuxm_pDemuxer
 
std::shared_ptr< CDVDDemuxm_pSubtitleDemuxer
 
std::unordered_map< int64_t, std::shared_ptr< CDVDDemux > > m_subtitleDemuxerMap
 
CDVDDemuxCCm_pCCDemuxer
 
CRenderManager m_renderManager
 
struct CVideoPlayer::SDVDInfo m_dvd
 
SPlayerState m_State
 
CCriticalSection m_StateSection
 
XbmcThreads::EndTime m_syncTimer
 
CEdl m_Edl
 
bool m_SkipCommercials
 
bool m_HasVideo
 
bool m_HasAudio
 
bool m_UpdateStreamDetails
 
std::atomic< bool > m_displayLost
 
struct SOmxPlayerState m_OmxPlayerState
 
bool m_omxplayer_mode
 
- Protected Attributes inherited from IPlayer
IPlayerCallbackm_callback
 
- Protected Attributes inherited from CThread
std::atomic< bool > m_bStop
 

Friends

class CSelectionStreams
 

Additional Inherited Members

- Static Public Member Functions inherited from CThread
static bool IsCurrentThread (const ThreadIdentifier tid)
 
static ThreadIdentifier GetCurrentThreadId ()
 
static ThreadIdentifier GetDisplayThreadId (const ThreadIdentifier tid)
 
static CThreadGetCurrentThread ()
 
- Public Attributes inherited from IPlayer
std::string m_name
 
std::string m_type
 

Member Enumeration Documentation

◆ ECacheState

enum CVideoPlayer::ECacheState
protected
Enumerator
CACHESTATE_DONE 
CACHESTATE_FULL 
CACHESTATE_INIT 
CACHESTATE_PLAY 
CACHESTATE_FLUSH 

Constructor & Destructor Documentation

◆ CVideoPlayer()

CVideoPlayer::CVideoPlayer ( IPlayerCallback callback)
explicit

◆ ~CVideoPlayer()

CVideoPlayer::~CVideoPlayer ( )
override

Member Function Documentation

◆ AdaptForcedSubtitles()

void CVideoPlayer::AdaptForcedSubtitles ( )
protected

Switches forced subtitles to forced subtitles matching the language of the current audio track. If these are not available, subtitles are disabled.

◆ AddSubtitle()

void CVideoPlayer::AddSubtitle ( const std::string &  strSubPath)
overridevirtual

Adds the subtitle(s) provided by the given file to the available player streams and actives the first of the added stream(s). E.g., vob subs can contain multiple streams.

Parameters
[in]strSubPathThe full path of the subtitle file.

Reimplemented from IPlayer.

◆ AddSubtitleFile()

int CVideoPlayer::AddSubtitleFile ( const std::string &  filename,
const std::string &  subfilename = "" 
)
protected

◆ CanPause()

bool CVideoPlayer::CanPause ( )
overridevirtual

Reimplemented from IPlayer.

◆ CanSeek()

bool CVideoPlayer::CanSeek ( )
overridevirtual

Reimplemented from IPlayer.

◆ CheckAutoSceneSkip()

void CVideoPlayer::CheckAutoSceneSkip ( )
protected

◆ CheckBetterStream()

void CVideoPlayer::CheckBetterStream ( CCurrentStream current,
CDemuxStream stream 
)
protected

◆ CheckContinuity()

bool CVideoPlayer::CheckContinuity ( CCurrentStream current,
DemuxPacket pPacket 
)
protected

◆ CheckIsCurrent()

bool CVideoPlayer::CheckIsCurrent ( CCurrentStream current,
CDemuxStream stream,
DemuxPacket pkg 
)
protected

◆ CheckPlayerInit()

bool CVideoPlayer::CheckPlayerInit ( CCurrentStream current)
protected

◆ CheckSceneSkip()

bool CVideoPlayer::CheckSceneSkip ( CCurrentStream current)
protected

◆ CheckStreamChanges()

void CVideoPlayer::CheckStreamChanges ( CCurrentStream current,
CDemuxStream stream 
)
protected

◆ CloseDemuxer()

void CVideoPlayer::CloseDemuxer ( )
protected

◆ CloseFile()

bool CVideoPlayer::CloseFile ( bool  reopen = false)
overridevirtual

Implements IPlayer.

◆ CloseStream()

bool CVideoPlayer::CloseStream ( CCurrentStream current,
bool  bWaitForBuffers 
)
protected

◆ CreatePlayers()

void CVideoPlayer::CreatePlayers ( )
protected

◆ DestroyPlayers()

void CVideoPlayer::DestroyPlayers ( )
protected

◆ FlushBuffers()

void CVideoPlayer::FlushBuffers ( double  pts,
bool  accurate,
bool  sync 
)
protected

◆ FlushRenderer()

void CVideoPlayer::FlushRenderer ( )
overridevirtual

Reimplemented from IPlayer.

◆ FrameAdvance()

void CVideoPlayer::FrameAdvance ( int  frames)
overridevirtual

Reimplemented from IPlayer.

◆ FrameMove()

void CVideoPlayer::FrameMove ( )
overridevirtual

Implements IRenderLoop.

◆ GetAudioStream()

int CVideoPlayer::GetAudioStream ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetAudioStreamCount()

int CVideoPlayer::GetAudioStreamCount ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetAudioStreamInfo()

void CVideoPlayer::GetAudioStreamInfo ( int  index,
AudioStreamInfo info 
)
overridevirtual

Reimplemented from IPlayer.

◆ GetAVDelay()

float CVideoPlayer::GetAVDelay ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetCacheLevel()

int CVideoPlayer::GetCacheLevel ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetCachePercentage()

float CVideoPlayer::GetCachePercentage ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetCachingTimes()

bool CVideoPlayer::GetCachingTimes ( double &  play_left,
double &  cache_left,
double &  file_offset 
)
protected

◆ GetChapter()

int CVideoPlayer::GetChapter ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetChapterCount()

int CVideoPlayer::GetChapterCount ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetChapterName()

void CVideoPlayer::GetChapterName ( std::string &  strChapterName,
int  chapterIdx = -1 
)
overridevirtual

Reimplemented from IPlayer.

◆ GetChapterPos()

int64_t CVideoPlayer::GetChapterPos ( int  chapterIdx = -1)
overridevirtual

Reimplemented from IPlayer.

◆ GetDebugInfo()

void CVideoPlayer::GetDebugInfo ( std::string &  audio,
std::string &  video,
std::string &  general 
)
overrideprotectedvirtual

Implements IRenderMsg.

◆ GetDeinterlacingMethodDefault()

EINTERLACEMETHOD CVideoPlayer::GetDeinterlacingMethodDefault ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetGeneralInfo()

void CVideoPlayer::GetGeneralInfo ( std::string &  strVideoInfo)
protected

◆ GetPercentage()

float CVideoPlayer::GetPercentage ( )
protected

◆ GetPlayerState()

std::string CVideoPlayer::GetPlayerState ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetPrograms()

int CVideoPlayer::GetPrograms ( std::vector< ProgramInfo > &  programs)
overridevirtual

Reimplemented from IPlayer.

◆ GetProgramsCount()

int CVideoPlayer::GetProgramsCount ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetQueueTime()

double CVideoPlayer::GetQueueTime ( )
protected

◆ GetRadioText()

std::string CVideoPlayer::GetRadioText ( unsigned int  line)
overridevirtual

Reimplemented from IPlayer.

◆ GetRenderAspectRatio()

float CVideoPlayer::GetRenderAspectRatio ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetStreamPlayer()

IDVDStreamPlayer * CVideoPlayer::GetStreamPlayer ( unsigned int  player)
protected

◆ GetSubtitle()

int CVideoPlayer::GetSubtitle ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetSubtitleCount()

int CVideoPlayer::GetSubtitleCount ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetSubTitleDelay()

float CVideoPlayer::GetSubTitleDelay ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetSubtitleStreamInfo()

void CVideoPlayer::GetSubtitleStreamInfo ( int  index,
SubtitleStreamInfo info 
)
overridevirtual

Reimplemented from IPlayer.

◆ GetSubtitleVisible()

bool CVideoPlayer::GetSubtitleVisible ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetTeletextCache()

std::shared_ptr< TextCacheStruct_t > CVideoPlayer::GetTeletextCache ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetTime()

int64_t CVideoPlayer::GetTime ( )
protected

◆ GetUpdatedTime()

int64_t CVideoPlayer::GetUpdatedTime ( )
protected

◆ GetVideoResolution()

void CVideoPlayer::GetVideoResolution ( unsigned int &  width,
unsigned int &  height 
)
overridevirtual

Implements IVideoPlayer.

◆ GetVideoSettings()

CVideoSettings CVideoPlayer::GetVideoSettings ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetVideoStream()

int CVideoPlayer::GetVideoStream ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetVideoStreamCount()

int CVideoPlayer::GetVideoStreamCount ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetVideoStreamInfo()

void CVideoPlayer::GetVideoStreamInfo ( int  streamId,
VideoStreamInfo info 
)
overridevirtual

Reimplemented from IPlayer.

◆ HandleMessages()

void CVideoPlayer::HandleMessages ( )
protected
Todo:
After demuxer we add an offset to input pts so that displayed time and clock are increasing steadily. For seeking we need to determine the boundaries and offset of the desired segment. With the current approach calculated time may point to nirvana

◆ HandlePlaySpeed()

void CVideoPlayer::HandlePlaySpeed ( )
protected

◆ HasAudio()

bool CVideoPlayer::HasAudio ( ) const
overridevirtual

Implements IPlayer.

◆ HasMenu()

bool CVideoPlayer::HasMenu ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ HasRDS()

bool CVideoPlayer::HasRDS ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ HasVideo()

bool CVideoPlayer::HasVideo ( ) const
overridevirtual

Implements IPlayer.

◆ IsBetterStream()

bool CVideoPlayer::IsBetterStream ( CCurrentStream current,
CDemuxStream stream 
)
protected

◆ IsCaching()

bool CVideoPlayer::IsCaching ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ IsInMenu()

bool CVideoPlayer::IsInMenu ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ IsInMenuInternal()

bool CVideoPlayer::IsInMenuInternal ( ) const
protected

◆ IsPassthrough()

bool CVideoPlayer::IsPassthrough ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ IsPlaying()

bool CVideoPlayer::IsPlaying ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ IsRenderingVideo()

bool CVideoPlayer::IsRenderingVideo ( )
overridevirtual

Reimplemented from IPlayer.

◆ IsValidStream()

bool CVideoPlayer::IsValidStream ( CCurrentStream stream)
protected

◆ LoadPage()

void CVideoPlayer::LoadPage ( int  p,
int  sp,
unsigned char *  buffer 
)
overridevirtual

Reimplemented from IPlayer.

◆ OnAction()

bool CVideoPlayer::OnAction ( const CAction action)
overridevirtual

Reimplemented from IPlayer.

◆ OnDiscNavResult()

int CVideoPlayer::OnDiscNavResult ( void pData,
int  iMessage 
)
overridevirtual

Implements IVideoPlayer.

◆ OnExit()

void CVideoPlayer::OnExit ( )
overrideprotectedvirtual

Reimplemented from CThread.

◆ OnLostDisplay()

void CVideoPlayer::OnLostDisplay ( )
overridevirtual

Reimplemented from IDispResource.

◆ OnResetDisplay()

void CVideoPlayer::OnResetDisplay ( )
overridevirtual

Reimplemented from IDispResource.

◆ OnStartup()

void CVideoPlayer::OnStartup ( )
overrideprotectedvirtual

Reimplemented from CThread.

◆ OpenAudioStream()

bool CVideoPlayer::OpenAudioStream ( CDVDStreamInfo hint,
bool  reset = true 
)
protected

◆ OpenDefaultStreams()

void CVideoPlayer::OpenDefaultStreams ( bool  reset = true)
protected

◆ OpenDemuxStream()

bool CVideoPlayer::OpenDemuxStream ( )
protected

◆ OpenFile()

bool CVideoPlayer::OpenFile ( const CFileItem file,
const CPlayerOptions options 
)
overridevirtual

Reimplemented from IPlayer.

◆ OpenInputStream()

bool CVideoPlayer::OpenInputStream ( )
protected

◆ OpenRadioRDSStream()

bool CVideoPlayer::OpenRadioRDSStream ( CDVDStreamInfo hint)
protected

◆ OpenStream()

bool CVideoPlayer::OpenStream ( CCurrentStream current,
int64_t  demuxerId,
int  iStream,
int  source,
bool  reset = true 
)
protected

◆ OpenSubtitleStream()

bool CVideoPlayer::OpenSubtitleStream ( CDVDStreamInfo hint)
protected

◆ OpenTeletextStream()

bool CVideoPlayer::OpenTeletextStream ( CDVDStreamInfo hint)
protected

◆ OpenVideoStream()

bool CVideoPlayer::OpenVideoStream ( CDVDStreamInfo hint,
bool  reset = true 
)
protected

◆ Pause()

void CVideoPlayer::Pause ( )
overridevirtual

Implements IPlayer.

◆ Prepare()

void CVideoPlayer::Prepare ( )
protected

◆ Process()

void CVideoPlayer::Process ( void  )
overrideprotectedvirtual

Reimplemented from CThread.

◆ ProcessAudioData()

void CVideoPlayer::ProcessAudioData ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ProcessPacket()

void CVideoPlayer::ProcessPacket ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ProcessRadioRDSData()

void CVideoPlayer::ProcessRadioRDSData ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ProcessSubData()

void CVideoPlayer::ProcessSubData ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ProcessTeletextData()

void CVideoPlayer::ProcessTeletextData ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ProcessVideoData()

void CVideoPlayer::ProcessVideoData ( CDemuxStream pStream,
DemuxPacket pPacket 
)
protected

◆ ReadPacket()

bool CVideoPlayer::ReadPacket ( DemuxPacket *&  packet,
CDemuxStream *&  stream 
)
protected

◆ Render()

void CVideoPlayer::Render ( bool  clear,
uint32_t  alpha = 255,
bool  gui = true 
)
overridevirtual

hook into render loop of render thread

Reimplemented from IPlayer.

◆ RenderCapture()

void CVideoPlayer::RenderCapture ( unsigned int  captureId,
unsigned int  width,
unsigned int  height,
int  flags 
)
overridevirtual

Reimplemented from IPlayer.

◆ RenderCaptureAlloc()

unsigned int CVideoPlayer::RenderCaptureAlloc ( )
overridevirtual

Reimplemented from IPlayer.

◆ RenderCaptureGetPixels()

bool CVideoPlayer::RenderCaptureGetPixels ( unsigned int  captureId,
unsigned int  millis,
uint8_t buffer,
unsigned int  size 
)
overridevirtual

Reimplemented from IPlayer.

◆ RenderCaptureRelease()

void CVideoPlayer::RenderCaptureRelease ( unsigned int  captureId)
overridevirtual

Reimplemented from IPlayer.

◆ Seek()

void CVideoPlayer::Seek ( bool  bPlus,
bool  bLargeStep,
bool  bChapterOverride 
)
overridevirtual

Implements IPlayer.

◆ SeekChapter()

int CVideoPlayer::SeekChapter ( int  iChapter)
overridevirtual

Reimplemented from IPlayer.

◆ SeekPercentage()

void CVideoPlayer::SeekPercentage ( float  iPercent)
overridevirtual

Reimplemented from IPlayer.

◆ SeekScene()

bool CVideoPlayer::SeekScene ( bool  bPlus = true)
overridevirtual

Reimplemented from IPlayer.

◆ SeekTime()

void CVideoPlayer::SeekTime ( int64_t  iTime)
overridevirtual

Reimplemented from IPlayer.

◆ SeekTimeRelative()

bool CVideoPlayer::SeekTimeRelative ( int64_t  iTime)
overridevirtual

Reimplemented from IPlayer.

◆ SendPlayerMessage()

void CVideoPlayer::SendPlayerMessage ( CDVDMsg pMsg,
unsigned int  target 
)
protected

◆ SetAudioStream()

void CVideoPlayer::SetAudioStream ( int  iStream)
overridevirtual

Reimplemented from IPlayer.

◆ SetAVDelay()

void CVideoPlayer::SetAVDelay ( float  fValue = 0.0f)
overridevirtual

Reimplemented from IPlayer.

◆ SetCaching()

void CVideoPlayer::SetCaching ( ECacheState  state)
protected

◆ SetDynamicRangeCompression()

void CVideoPlayer::SetDynamicRangeCompression ( long  drc)
overridevirtual

Reimplemented from IPlayer.

◆ SetMute()

void CVideoPlayer::SetMute ( bool  bOnOff)
overridevirtual

Reimplemented from IPlayer.

◆ SetPlayerState()

bool CVideoPlayer::SetPlayerState ( const std::string &  state)
overridevirtual

Reimplemented from IPlayer.

◆ SetPlaySpeed()

void CVideoPlayer::SetPlaySpeed ( int  iSpeed)
protected

one of the DVD_PLAYSPEED defines

◆ SetProgram()

void CVideoPlayer::SetProgram ( int  progId)
overridevirtual

Reimplemented from IPlayer.

◆ SetRenderViewMode()

void CVideoPlayer::SetRenderViewMode ( int  mode,
float  zoom,
float  par,
float  shift,
bool  stretch 
)
overridevirtual

Reimplemented from IPlayer.

◆ SetSpeed()

void CVideoPlayer::SetSpeed ( float  speed)
overridevirtual

Implements IPlayer.

◆ SetSubtitle()

void CVideoPlayer::SetSubtitle ( int  iStream)
overridevirtual

Reimplemented from IPlayer.

◆ SetSubTitleDelay()

void CVideoPlayer::SetSubTitleDelay ( float  fValue = 0.0f)
overridevirtual

Reimplemented from IPlayer.

◆ SetSubtitleVisible()

void CVideoPlayer::SetSubtitleVisible ( bool  bVisible)
overridevirtual

Reimplemented from IPlayer.

◆ SetSubtitleVisibleInternal()

void CVideoPlayer::SetSubtitleVisibleInternal ( bool  bVisible)
protected

◆ SetTempo()

void CVideoPlayer::SetTempo ( float  tempo)
overridevirtual

Reimplemented from IPlayer.

◆ SetUpdateStreamDetails()

void CVideoPlayer::SetUpdateStreamDetails ( )

◆ SetVideoSettings()

void CVideoPlayer::SetVideoSettings ( CVideoSettings settings)
overridevirtual

Reimplemented from IPlayer.

◆ SetVideoStream()

void CVideoPlayer::SetVideoStream ( int  iStream)
overridevirtual

Reimplemented from IPlayer.

◆ SetVolume()

void CVideoPlayer::SetVolume ( float  nVolume)
overridevirtual

Reimplemented from IPlayer.

◆ Supports() [1/3]

bool CVideoPlayer::Supports ( EINTERLACEMETHOD  method)
overridevirtual

Reimplemented from IPlayer.

◆ Supports() [2/3]

bool CVideoPlayer::Supports ( ERENDERFEATURE  feature)
overridevirtual

Reimplemented from IPlayer.

◆ Supports() [3/3]

bool CVideoPlayer::Supports ( ESCALINGMETHOD  method)
overridevirtual

Reimplemented from IPlayer.

◆ SupportsTempo()

bool CVideoPlayer::SupportsTempo ( )
overridevirtual

Reimplemented from IPlayer.

◆ SynchronizeDemuxer()

void CVideoPlayer::SynchronizeDemuxer ( )
protected

◆ TriggerUpdateResolution()

void CVideoPlayer::TriggerUpdateResolution ( )
overridevirtual

Reimplemented from IPlayer.

◆ UpdateClockSync()

void CVideoPlayer::UpdateClockSync ( bool  enabled)
overrideprotectedvirtual

Implements IRenderMsg.

◆ UpdateContent()

void CVideoPlayer::UpdateContent ( )
protected

◆ UpdateContentState()

void CVideoPlayer::UpdateContentState ( )
protected

◆ UpdateCorrection()

void CVideoPlayer::UpdateCorrection ( DemuxPacket pkt,
double  correction 
)
protected

◆ UpdateFileItemStreamDetails()

void CVideoPlayer::UpdateFileItemStreamDetails ( CFileItem item)
protected

◆ UpdateGuiRender()

void CVideoPlayer::UpdateGuiRender ( bool  gui)
overrideprotectedvirtual

Implements IRenderMsg.

◆ UpdatePlayState()

void CVideoPlayer::UpdatePlayState ( double  timeout)
protected

◆ UpdateRenderBuffers()

void CVideoPlayer::UpdateRenderBuffers ( int  queued,
int  discard,
int  free 
)
overrideprotectedvirtual

Implements IRenderMsg.

◆ UpdateRenderInfo()

void CVideoPlayer::UpdateRenderInfo ( CRenderInfo info)
overrideprotectedvirtual

Implements IRenderMsg.

◆ UpdateTimestamps()

void CVideoPlayer::UpdateTimestamps ( CCurrentStream current,
DemuxPacket pPacket 
)
protected

◆ UpdateVideoRender()

void CVideoPlayer::UpdateVideoRender ( bool  video)
overrideprotectedvirtual

Implements IRenderMsg.

◆ VideoParamsChange()

void CVideoPlayer::VideoParamsChange ( )
overrideprotectedvirtual

Implements IRenderMsg.

Friends And Related Function Documentation

◆ CSelectionStreams

friend class CSelectionStreams
friend

Member Data Documentation

◆ m_bAbortRequest

bool CVideoPlayer::m_bAbortRequest
protected

◆ m_caching

ECacheState CVideoPlayer::m_caching
protected

◆ m_cachingTimer

XbmcThreads::EndTime CVideoPlayer::m_cachingTimer
protected

◆ m_clock

CDVDClock CVideoPlayer::m_clock
protected

◆ m_content

struct CVideoPlayer::SContent CVideoPlayer::m_content
protected

◆ m_CurrentAudio

CCurrentStream CVideoPlayer::m_CurrentAudio
protected

◆ m_CurrentRadioRDS

CCurrentStream CVideoPlayer::m_CurrentRadioRDS
protected

◆ m_CurrentSubtitle

CCurrentStream CVideoPlayer::m_CurrentSubtitle
protected

◆ m_CurrentTeletext

CCurrentStream CVideoPlayer::m_CurrentTeletext
protected

◆ m_CurrentVideo

CCurrentStream CVideoPlayer::m_CurrentVideo
protected

◆ m_demuxerSpeed

int CVideoPlayer::m_demuxerSpeed = DVD_PLAYSPEED_NORMAL
protected

◆ m_displayLost

std::atomic<bool> CVideoPlayer::m_displayLost
protected

◆ m_dvd

struct CVideoPlayer::SDVDInfo CVideoPlayer::m_dvd
protected

◆ m_Edl

CEdl CVideoPlayer::m_Edl
protected

◆ m_error

bool CVideoPlayer::m_error
protected

◆ m_HasAudio

bool CVideoPlayer::m_HasAudio
protected

◆ m_HasVideo

bool CVideoPlayer::m_HasVideo
protected

◆ m_item

CFileItem CVideoPlayer::m_item
protected

◆ m_messenger

CDVDMessageQueue CVideoPlayer::m_messenger
protected

◆ m_offset_pts

double CVideoPlayer::m_offset_pts
protected

◆ m_omxplayer_mode

bool CVideoPlayer::m_omxplayer_mode
protected

◆ m_OmxPlayerState

struct SOmxPlayerState CVideoPlayer::m_OmxPlayerState
protected

◆ m_outboundEvents

std::unique_ptr<CJobQueue> CVideoPlayer::m_outboundEvents
protected

◆ m_overlayContainer

CDVDOverlayContainer CVideoPlayer::m_overlayContainer
protected

◆ m_pCCDemuxer

CDVDDemuxCC* CVideoPlayer::m_pCCDemuxer
protected

◆ m_pDemuxer

CDVDDemux* CVideoPlayer::m_pDemuxer
protected

◆ m_pInputStream

std::shared_ptr<CDVDInputStream> CVideoPlayer::m_pInputStream
protected

◆ m_playerOptions

CPlayerOptions CVideoPlayer::m_playerOptions
protected

◆ m_players_created

bool CVideoPlayer::m_players_created
protected

◆ m_playSpeed

int CVideoPlayer::m_playSpeed
protected

◆ m_processInfo

std::unique_ptr<CProcessInfo> CVideoPlayer::m_processInfo
protected

◆ m_programs

std::vector<ProgramInfo> CVideoPlayer::m_programs
protected

◆ m_pSubtitleDemuxer

std::shared_ptr<CDVDDemux> CVideoPlayer::m_pSubtitleDemuxer
protected

◆ m_renderManager

CRenderManager CVideoPlayer::m_renderManager
protected

◆ m_SelectionStreams

CSelectionStreams CVideoPlayer::m_SelectionStreams
protected

◆ m_SkipCommercials

bool CVideoPlayer::m_SkipCommercials
protected

◆ m_SpeedState

struct CVideoPlayer::SSpeedState CVideoPlayer::m_SpeedState
protected

◆ m_State

SPlayerState CVideoPlayer::m_State
protected

◆ m_StateSection

CCriticalSection CVideoPlayer::m_StateSection
mutableprotected

◆ m_streamPlayerSpeed

int CVideoPlayer::m_streamPlayerSpeed
protected

◆ m_subtitleDemuxerMap

std::unordered_map<int64_t, std::shared_ptr<CDVDDemux> > CVideoPlayer::m_subtitleDemuxerMap
protected

◆ m_syncTimer

XbmcThreads::EndTime CVideoPlayer::m_syncTimer
protected

◆ m_UpdateStreamDetails

bool CVideoPlayer::m_UpdateStreamDetails
protected

◆ m_VideoPlayerAudio

IDVDStreamPlayerAudio* CVideoPlayer::m_VideoPlayerAudio
protected

◆ m_VideoPlayerRadioRDS

CDVDRadioRDSData* CVideoPlayer::m_VideoPlayerRadioRDS
protected

◆ m_VideoPlayerSubtitle

CVideoPlayerSubtitle* CVideoPlayer::m_VideoPlayerSubtitle
protected

◆ m_VideoPlayerTeletext

CDVDTeletextData* CVideoPlayer::m_VideoPlayerTeletext
protected

◆ m_VideoPlayerVideo

IDVDStreamPlayerVideo* CVideoPlayer::m_VideoPlayerVideo
protected

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