Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
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 HasID3 () const override
 
bool IsPassthrough () const override
 
bool CanSeek () const override
 
void Seek (bool bPlus, bool bLargeStep, bool bChapterOverride) override
 
bool SeekScene (bool bPlus=true) override
 
void SeekPercentage (float iPercent) override
 
float GetCachePercentage () const override
 
void SetDynamicRangeCompression (long drc) override
 
bool CanPause () const override
 
void SetAVDelay (float fValue=0.0f) override
 
float GetAVDelay () override
 
bool IsInMenu () const override
 
MenuType GetSupportedMenuType () const override
 Get the supported menu type.
 
void SetSubTitleDelay (float fValue=0.0f) override
 
float GetSubTitleDelay () override
 
int GetSubtitleCount () const override
 
int GetSubtitle () override
 
void GetSubtitleStreamInfo (int index, SubtitleStreamInfo &info) const override
 
void SetSubtitle (int iStream) override
 
bool GetSubtitleVisible () const override
 
void SetSubtitleVisible (bool bVisible) override
 
void SetSubtitleVerticalPosition (const int value, bool save) override
 Set the subtitle vertical position, it depends on current screen resolution.
 
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.
 
int GetAudioStreamCount () const override
 
int GetAudioStream () override
 
void SetAudioStream (int iStream) override
 
int GetVideoStream () const override
 
int GetVideoStreamCount () const override
 
void GetVideoStreamInfo (int streamId, VideoStreamInfo &info) const override
 
void SetVideoStream (int iStream) override
 
int GetPrograms (std::vector< ProgramInfo > &programs) override
 
void SetProgram (int progId) override
 
int GetProgramsCount () const override
 
std::shared_ptr< TextCacheStruct_tGetTeletextCache () override
 
bool HasTeletextCache () const override
 
void LoadPage (int p, int sp, unsigned char *buffer) override
 
int GetChapterCount () const override
 
int GetChapter () const override
 
void GetChapterName (std::string &strChapterName, int chapterIdx=-1) const override
 
int64_t GetChapterPos (int chapterIdx=-1) const 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 () const override
 
void FrameAdvance (int frames) override
 
bool OnAction (const CAction &action) override
 
void GetAudioStreamInfo (int index, AudioStreamInfo &info) const 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
 
void FlushRenderer () override
 
void SetRenderViewMode (int mode, float zoom, float par, float shift, bool stretch) override
 
float GetRenderAspectRatio () const override
 
void GetRects (CRect &source, CRect &dest, CRect &view) const override
 
unsigned int GetOrientation () const override
 
void TriggerUpdateResolution () override
 
bool IsRenderingVideo () const override
 
bool Supports (EINTERLACEMETHOD method) const override
 
EINTERLACEMETHOD GetDeinterlacingMethodDefault () const override
 
bool Supports (ESCALINGMETHOD method) const override
 
bool Supports (ERENDERFEATURE feature) const 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 () const 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 SetMute (bool bOnOff)
 
virtual void SetVolume (float volume)
 
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)
 
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)
 
virtual void GetAudioCapabilities (std::vector< int > &audioCaps) const
 
virtual void GetSubtitleCapabilities (std::vector< int > &subCaps) const
 define the subtitle capabilities of the player
 
virtual bool HasGameAgent () const
 Check if any players are playing a game.
 
- Public Member Functions inherited from CThread
 CThread (IRunnable *pRunnable, const char *ThreadName)
 
virtual ~CThread ()
 
void Create (bool bAutoDelete=false)
 
template<typename Rep , typename Period >
void Sleep (std::chrono::duration< Rep, Period > duration)
 
bool IsAutoDelete () const
 
virtual void StopThread (bool bWait=true)
 
bool IsRunning () const
 
bool IsCurrentThread () const
 
bool Join (std::chrono::milliseconds duration)
 
bool SetPriority (const ThreadPriority &priority)
 Set the threads priority. This uses the platforms native threading library to do so.
 
virtual void OnException ()
 
- Public Member Functions inherited from IVideoPlayer
virtual ~IVideoPlayer ()=default
 
- Public Member Functions inherited from IDispResource
virtual ~IDispResource ()=default
 
virtual void OnAppFocusChange (bool focus)
 
- Public Member Functions inherited from IRenderLoop
virtual ~IRenderLoop ()=default
 
- 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 (const CDVDStreamInfo &hint)
 
bool OpenTeletextStream (CDVDStreamInfo &hint)
 
bool OpenRadioRDSStream (CDVDStreamInfo &hint)
 
bool OpenAudioID3Stream (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.
 
bool CloseStream (CCurrentStream &current, bool bWaitForBuffers)
 
bool CheckIsCurrent (const 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)
 
void ProcessAudioID3Data (CDemuxStream *pStream, DemuxPacket *pPacket)
 
int AddSubtitleFile (const std::string &filename, const std::string &subfilename="")
 
void SetEnableStream (CCurrentStream &current, bool isEnabled)
 Propagate enable stream callbacks to demuxers.
 
void SetSubtitleVisibleInternal (bool bVisible)
 
void SetPlaySpeed (int iSpeed)
 
void SetCaching (ECacheState state)
 
double GetQueueTime ()
 
CacheInfo GetCachingTimes ()
 
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 (const CCurrentStream &current)
 
bool CheckPlayerInit (CCurrentStream &current)
 
void UpdateCorrection (DemuxPacket *pkt, double correction)
 
void UpdateTimestamps (CCurrentStream &current, DemuxPacket *pPacket)
 
IDVDStreamPlayerGetStreamPlayer (unsigned int player)
 
void SendPlayerMessage (std::shared_ptr< CDVDMsg > pMsg, unsigned int target)
 
bool ReadPacket (DemuxPacket *&packet, CDemuxStream *&stream)
 
bool IsValidStream (const CCurrentStream &stream)
 
bool IsBetterStream (const 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)
 
int GetPreviousChapter ()
 
- Protected Member Functions inherited from CThread
 CThread (const char *ThreadName)
 
WaitResponse AbortableWait (CEvent &event, std::chrono::milliseconds duration=std::chrono::milliseconds(-1))
 

Protected Attributes

bool m_players_created
 
CFileItem m_item
 
CPlayerOptions m_playerOptions
 
bool m_bAbortRequest
 
bool m_error
 
bool m_bCloseRequest
 
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
 
CCurrentStream m_CurrentAudioID3
 
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
 
std::unique_ptr< CVideoPlayerAudioID3m_VideoPlayerAudioID3
 
CDVDClock m_clock
 
CDVDOverlayContainer m_overlayContainer
 
std::shared_ptr< CDVDInputStreamm_pInputStream
 
std::unique_ptr< CDVDDemuxm_pDemuxer
 
std::shared_ptr< CDVDDemuxm_pSubtitleDemuxer
 
std::unordered_map< int64_t, std::shared_ptr< CDVDDemux > > m_subtitleDemuxerMap
 
std::unique_ptr< 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< boolm_displayLost
 
- Protected Attributes inherited from IPlayer
IPlayerCallbackm_callback
 
- Protected Attributes inherited from CThread
std::atomic< boolm_bStop
 

Friends

class CSelectionStreams
 

Additional Inherited Members

- Static Public Member Functions inherited from CThread
static const std::thread::id GetCurrentThreadId ()
 
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 ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ CanSeek()

bool CVideoPlayer::CanSeek ( ) const
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 ( const CCurrentStream & current,
CDemuxStream * stream,
DemuxPacket * pkg )
protected

◆ CheckPlayerInit()

bool CVideoPlayer::CheckPlayerInit ( CCurrentStream & current)
protected

◆ CheckSceneSkip()

bool CVideoPlayer::CheckSceneSkip ( const 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 ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetAudioStreamInfo()

void CVideoPlayer::GetAudioStreamInfo ( int index,
AudioStreamInfo & info ) const
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 ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetCachingTimes()

CacheInfo CVideoPlayer::GetCachingTimes ( )
protected

◆ GetChapter()

int CVideoPlayer::GetChapter ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetChapterCount()

int CVideoPlayer::GetChapterCount ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetChapterName()

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

Reimplemented from IPlayer.

◆ GetChapterPos()

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

Reimplemented from IPlayer.

◆ GetDebugInfo()

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

Implements IRenderMsg.

◆ GetDeinterlacingMethodDefault()

EINTERLACEMETHOD CVideoPlayer::GetDeinterlacingMethodDefault ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetGeneralInfo()

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

◆ GetOrientation()

unsigned int CVideoPlayer::GetOrientation ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetPercentage()

float CVideoPlayer::GetPercentage ( )
protected

◆ GetPlayerState()

std::string CVideoPlayer::GetPlayerState ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetPreviousChapter()

int CVideoPlayer::GetPreviousChapter ( )
protected

◆ GetPrograms()

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

Reimplemented from IPlayer.

◆ GetProgramsCount()

int CVideoPlayer::GetProgramsCount ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetQueueTime()

double CVideoPlayer::GetQueueTime ( )
protected

◆ GetRects()

void CVideoPlayer::GetRects ( CRect & source,
CRect & dest,
CRect & view ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetRenderAspectRatio()

float CVideoPlayer::GetRenderAspectRatio ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetStreamPlayer()

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

◆ GetSubtitle()

int CVideoPlayer::GetSubtitle ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetSubtitleCount()

int CVideoPlayer::GetSubtitleCount ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetSubTitleDelay()

float CVideoPlayer::GetSubTitleDelay ( )
overridevirtual

Reimplemented from IPlayer.

◆ GetSubtitleStreamInfo()

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

Reimplemented from IPlayer.

◆ GetSubtitleVisible()

bool CVideoPlayer::GetSubtitleVisible ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ GetSupportedMenuType()

MenuType CVideoPlayer::GetSupportedMenuType ( ) const
overridevirtual

Get the supported menu type.

Returns
The supported menu type

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 ( ) const
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 ) const
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.

◆ HasID3()

bool CVideoPlayer::HasID3 ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ HasRDS()

bool CVideoPlayer::HasRDS ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ HasTeletextCache()

bool CVideoPlayer::HasTeletextCache ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ HasVideo()

bool CVideoPlayer::HasVideo ( ) const
overridevirtual

Implements IPlayer.

◆ IsBetterStream()

bool CVideoPlayer::IsBetterStream ( const 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 ( ) const
overridevirtual

Reimplemented from IPlayer.

◆ IsValidStream()

bool CVideoPlayer::IsValidStream ( const 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.

◆ OpenAudioID3Stream()

bool CVideoPlayer::OpenAudioID3Stream ( CDVDStreamInfo & hint)
protected

◆ 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 ( const 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

◆ ProcessAudioID3Data()

void CVideoPlayer::ProcessAudioID3Data ( 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 ( std::shared_ptr< 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.

◆ SetEnableStream()

void CVideoPlayer::SetEnableStream ( CCurrentStream & current,
bool isEnabled )
protected

Propagate enable stream callbacks to demuxers.

Parameters
currentThe current stream
isEnabledSet to true to enable the stream, otherwise false

◆ 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.

◆ SetSubtitleVerticalPosition()

void CVideoPlayer::SetSubtitleVerticalPosition ( const int value,
bool save )
overridevirtual

Set the subtitle vertical position, it depends on current screen resolution.

Parameters
valueThe subtitle position in pixels
saveIf true, the value will be saved to resolution info

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.

◆ Supports() [1/3]

bool CVideoPlayer::Supports ( EINTERLACEMETHOD method) const
overridevirtual

Reimplemented from IPlayer.

◆ Supports() [2/3]

bool CVideoPlayer::Supports ( ERENDERFEATURE feature) const
overridevirtual

Reimplemented from IPlayer.

◆ Supports() [3/3]

bool CVideoPlayer::Supports ( ESCALINGMETHOD method) const
overridevirtual

Reimplemented from IPlayer.

◆ SupportsTempo()

bool CVideoPlayer::SupportsTempo ( ) const
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 Symbol Documentation

◆ CSelectionStreams

friend class CSelectionStreams
friend

Member Data Documentation

◆ m_bAbortRequest

bool CVideoPlayer::m_bAbortRequest
protected

◆ m_bCloseRequest

bool CVideoPlayer::m_bCloseRequest
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_CurrentAudioID3

CCurrentStream CVideoPlayer::m_CurrentAudioID3
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_outboundEvents

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

◆ m_overlayContainer

CDVDOverlayContainer CVideoPlayer::m_overlayContainer
protected

◆ m_pCCDemuxer

std::unique_ptr<CDVDDemuxCC> CVideoPlayer::m_pCCDemuxer
protected

◆ m_pDemuxer

std::unique_ptr<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_VideoPlayerAudioID3

std::unique_ptr<CVideoPlayerAudioID3> CVideoPlayer::m_VideoPlayerAudioID3
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: