Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CDVDInputStreamNavigator Class Reference

#include <DVDInputStreamNavigator.h>

Inheritance diagram for CDVDInputStreamNavigator:
CDVDInputStream CDVDInputStream::IDisplayTime CDVDInputStream::IChapter CDVDInputStream::IPosTime CDVDInputStream::IMenus

Public Member Functions

 CDVDInputStreamNavigator (IVideoPlayer *player, const CFileItem &fileitem)
 
 ~CDVDInputStreamNavigator () override
 
bool Open () override
 
void Close () override
 
int Read (uint8_t *buf, int buf_size) override
 
int64_t Seek (int64_t offset, int whence) override
 
int GetBlockSize () override
 
bool IsEOF () override
 
int64_t GetLength () override
 
ENextStream NextStream () override
 
void ActivateButton () override
 
void SelectButton (int iButton) override
 
void SkipStill () override
 
void SkipWait ()
 
void OnUp () override
 
void OnDown () override
 
void OnLeft () override
 
void OnRight () override
 
bool OnMenu () override
 Open the Menu.
 
void OnBack () override
 
void OnNext () override
 
void OnPrevious () override
 
bool OnMouseMove (const CPoint &point) override
 
bool OnMouseClick (const CPoint &point) override
 
int GetCurrentButton () override
 
int GetTotalButtons () override
 
bool GetCurrentButtonInfo (CDVDOverlaySpu &pOverlayPicture, CDVDDemuxSPU *pSPU, int iButtonType)
 
MenuType GetSupportedMenuType () override
 Get the supported menu type.
 
bool IsInMenu () override
 
double GetTimeStampCorrection () override
 
int GetActiveSubtitleStream ()
 
int GetSubTitleStreamCount ()
 
SubtitleStreamInfo GetSubtitleStreamInfo (const int iId)
 
bool SetActiveSubtitleStream (int iId)
 
void EnableSubtitleStream (bool bEnable)
 
bool IsSubtitleStreamEnabled ()
 
int GetActiveAudioStream ()
 
int GetAudioStreamCount ()
 
int GetActiveAngle ()
 
bool SetAngle (int angle)
 
bool SetActiveAudioStream (int iId)
 
AudioStreamInfo GetAudioStreamInfo (const int iId)
 
bool GetState (std::string &xmlstate) override
 
bool SetState (const std::string &xmlstate) override
 
int GetChapter () override
 
int GetChapterCount () override
 
void GetChapterName (std::string &name, int idx=-1) override
 
int64_t GetChapterPos (int ch=-1) override
 
bool SeekChapter (int iChapter) override
 
CDVDInputStream::IDisplayTimeGetIDisplayTime () override
 
int GetTotalTime () override
 
int GetTime () override
 
float GetVideoAspectRatio ()
 
CDVDInputStream::IPosTimeGetIPosTime () override
 
bool PosTime (int iTimeInMsec) override
 
std::string GetDVDTitleString ()
 
std::string GetDVDVolIdString ()
 Get the DVD volume ID string. Alternative to the dvd title (since some DVD authors even forget to set it).
 
std::string GetDVDSerialString ()
 
void CheckButtons ()
 
VideoStreamInfo GetVideoStreamInfo ()
 
- Public Member Functions inherited from CDVDInputStream
 CDVDInputStream (DVDStreamType m_streamType, const CFileItem &fileitem)
 
virtual ~CDVDInputStream ()
 
virtual std::string & GetContent ()
 
virtual std::string GetFileName ()
 
virtual CURL GetURL ()
 
virtual void Abort ()
 
virtual bool CanSeek ()
 
virtual bool CanPause ()
 
virtual void SetReadRate (uint32_t rate)
 Indicate expected read rate in bytes per second. This could be used to throttle caching rate. Should be seen as only a hint.
 
virtual bool GetCacheStatus (XFILE::SCacheStatus *status)
 Get the cache status.
 
bool IsStreamType (DVDStreamType type) const
 
virtual BitstreamStats GetBitstreamStats () const
 
bool ContentLookup ()
 
virtual bool IsRealtime ()
 
void SetRealtime (bool realtime)
 
virtual IDemuxGetIDemux ()
 
virtual ITimesGetITimes ()
 
virtual IChapterGetIChapter ()
 
const CVariantGetProperty (const std::string &key)
 
- Public Member Functions inherited from CDVDInputStream::IDisplayTime
virtual ~IDisplayTime ()=default
 
- Public Member Functions inherited from CDVDInputStream::IChapter
virtual ~IChapter ()=default
 
- Public Member Functions inherited from CDVDInputStream::IPosTime
virtual ~IPosTime ()=default
 
- Public Member Functions inherited from CDVDInputStream::IMenus
virtual ~IMenus ()=default
 
virtual bool CanSeek ()
 

Protected Member Functions

int ProcessBlock (uint8_t *buffer, int *read)
 
int GetAngleCount ()
 
void GetVideoResolution (uint32_t *width, uint32_t *height)
 
bool FillDVDState (DVDState &dvdstate)
 Provided a pod DVDState struct, fill it with the current dvdnav state.
 

Static Protected Member Functions

static void SetAudioStreamName (AudioStreamInfo &info, const audio_attr_t &audio_attributes)
 
static void SetSubtitleStreamName (SubtitleStreamInfo &info, const subp_attr_t &subp_attributes)
 

Protected Attributes

DllDvdNav m_dll
 
bool m_bCheckButtons
 
bool m_bEOF
 
int m_holdmode
 
int m_iTotalTime
 
int m_iTime
 
int64_t m_iCellStart
 
bool m_bInMenu
 
int64_t m_iVobUnitStart
 
int64_t m_iVobUnitStop
 
int64_t m_iVobUnitCorrection
 
int m_iTitleCount
 
int m_iTitle
 
int m_iPartCount
 
int m_iPart
 
struct dvdnav_s * m_dvdnav
 
dvdnav_stream_cb m_dvdnav_stream_cb
 
std::unique_ptr< CDVDInputStreamFilem_pstream
 
IVideoPlayerm_pVideoPlayer
 
uint8_t m_lastblock [DVD_VIDEO_BLOCKSIZE]
 
int m_lastevent
 
std::map< int, std::map< int, int64_t > > m_mapTitleChapters
 
CDVDStateSerializer m_dvdStateSerializer
 
- Protected Attributes inherited from CDVDInputStream
DVDStreamType m_streamType
 
BitstreamStats m_stats
 
std::string m_content
 
CFileItem m_item
 
bool m_contentLookup
 
bool m_realtime
 

Additional Inherited Members

- Public Types inherited from CDVDInputStream
enum  ENextStream { NEXTSTREAM_NONE , NEXTSTREAM_OPEN , NEXTSTREAM_RETRY }
 

Constructor & Destructor Documentation

◆ CDVDInputStreamNavigator()

CDVDInputStreamNavigator::CDVDInputStreamNavigator ( IVideoPlayer * player,
const CFileItem & fileitem )

◆ ~CDVDInputStreamNavigator()

CDVDInputStreamNavigator::~CDVDInputStreamNavigator ( )
override

Member Function Documentation

◆ ActivateButton()

void CDVDInputStreamNavigator::ActivateButton ( )
overridevirtual

◆ CheckButtons()

void CDVDInputStreamNavigator::CheckButtons ( )

◆ Close()

void CDVDInputStreamNavigator::Close ( )
overridevirtual

Reimplemented from CDVDInputStream.

◆ EnableSubtitleStream()

void CDVDInputStreamNavigator::EnableSubtitleStream ( bool bEnable)

◆ FillDVDState()

bool CDVDInputStreamNavigator::FillDVDState ( DVDState & dvdstate)
protected

Provided a pod DVDState struct, fill it with the current dvdnav state.

Parameters
[in,out]dvdstatethe DVD state struct to be filled
Returns
true if it was possible to fill the state struct based on the current dvdnav state, false otherwise

◆ GetActiveAngle()

int CDVDInputStreamNavigator::GetActiveAngle ( )

◆ GetActiveAudioStream()

int CDVDInputStreamNavigator::GetActiveAudioStream ( )

◆ GetActiveSubtitleStream()

int CDVDInputStreamNavigator::GetActiveSubtitleStream ( )

◆ GetAngleCount()

int CDVDInputStreamNavigator::GetAngleCount ( )
protected

◆ GetAudioStreamCount()

int CDVDInputStreamNavigator::GetAudioStreamCount ( )

◆ GetAudioStreamInfo()

AudioStreamInfo CDVDInputStreamNavigator::GetAudioStreamInfo ( const int iId)

◆ GetBlockSize()

int CDVDInputStreamNavigator::GetBlockSize ( )
inlineoverridevirtual

Reimplemented from CDVDInputStream.

◆ GetChapter()

int CDVDInputStreamNavigator::GetChapter ( )
inlineoverridevirtual

◆ GetChapterCount()

int CDVDInputStreamNavigator::GetChapterCount ( )
inlineoverridevirtual

◆ GetChapterName()

void CDVDInputStreamNavigator::GetChapterName ( std::string & name,
int idx = -1 )
inlineoverridevirtual

◆ GetChapterPos()

int64_t CDVDInputStreamNavigator::GetChapterPos ( int ch = -1)
overridevirtual

◆ GetCurrentButton()

int CDVDInputStreamNavigator::GetCurrentButton ( )
overridevirtual

◆ GetCurrentButtonInfo()

bool CDVDInputStreamNavigator::GetCurrentButtonInfo ( CDVDOverlaySpu & pOverlayPicture,
CDVDDemuxSPU * pSPU,
int iButtonType )

◆ GetDVDSerialString()

std::string CDVDInputStreamNavigator::GetDVDSerialString ( )

◆ GetDVDTitleString()

std::string CDVDInputStreamNavigator::GetDVDTitleString ( )

◆ GetDVDVolIdString()

std::string CDVDInputStreamNavigator::GetDVDVolIdString ( )

Get the DVD volume ID string. Alternative to the dvd title (since some DVD authors even forget to set it).

Returns
The DVD volume id

◆ GetIDisplayTime()

CDVDInputStream::IDisplayTime * CDVDInputStreamNavigator::GetIDisplayTime ( )
inlineoverridevirtual

Reimplemented from CDVDInputStream.

◆ GetIPosTime()

CDVDInputStream::IPosTime * CDVDInputStreamNavigator::GetIPosTime ( )
inlineoverridevirtual

Reimplemented from CDVDInputStream.

◆ GetLength()

int64_t CDVDInputStreamNavigator::GetLength ( )
inlineoverridevirtual

Implements CDVDInputStream.

◆ GetState()

bool CDVDInputStreamNavigator::GetState ( std::string & xmlstate)
overridevirtual

◆ GetSubTitleStreamCount()

int CDVDInputStreamNavigator::GetSubTitleStreamCount ( )

◆ GetSubtitleStreamInfo()

SubtitleStreamInfo CDVDInputStreamNavigator::GetSubtitleStreamInfo ( const int iId)

◆ GetSupportedMenuType()

MenuType CDVDInputStreamNavigator::GetSupportedMenuType ( )
inlineoverridevirtual

Get the supported menu type.

Returns
The supported menu type

Implements CDVDInputStream::IMenus.

◆ GetTime()

int CDVDInputStreamNavigator::GetTime ( )
overridevirtual

◆ GetTimeStampCorrection()

double CDVDInputStreamNavigator::GetTimeStampCorrection ( )
inlineoverridevirtual

Reimplemented from CDVDInputStream::IMenus.

◆ GetTotalButtons()

int CDVDInputStreamNavigator::GetTotalButtons ( )
overridevirtual

◆ GetTotalTime()

int CDVDInputStreamNavigator::GetTotalTime ( )
overridevirtual

◆ GetVideoAspectRatio()

float CDVDInputStreamNavigator::GetVideoAspectRatio ( )

◆ GetVideoResolution()

void CDVDInputStreamNavigator::GetVideoResolution ( uint32_t * width,
uint32_t * height )
protected

◆ GetVideoStreamInfo()

VideoStreamInfo CDVDInputStreamNavigator::GetVideoStreamInfo ( )

◆ IsEOF()

bool CDVDInputStreamNavigator::IsEOF ( )
inlineoverridevirtual

Implements CDVDInputStream.

◆ IsInMenu()

bool CDVDInputStreamNavigator::IsInMenu ( )
inlineoverridevirtual

◆ IsSubtitleStreamEnabled()

bool CDVDInputStreamNavigator::IsSubtitleStreamEnabled ( )

◆ NextStream()

CDVDInputStream::ENextStream CDVDInputStreamNavigator::NextStream ( )
overridevirtual

Reimplemented from CDVDInputStream.

◆ OnBack()

void CDVDInputStreamNavigator::OnBack ( )
overridevirtual

◆ OnDown()

void CDVDInputStreamNavigator::OnDown ( )
overridevirtual

◆ OnLeft()

void CDVDInputStreamNavigator::OnLeft ( )
overridevirtual

◆ OnMenu()

bool CDVDInputStreamNavigator::OnMenu ( )
overridevirtual

Open the Menu.

Returns
true if the menu is successfully opened, false otherwise

Implements CDVDInputStream::IMenus.

◆ OnMouseClick()

bool CDVDInputStreamNavigator::OnMouseClick ( const CPoint & point)
overridevirtual

◆ OnMouseMove()

bool CDVDInputStreamNavigator::OnMouseMove ( const CPoint & point)
overridevirtual

◆ OnNext()

void CDVDInputStreamNavigator::OnNext ( )
overridevirtual

◆ OnPrevious()

void CDVDInputStreamNavigator::OnPrevious ( )
overridevirtual

◆ OnRight()

void CDVDInputStreamNavigator::OnRight ( )
overridevirtual

◆ OnUp()

void CDVDInputStreamNavigator::OnUp ( )
overridevirtual

◆ Open()

bool CDVDInputStreamNavigator::Open ( )
overridevirtual
Bug
libdvdnav isn't const correct
Bug
libdvdnav isn't const correct
Bug
libdvdnav isn't const correct

Reimplemented from CDVDInputStream.

◆ PosTime()

bool CDVDInputStreamNavigator::PosTime ( int iTimeInMsec)
overridevirtual

◆ ProcessBlock()

int CDVDInputStreamNavigator::ProcessBlock ( uint8_t * buffer,
int * read )
protected

◆ Read()

int CDVDInputStreamNavigator::Read ( uint8_t * buf,
int buf_size )
overridevirtual

Implements CDVDInputStream.

◆ Seek()

int64_t CDVDInputStreamNavigator::Seek ( int64_t offset,
int whence )
overridevirtual

Implements CDVDInputStream.

◆ SeekChapter()

bool CDVDInputStreamNavigator::SeekChapter ( int iChapter)
overridevirtual

◆ SelectButton()

void CDVDInputStreamNavigator::SelectButton ( int iButton)
overridevirtual

◆ SetActiveAudioStream()

bool CDVDInputStreamNavigator::SetActiveAudioStream ( int iId)

◆ SetActiveSubtitleStream()

bool CDVDInputStreamNavigator::SetActiveSubtitleStream ( int iId)

◆ SetAngle()

bool CDVDInputStreamNavigator::SetAngle ( int angle)

◆ SetAudioStreamName()

void CDVDInputStreamNavigator::SetAudioStreamName ( AudioStreamInfo & info,
const audio_attr_t & audio_attributes )
staticprotected

◆ SetState()

bool CDVDInputStreamNavigator::SetState ( const std::string & xmlstate)
overridevirtual

◆ SetSubtitleStreamName()

void CDVDInputStreamNavigator::SetSubtitleStreamName ( SubtitleStreamInfo & info,
const subp_attr_t & subp_attributes )
staticprotected

◆ SkipStill()

void CDVDInputStreamNavigator::SkipStill ( )
overridevirtual

◆ SkipWait()

void CDVDInputStreamNavigator::SkipWait ( )

Member Data Documentation

◆ m_bCheckButtons

bool CDVDInputStreamNavigator::m_bCheckButtons
protected

◆ m_bEOF

bool CDVDInputStreamNavigator::m_bEOF
protected

◆ m_bInMenu

bool CDVDInputStreamNavigator::m_bInMenu
protected

◆ m_dll

DllDvdNav CDVDInputStreamNavigator::m_dll
protected

◆ m_dvdnav

struct dvdnav_s* CDVDInputStreamNavigator::m_dvdnav
protected

◆ m_dvdnav_stream_cb

dvdnav_stream_cb CDVDInputStreamNavigator::m_dvdnav_stream_cb
protected

◆ m_dvdStateSerializer

CDVDStateSerializer CDVDInputStreamNavigator::m_dvdStateSerializer
protected

DVD state serializer handler

◆ m_holdmode

int CDVDInputStreamNavigator::m_holdmode
protected

◆ m_iCellStart

int64_t CDVDInputStreamNavigator::m_iCellStart
protected

◆ m_iPart

int CDVDInputStreamNavigator::m_iPart
protected

◆ m_iPartCount

int CDVDInputStreamNavigator::m_iPartCount
protected

◆ m_iTime

int CDVDInputStreamNavigator::m_iTime
protected

◆ m_iTitle

int CDVDInputStreamNavigator::m_iTitle
protected

◆ m_iTitleCount

int CDVDInputStreamNavigator::m_iTitleCount
protected

◆ m_iTotalTime

int CDVDInputStreamNavigator::m_iTotalTime
protected

◆ m_iVobUnitCorrection

int64_t CDVDInputStreamNavigator::m_iVobUnitCorrection
protected

◆ m_iVobUnitStart

int64_t CDVDInputStreamNavigator::m_iVobUnitStart
protected

◆ m_iVobUnitStop

int64_t CDVDInputStreamNavigator::m_iVobUnitStop
protected

◆ m_lastblock

uint8_t CDVDInputStreamNavigator::m_lastblock[DVD_VIDEO_BLOCKSIZE]
protected

◆ m_lastevent

int CDVDInputStreamNavigator::m_lastevent
protected

◆ m_mapTitleChapters

std::map<int, std::map<int, int64_t> > CDVDInputStreamNavigator::m_mapTitleChapters
protected

◆ m_pstream

std::unique_ptr<CDVDInputStreamFile> CDVDInputStreamNavigator::m_pstream
protected

◆ m_pVideoPlayer

IVideoPlayer* CDVDInputStreamNavigator::m_pVideoPlayer
protected

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