MythTV  master
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MythDVDBuffer Class Reference

#include <mythdvdbuffer.h>

Inheritance diagram for MythDVDBuffer:
Inheritance graph
[legend]
Collaboration diagram for MythDVDBuffer:
Collaboration graph
[legend]

Public Member Functions

 MythDVDBuffer (const QString &Filename)
 
 ~MythDVDBuffer () override
 
bool IsOpen (void) const override
 
bool IsBookmarkAllowed (void) override
 
bool IsSeekingAllowed (void) override
 
int BestBufferSize (void) override
 
bool IsInStillFrame (void) const override
 
bool OpenFile (const QString &Filename, std::chrono::milliseconds Retry=kDefaultOpenTimeout) override
 Opens a dvd device for reading. More...
 
bool HandleAction (const QStringList &Actions, mpeg::chrono::pts Pts) override
 
void IgnoreWaitStates (bool Ignore) override
 
bool StartFromBeginning (void) override
 
long long GetReadPosition (void) const override
 returns current position in the PGC. More...
 
bool GetNameAndSerialNum (QString &Name, QString &SerialNumber) override
 Get the dvd title and serial num. More...
 
int GetTitle (void) const
 
bool DVDWaitingForPlayer (void) const
 
int GetPart (void) const
 
int GetCurrentAngle (void) const
 
int GetNumAngles (void) const
 
long long GetTotalReadPosition (void) const
 
std::chrono::seconds GetChapterLength (void) const
 
void GetChapterTimes (QList< std::chrono::seconds > &Times)
 
std::chrono::seconds GetChapterTimes (int Title)
 
void GetDescForPos (QString &Description) const
 
void GetPartAndTitle (int &Part, int &Title) const
 
std::chrono::seconds GetTotalTimeOfTitle (void) const
 get the total time of the title in seconds 90000 ticks = 1 sec More...
 
float GetAspectOverride (void) const
 
std::chrono::seconds GetCellStart (void) const
 get the start of the cell in seconds More...
 
bool PGCLengthChanged (void)
 check if pgc length has changed More...
 
bool CellChanged (void)
 check if dvd cell has changed More...
 
bool IsStillFramePending (void) const
 
bool AudioStreamsChanged (void) const
 
bool IsWaiting (void) const
 
int NumPartsInTitle (void) const
 
void GetMenuSPUPkt (uint8_t *Buffer, int Size, int StreamID, uint32_t StartTime)
 Get SPU pkt from dvd menu subtitle stream. More...
 
uint32_t AdjustTimestamp (uint32_t Timestamp) const
 
int64_t AdjustTimestamp (int64_t Timestamp) const
 
MythDVDContextGetDVDContext (void)
 
int32_t GetLastEvent (void) const
 
AVSubtitle * GetMenuSubtitle (uint &Version)
 returns dvd menu button information if available. More...
 
int NumMenuButtons (void) const
 
QRect GetButtonCoords (void)
 get coordinates of highlighted button More...
 
void ReleaseMenuButton (void)
 
uint GetSubtitleLanguage (int Id)
 Get the subtitle language from the dvd. More...
 
int8_t GetSubtitleTrackNum (uint StreamId)
 get the logical subtitle track/stream number from the dvd More...
 
bool DecodeSubtitles (AVSubtitle *Subtitle, int *GotSubtitles, const uint8_t *SpuPkt, int BufSize, uint32_t StartTime)
 generate dvd subtitle bitmap or dvd menu bitmap. More...
 
uint GetAudioLanguage (int Index)
 get the audio language from the dvd More...
 
int GetAudioTrackNum (uint StreamId)
 get the logical track index (into PGC_AST_CTL) of the element that maps the given physical stream id. More...
 
int GetAudioTrackType (uint Index)
 
bool GetDVDStateSnapshot (QString &State)
 Get a snapshot of the current DVD VM state. More...
 
bool RestoreDVDStateSnapshot (const QString &State)
 Restore a DVD VM from a snapshot. More...
 
double GetFrameRate (void)
 used by DecoderBase for the total frame number calculation for position map support and ffw/rew. More...
 
bool StartOfTitle (void) const
 
bool EndOfTitle (void) const
 
void PlayTitleAndPart (int Title, int Part)
 
void CloseDVD (void)
 
bool PlayTrack (int Track)
 
bool NextTrack (void)
 
void PrevTrack (void)
 
long long NormalSeek (long long Time)
 
bool SectorSeek (uint64_t Sector)
 
void SkipStillFrame (void)
 
void WaitSkip (void)
 
void SkipDVDWaitingForPlayer (void)
 
void UnblockReading (void)
 
bool IsReadingBlocked (void)
 
bool GoToMenu (const QString &str)
 jump to a dvd root or chapter menu More...
 
void GoToNextProgram (void)
 
void GoToPreviousProgram (void)
 
bool GoBack (void)
 Attempts to back-up by trying to jump to the 'Go up' PGC, the root menu or the title menu in turn. More...
 
void AudioStreamsChanged (bool Change)
 
std::chrono::seconds GetCurrentTime (void) const
 
std::chrono::seconds TitleTimeLeft (void) const
 returns seconds left in the title More...
 
void SetTrack (uint Type, int TrackNo)
 set the dvd subtitle/audio track used More...
 
int GetTrack (uint Type) const
 get the track the dvd should be playing. More...
 
uint16_t GetNumAudioChannels (int Index)
 
void SetDVDSpeed (void)
 set dvd speed. uses the constant DVD_DRIVE_SPEED table More...
 
void SetDVDSpeed (int Speed)
 set dvd speed. More...
 
bool SwitchAngle (int Angle)
 
void SetParent (MythDVDPlayer *Parent)
 
- Public Member Functions inherited from MythOpticalBuffer
 MythOpticalBuffer (MythBufferType Type)
 
bool IsInMenu (void) const override
 
bool IsStreamed (void) override
 
- Public Member Functions inherited from MythMediaBuffer
 ~MythMediaBuffer () override=0
 Deletes. More...
 
MythBufferType GetType () const
 
void SetOldFile (bool Old)
 Tell RingBuffer if this is an old file or not. More...
 
void UpdateRawBitrate (uint RawBitrate)
 Set the raw bit rate, to allow RingBuffer adjust effective bitrate. More...
 
void UpdatePlaySpeed (float PlaySpeed)
 Set the play speed, to allow RingBuffer adjust effective bitrate. More...
 
void EnableBitrateMonitor (bool Enable)
 
void SetBufferSizeFactors (bool EstBitrate, bool Matroska)
 Tells RingBuffer that the raw bitrate may be inaccurate and the underlying container is matroska, both of which may require a larger buffer size. More...
 
void SetWaitForWrite (void)
 
QString GetSafeFilename (void)
 
QString GetFilename (void) const
 
QString GetSubtitleFilename (void) const
 
QString GetLastError (void) const
 
bool GetCommsError (void) const
 
void ResetCommsError (void)
 
bool GetStopReads (void) const
 
QString GetDecoderRate (void)
 
QString GetStorageRate (void)
 
QString GetAvailableBuffer (void)
 
uint GetBufferSize (void) const
 
bool IsNearEnd (double Framerate, uint Frames) const
 
long long GetWritePosition (void) const
 Returns how far into a ThreadedFileWriter file we have written. More...
 
long long GetRealFileSize (void) const
 
bool IsDisc (void) const
 
bool IsDVD (void) const
 
bool IsBD (void) const
 
const MythDVDBufferDVD (void) const
 
MythDVDBufferDVD (void)
 
const MythBDBufferBD (void) const
 
MythBDBufferBD (void)
 
int Read (void *Buffer, int Count)
 This is the public method for reading from a file, it calls the appropriate read method if the file is remote or buffered, or a BD/DVD. More...
 
int Peek (void *Buffer, int Count)
 
int Peek (std::vector< char > &Buffer)
 
void Reset (bool Full=false, bool ToAdjust=false, bool ResetInternal=false)
 Resets the read-ahead thread and our position in the file. More...
 
void Pause (void)
 Pauses the read-ahead thread. Calls StopReads(void). More...
 
void Unpause (void)
 Unpauses the read-ahead thread. Calls StartReads(void). More...
 
void WaitForPause (void)
 Waits for Pause(void) to take effect. More...
 
void Start (void)
 Starts the read-ahead thread. More...
 
void StopReads (void)
 
void StartReads (void)
 
long long Seek (long long Position, int Whence, bool HasLock=false)
 
long long SetAdjustFilesize (void)
 
int GetReadBufAvail (void) const
 Returns number of bytes available for reading from buffer. More...
 
bool SetReadInternalMode (bool Mode)
 
bool IsReadInternalMode (void) const
 
bool LiveMode (void) const
 Returns true if this RingBuffer has been assigned a LiveTVChain. More...
 
void SetLiveMode (LiveTVChain *Chain)
 Assigns a LiveTVChain to this RingBuffer. More...
 
void IgnoreLiveEOF (bool Ignore)
 Tells RingBuffer whether to ignore the end-of-file. More...
 
int Write (const void *Buffer, uint Count)
 Writes buffer to ThreadedFileWriter::Write(const void*,uint) More...
 
bool IsIOBound (void) const
 
void WriterFlush (void)
 Calls ThreadedFileWriter::Flush(void) More...
 
void Sync (void)
 Calls ThreadedFileWriter::Sync(void) More...
 
long long WriterSeek (long long Position, int Whence, bool HasLock=false)
 Calls ThreadedFileWriter::Seek(long long,int). More...
 
bool WriterSetBlocking (bool Lock=true)
 Calls ThreadedFileWriter::SetBlocking(bool) More...
 
virtual bool IsInDiscMenuOrStillFrame (void) const
 
virtual bool ReOpen (const QString &="")
 

Protected Member Functions

int SafeRead (void *Buffer, uint Size) override
 
long long SeekInternal (long long Position, int Whence) override
 
void ActivateButton (void)
 Action taken when a dvd menu button is selected. More...
 
void MoveButtonLeft (void)
 
void MoveButtonRight (void)
 
void MoveButtonUp (void)
 
void MoveButtonDown (void)
 
bool DVDButtonUpdate (bool ButtonMode)
 update the dvd menu button parameters when a user changes the dvd menu button position More...
 
void ClearMenuSPUParameters (void)
 clears the menu SPU pkt and parameters. More...
 
void ClearMenuButton (void)
 clears the dvd menu button structures More...
 
long long Seek (long long Time)
 
void ClearChapterCache (void)
 
void SelectDefaultButton (void)
 determines the default dvd menu button to show when you initially access the dvd menu. More...
 
void WaitForPlayer (void)
 
void GuessPalette (uint32_t *RGBAPalette, PaletteArray Palette, AlphaArray Alpha)
 converts palette values from YUV to RGB More...
 
- Protected Member Functions inherited from MythMediaBuffer
 MythMediaBuffer (MythBufferType Type)
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
void CreateReadAheadBuffer (void)
 
void CalcReadAheadThresh (void)
 Calculates m_fillMin, m_fillThreshold, and m_readBlockSize from the estimated effective bitrate of the stream. More...
 
bool PauseAndWait (void)
 
int ReadPriv (void *Buffer, int Count, bool Peek)
 When possible reads from the read-ahead buffer, otherwise reads directly from the device. More...
 
int ReadDirect (void *Buffer, int Count, bool Peek)
 
bool WaitForReadsAllowed (void)
 
int WaitForAvail (int Count, std::chrono::milliseconds Timeout)
 
int ReadBufFree (void) const
 Returns number of bytes available for reading into buffer. More...
 
int ReadBufAvail (void) const
 Returns number of bytes available for reading from buffer. More...
 
void ResetReadAhead (long long NewInternal)
 Restart the read-ahead thread at the 'newinternal' position. More...
 
void KillReadAheadThread (void)
 Stops the read-ahead thread, and waits for it to stop. More...
 
uint64_t UpdateDecoderRate (uint64_t Latest=0)
 
uint64_t UpdateStorageRate (uint64_t Latest=0)
 
virtual long long GetRealFileSizeInternal (void) const
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
 MThread (const MThread &)=delete
 
MThreadoperator= (const MThread &)=delete
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority p=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (std::chrono::milliseconds time=std::chrono::milliseconds::max())
 Wait for the MThread to exit, with a maximum timeout. More...
 

Static Protected Member Functions

static uint ConvertLangCode (uint16_t Code)
 converts the subtitle/audio lang code to iso639. More...
 
static uint GetNibble (const uint8_t *Buffer, int NibbleOffset)
 copied from ffmpeg's dvdsubdec.c More...
 
static int DecodeRLE (uint8_t *Bitmap, int Linesize, int Width, int Height, const uint8_t *Buffer, int NibbleOffset, int BufferSize)
 decodes the bitmap from the subtitle packet. More...
 
static int IsTransparent (const uint8_t *Buffer, int Pitch, int Num, const ColorArray &Colors)
 Obtained from ffmpeg dvdsubdec.c Used to find smallest bounded rectangle. More...
 
static int FindSmallestBoundingRectangle (AVSubtitle *Subtitle)
 Obtained from ffmpeg dvdsubdec.c Used to find smallest bounded rect and helps prevent jerky picture during subtitle creation. More...
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void usleep (std::chrono::microseconds time)
 
template<typename R , typename P >
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > usleep (std::chrono::duration< R, P > time)
 
static void ThreadSetup (const QString &name)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 

Protected Attributes

dvdnav_t * m_dvdnav { nullptr }
 
DvdBuffer m_dvdBlockWriteBuf { 0 }
 
unsigned char * m_dvdBlockReadBuf { nullptr }
 
int m_dvdBlockRPos { 0 }
 
int m_dvdBlockWPos { 0 }
 
mpeg::chrono::pts m_pgLength { 0_pts }
 
mpeg::chrono::pts m_pgcLength { 0_pts }
 
mpeg::chrono::pts m_cellStart { 0_pts }
 
bool m_cellChanged { false }
 
bool m_pgcLengthChanged { false }
 
long long m_pgStart { 0 }
 
long long m_currentpos { 0 }
 
int32_t m_part { 0 }
 
int32_t m_lastPart { 0 }
 
int32_t m_title { 0 }
 
int32_t m_lastTitle { 0 }
 
bool m_playerWait { false }
 
int32_t m_titleParts { 0 }
 
bool m_gotStop { false }
 
int m_currentTitleAngleCount { 0 }
 
int64_t m_endPts { 0 }
 
int64_t m_timeDiff { 0 }
 
std::chrono::seconds m_still { 0s }
 
std::chrono::seconds m_lastStill { 0s }
 
bool m_audioStreamsChanged { false }
 
bool m_dvdWaiting { false }
 
long long m_titleLength { 0 }
 
bool m_skipstillorwait { true }
 
long long m_cellstartPos { 0 }
 
bool m_buttonSelected { false }
 
bool m_buttonExists { false }
 
bool m_buttonSeenInCell { false }
 
bool m_lastButtonSeenInCell { false }
 
int m_cellid { 0 }
 
int m_lastcellid { 0 }
 
int m_vobid { 0 }
 
int m_lastvobid { 0 }
 
bool m_cellRepeated { false }
 
int m_curAudioTrack { 0 }
 
int8_t m_curSubtitleTrack { 0 }
 
bool m_autoselectsubtitle { true }
 
bool m_seeking { false }
 
mpeg::chrono::pts m_seektime { 0_pts }
 
mpeg::chrono::pts m_currentTime { 0_pts }
 
QMap< int, QList< std::chrono::seconds > > m_chapterMap
 
MythDVDPlayerm_parent { nullptr }
 
float m_forcedAspect { -1.0F }
 
QRecursiveMutex m_contextLock
 
MythDVDContextm_context { nullptr }
 
dvdnav_status_t m_dvdStat { DVDNAV_STATUS_OK }
 
int32_t m_dvdEvent { 0 }
 
int32_t m_dvdEventSize { 0 }
 
uint m_buttonVersion { 1 }
 
int m_buttonStreamID { 0 }
 
CLUTArray m_clut { 0 }
 
AlphaArray m_buttonColor { 0 }
 
PaletteArray m_buttonAlpha { 0 }
 
QRect m_hlButton { 0, 0, 0, 0 }
 
uint8_t * m_menuSpuPkt { nullptr }
 
int m_menuBuflength { 0 }
 
AVSubtitle m_dvdMenuButton { }
 
QMutex m_menuBtnLock
 
QMutex m_seekLock
 
- Protected Attributes inherited from MythOpticalBuffer
MythOpticalState m_processState { PROCESS_NORMAL }
 
int m_currentAngle { 0 }
 
bool m_inMenu { false }
 
QString m_discName
 
QString m_discSerialNumber
 
- Protected Attributes inherited from MythMediaBuffer
MythBufferType m_type
 
QReadWriteLock m_posLock
 
long long m_readPos { 0 }
 
long long m_writePos { 0 }
 
long long m_internalReadPos { 0 }
 
long long m_ignoreReadPos { -1 }
 
QReadWriteLock m_rbrLock
 
int m_rbrPos { 0 }
 
QReadWriteLock m_rbwLock
 
int m_rbwPos { 0 }
 
volatile bool m_stopReads {false}
 
QString m_safeFilename
 
QReadWriteLock m_rwLock
 
QString m_filename
 
QString m_subtitleFilename
 
QString m_lastError
 
ThreadedFileWriterm_tfw { nullptr }
 
int m_fd2 { -1 }
 
bool m_writeMode { false }
 
RemoteFilem_remotefile { nullptr }
 
uint m_bufferSize { BUFFER_SIZE_MINIMUM }
 
bool m_lowBuffers { false }
 
bool m_fileIsMatroska { false }
 
bool m_unknownBitrate { false }
 
bool m_startReadAhead { false }
 
char * m_readAheadBuffer { nullptr }
 
bool m_readAheadRunning { false }
 
bool m_reallyRunning { false }
 
bool m_requestPause { false }
 
bool m_paused { false }
 
bool m_ateof { false }
 
bool m_waitForWrite { false }
 
bool m_beingWritten { false }
 
bool m_readsAllowed { false }
 
bool m_readsDesired { false }
 
volatile bool m_recentSeek { true }
 
bool m_setSwitchToNext { false }
 
uint m_rawBitrate { 8000 }
 
float m_playSpeed { 1.0F }
 
int m_fillThreshold { 65536 }
 
int m_fillMin { -1 }
 
int m_readBlockSize { DEFAULT_CHUNK_SIZE}
 
int m_wantToRead { 0 }
 
int m_numFailures { 0 }
 
bool m_commsError { false }
 
bool m_oldfile { false }
 
LiveTVChainm_liveTVChain { nullptr }
 
bool m_ignoreLiveEOF { false }
 
long long m_readAdjust { 0 }
 
int m_readOffset { 0 }
 
bool m_readInternalMode { false }
 
bool m_bitrateMonitorEnabled { false }
 
QMutex m_decoderReadLock
 
QMap< std::chrono::milliseconds, uint64_t > m_decoderReads
 
QMutex m_storageReadLock
 
QMap< std::chrono::milliseconds, uint64_t > m_storageReads
 
QWaitCondition m_generalWait
 Condition to signal that the read ahead thread is running. More...
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 

Static Protected Attributes

static const QMap< int, int > kSeekSpeedMap
 

Additional Inherited Members

- Static Public Member Functions inherited from MythMediaBuffer
static MythMediaBufferCreate (const QString &Filename, bool Write, bool UseReadAhead=true, std::chrono::milliseconds Timeout=kDefaultOpenTimeout, bool StreamOnly=false)
 Creates a RingBuffer instance. More...
 
static QString BitrateToString (uint64_t Rate, bool Hz=false)
 
static void AVFormatInitNetwork (void)
 
- Static Public Attributes inherited from MythMediaBuffer
static constexpr std::chrono::milliseconds kDefaultOpenTimeout { 2s }
 
static constexpr std::chrono::milliseconds kLiveTVOpenTimeout { 10s }
 
- Protected Types inherited from MythOpticalBuffer
enum  MythOpticalState { PROCESS_NORMAL, PROCESS_REPROCESS, PROCESS_WAIT }
 

Detailed Description

Definition at line 37 of file mythdvdbuffer.h.

Constructor & Destructor Documentation

◆ MythDVDBuffer()

MythDVDBuffer::MythDVDBuffer ( const QString &  Filename)
explicit

Definition at line 47 of file mythdvdbuffer.cpp.

◆ ~MythDVDBuffer()

MythDVDBuffer::~MythDVDBuffer ( )
override

Definition at line 53 of file mythdvdbuffer.cpp.

Member Function Documentation

◆ IsOpen()

bool MythDVDBuffer::IsOpen ( void  ) const
overridevirtual

Implements MythMediaBuffer.

Definition at line 216 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetCurrentAngle(), and MythDVDPlayer::GetNumAngles().

◆ IsBookmarkAllowed()

bool MythDVDBuffer::IsBookmarkAllowed ( void  )
overridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 221 of file mythdvdbuffer.cpp.

◆ IsSeekingAllowed()

bool MythDVDBuffer::IsSeekingAllowed ( void  )
overridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 231 of file mythdvdbuffer.cpp.

◆ BestBufferSize()

int MythDVDBuffer::BestBufferSize ( void  )
inlineoverridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 48 of file mythdvdbuffer.h.

◆ IsInStillFrame()

bool MythDVDBuffer::IsInStillFrame ( void  ) const
overridevirtual

◆ OpenFile()

bool MythDVDBuffer::OpenFile ( const QString &  Filename,
std::chrono::milliseconds  Retry = kDefaultOpenTimeout 
)
overridevirtual

Opens a dvd device for reading.

Parameters
lfilenamePath of the dvd device to read.
Returns
Returns true if the dvd was opened.

Implements MythMediaBuffer.

Definition at line 260 of file mythdvdbuffer.cpp.

Referenced by MythDVDBuffer(), and StartFromBeginning().

◆ HandleAction()

bool MythDVDBuffer::HandleAction ( const QStringList &  Actions,
mpeg::chrono::pts  Pts 
)
overridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 1321 of file mythdvdbuffer.cpp.

◆ IgnoreWaitStates()

void MythDVDBuffer::IgnoreWaitStates ( bool  Ignore)
overridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 1342 of file mythdvdbuffer.cpp.

◆ StartFromBeginning()

bool MythDVDBuffer::StartFromBeginning ( void  )
overridevirtual

Reimplemented from MythMediaBuffer.

Definition at line 328 of file mythdvdbuffer.cpp.

◆ GetReadPosition()

long long MythDVDBuffer::GetReadPosition ( void  ) const
overridevirtual

returns current position in the PGC.

Implements MythMediaBuffer.

Definition at line 415 of file mythdvdbuffer.cpp.

Referenced by SafeRead().

◆ GetNameAndSerialNum()

bool MythDVDBuffer::GetNameAndSerialNum ( QString &  Name,
QString &  SerialNumber 
)
overridevirtual

Get the dvd title and serial num.

Implements MythOpticalBuffer.

Definition at line 1908 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::EventStart(), MythDVDPlayer::GetBookmark(), MythDVDPlayer::SetBookmark(), and TV::ShowLCDDVDInfo().

◆ GetTitle()

int MythDVDBuffer::GetTitle ( void  ) const

Definition at line 430 of file mythdvdbuffer.cpp.

◆ DVDWaitingForPlayer()

bool MythDVDBuffer::DVDWaitingForPlayer ( void  ) const

Definition at line 435 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::VideoLoop().

◆ GetPart()

int MythDVDBuffer::GetPart ( void  ) const

Definition at line 440 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetCurrentChapter().

◆ GetCurrentAngle()

int MythDVDBuffer::GetCurrentAngle ( void  ) const

Definition at line 445 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetCurrentAngle().

◆ GetNumAngles()

int MythDVDBuffer::GetNumAngles ( void  ) const

Definition at line 450 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetNumAngles().

◆ GetTotalReadPosition()

long long MythDVDBuffer::GetTotalReadPosition ( void  ) const

Definition at line 455 of file mythdvdbuffer.cpp.

Referenced by DecoderBase::PosMapFromDb().

◆ GetChapterLength()

std::chrono::seconds MythDVDBuffer::GetChapterLength ( void  ) const

Definition at line 460 of file mythdvdbuffer.cpp.

◆ GetChapterTimes() [1/2]

void MythDVDBuffer::GetChapterTimes ( QList< std::chrono::seconds > &  Times)

Definition at line 372 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetChapterTimes(), and SafeRead().

◆ GetChapterTimes() [2/2]

std::chrono::seconds MythDVDBuffer::GetChapterTimes ( int  Title)

Definition at line 383 of file mythdvdbuffer.cpp.

◆ GetDescForPos()

void MythDVDBuffer::GetDescForPos ( QString &  Description) const

Definition at line 241 of file mythdvdbuffer.cpp.

◆ GetPartAndTitle()

void MythDVDBuffer::GetPartAndTitle ( int &  Part,
int &  Title 
) const

Definition at line 465 of file mythdvdbuffer.cpp.

Referenced by TV::ShowLCDDVDInfo().

◆ GetTotalTimeOfTitle()

std::chrono::seconds MythDVDBuffer::GetTotalTimeOfTitle ( void  ) const

get the total time of the title in seconds 90000 ticks = 1 sec

Definition at line 1148 of file mythdvdbuffer.cpp.

Referenced by IsBookmarkAllowed(), DecoderBase::PosMapFromDb(), TV::ShowLCDDVDInfo(), DecoderBase::SyncPositionMap(), and TitleTimeLeft().

◆ GetAspectOverride()

float MythDVDBuffer::GetAspectOverride ( void  ) const

Definition at line 1153 of file mythdvdbuffer.cpp.

Referenced by AvFormatDecoder::MpegPreProcessPkt().

◆ GetCellStart()

std::chrono::seconds MythDVDBuffer::GetCellStart ( void  ) const

get the start of the cell in seconds

Definition at line 1160 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DoJumpChapter().

◆ PGCLengthChanged()

bool MythDVDBuffer::PGCLengthChanged ( void  )

check if pgc length has changed

Definition at line 1196 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::StreamChangeCheck().

◆ CellChanged()

bool MythDVDBuffer::CellChanged ( void  )

check if dvd cell has changed

Definition at line 1167 of file mythdvdbuffer.cpp.

◆ IsStillFramePending()

bool MythDVDBuffer::IsStillFramePending ( void  ) const

Definition at line 1174 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::VideoLoop().

◆ AudioStreamsChanged() [1/2]

bool MythDVDBuffer::AudioStreamsChanged ( void  ) const

◆ IsWaiting()

bool MythDVDBuffer::IsWaiting ( void  ) const

Definition at line 1184 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::VideoLoop().

◆ NumPartsInTitle()

int MythDVDBuffer::NumPartsInTitle ( void  ) const

Definition at line 1189 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GetNumChapters(), and TV::ShowLCDDVDInfo().

◆ GetMenuSPUPkt()

void MythDVDBuffer::GetMenuSPUPkt ( uint8_t *  Buffer,
int  Size,
int  StreamID,
uint32_t  StartTime 
)

Get SPU pkt from dvd menu subtitle stream.

Definition at line 1395 of file mythdvdbuffer.cpp.

Referenced by AvFormatDecoder::ProcessSubtitlePacket().

◆ AdjustTimestamp() [1/2]

uint32_t MythDVDBuffer::AdjustTimestamp ( uint32_t  Timestamp) const

Definition at line 471 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::ReadPacket(), and SafeRead().

◆ AdjustTimestamp() [2/2]

int64_t MythDVDBuffer::AdjustTimestamp ( int64_t  Timestamp) const

Definition at line 479 of file mythdvdbuffer.cpp.

◆ GetDVDContext()

MythDVDContext * MythDVDBuffer::GetDVDContext ( void  )

Definition at line 487 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::ProcessDataPacket().

◆ GetLastEvent()

int32_t MythDVDBuffer::GetLastEvent ( void  ) const

Definition at line 495 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::ReadPacket().

◆ GetMenuSubtitle()

AVSubtitle * MythDVDBuffer::GetMenuSubtitle ( uint Version)

returns dvd menu button information if available.

Definition at line 1425 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ NumMenuButtons()

int MythDVDBuffer::NumMenuButtons ( void  ) const

◆ GetButtonCoords()

QRect MythDVDBuffer::GetButtonCoords ( void  )

get coordinates of highlighted button

Definition at line 1447 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ ReleaseMenuButton()

void MythDVDBuffer::ReleaseMenuButton ( void  )

Definition at line 1440 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ GetSubtitleLanguage()

uint MythDVDBuffer::GetSubtitleLanguage ( int  Id)

Get the subtitle language from the dvd.

Definition at line 1798 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::PostProcessTracks().

◆ GetSubtitleTrackNum()

int8_t MythDVDBuffer::GetSubtitleTrackNum ( uint  StreamId)

get the logical subtitle track/stream number from the dvd

Parameters
stream_idthe stream id, range 0-31

Definition at line 1808 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::PostProcessTracks().

◆ DecodeSubtitles()

bool MythDVDBuffer::DecodeSubtitles ( AVSubtitle *  Subtitle,
int *  GotSubtitles,
const uint8_t *  SpuPkt,
int  BufSize,
uint32_t  StartTime 
)

generate dvd subtitle bitmap or dvd menu bitmap.

code obtained from ffmpeg project

Definition at line 1459 of file mythdvdbuffer.cpp.

Referenced by GetMenuSPUPkt(), and AvFormatDecoder::ProcessSubtitlePacket().

◆ GetAudioLanguage()

uint MythDVDBuffer::GetAudioLanguage ( int  Index)

get the audio language from the dvd

Definition at line 1723 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::GetAudioLanguage().

◆ GetAudioTrackNum()

int MythDVDBuffer::GetAudioTrackNum ( uint  StreamId)

get the logical track index (into PGC_AST_CTL) of the element that maps the given physical stream id.

Parameters
stream_idThe physical stream id.
Returns
The logical stream id,, or -1 if the stream can't be found.

Definition at line 1747 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::GetAudioLanguage(), MythDVDDecoder::GetAudioTrackType(), SafeRead(), and AvFormatDecoder::ScanStreams().

◆ GetAudioTrackType()

int MythDVDBuffer::GetAudioTrackType ( uint  Index)

Definition at line 1779 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::GetAudioTrackType().

◆ GetDVDStateSnapshot()

bool MythDVDBuffer::GetDVDStateSnapshot ( QString &  State)

Get a snapshot of the current DVD VM state.

Definition at line 1917 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::SetBookmark().

◆ RestoreDVDStateSnapshot()

bool MythDVDBuffer::RestoreDVDStateSnapshot ( const QString &  State)

Restore a DVD VM from a snapshot.

Definition at line 1933 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::VideoStart().

◆ GetFrameRate()

double MythDVDBuffer::GetFrameRate ( void  )

used by DecoderBase for the total frame number calculation for position map support and ffw/rew.

FPS for a dvd is determined by AFD::normalized_fps

  • dvdnav_get_video_format: 0 - NTSC, 1 - PAL

Definition at line 1944 of file mythdvdbuffer.cpp.

Referenced by DecoderBase::PosMapFromDb().

◆ StartOfTitle()

bool MythDVDBuffer::StartOfTitle ( void  ) const

Definition at line 1952 of file mythdvdbuffer.cpp.

◆ EndOfTitle()

bool MythDVDBuffer::EndOfTitle ( void  ) const

Definition at line 1957 of file mythdvdbuffer.cpp.

◆ PlayTitleAndPart()

void MythDVDBuffer::PlayTitleAndPart ( int  Title,
int  Part 
)

Definition at line 1962 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::InitialSeek().

◆ CloseDVD()

void MythDVDBuffer::CloseDVD ( void  )

Definition at line 64 of file mythdvdbuffer.cpp.

Referenced by OpenFile(), StartFromBeginning(), and ~MythDVDBuffer().

◆ PlayTrack()

bool MythDVDBuffer::PlayTrack ( int  Track)

Definition at line 1106 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DoJumpChapter().

◆ NextTrack()

bool MythDVDBuffer::NextTrack ( void  )

Definition at line 1119 of file mythdvdbuffer.cpp.

◆ PrevTrack()

void MythDVDBuffer::PrevTrack ( void  )

Definition at line 1133 of file mythdvdbuffer.cpp.

◆ NormalSeek()

long long MythDVDBuffer::NormalSeek ( long long  Time)

Definition at line 148 of file mythdvdbuffer.cpp.

Referenced by SeekInternal().

◆ SectorSeek()

bool MythDVDBuffer::SectorSeek ( uint64_t  Sector)

◆ SkipStillFrame()

void MythDVDBuffer::SkipStillFrame ( void  )

Definition at line 1203 of file mythdvdbuffer.cpp.

Referenced by SafeRead(), and MythDVDPlayer::StillFrameCheck().

◆ WaitSkip()

void MythDVDBuffer::WaitSkip ( void  )

Definition at line 1216 of file mythdvdbuffer.cpp.

Referenced by SafeRead(), and MythDVDPlayer::VideoLoop().

◆ SkipDVDWaitingForPlayer()

void MythDVDBuffer::SkipDVDWaitingForPlayer ( void  )

Definition at line 1224 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::VideoLoop().

◆ UnblockReading()

void MythDVDBuffer::UnblockReading ( void  )

Definition at line 1229 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::ReadPacket().

◆ IsReadingBlocked()

bool MythDVDBuffer::IsReadingBlocked ( void  )

Definition at line 1234 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::ReadPacket().

◆ GoToMenu()

bool MythDVDBuffer::GoToMenu ( const QString &  str)

jump to a dvd root or chapter menu

Definition at line 1241 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::GoToMenu().

◆ GoToNextProgram()

void MythDVDBuffer::GoToNextProgram ( void  )

Definition at line 1303 of file mythdvdbuffer.cpp.

◆ GoToPreviousProgram()

void MythDVDBuffer::GoToPreviousProgram ( void  )

Definition at line 1312 of file mythdvdbuffer.cpp.

◆ GoBack()

bool MythDVDBuffer::GoBack ( void  )

Attempts to back-up by trying to jump to the 'Go up' PGC, the root menu or the title menu in turn.

Returns
true if a jump was possible, false if not.

Definition at line 1265 of file mythdvdbuffer.cpp.

Referenced by TV::ActiveHandleAction().

◆ AudioStreamsChanged() [2/2]

void MythDVDBuffer::AudioStreamsChanged ( bool  Change)

Definition at line 1901 of file mythdvdbuffer.cpp.

◆ GetCurrentTime()

std::chrono::seconds MythDVDBuffer::GetCurrentTime ( void  ) const

◆ TitleTimeLeft()

std::chrono::seconds MythDVDBuffer::TitleTimeLeft ( void  ) const

returns seconds left in the title

Definition at line 1982 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::CalcMaxFFTime(), and DecoderBase::DoFastForward().

◆ SetTrack()

void MythDVDBuffer::SetTrack ( uint  Type,
int  TrackNo 
)

set the dvd subtitle/audio track used

Parameters
typecurrently kTrackTypeSubtitle or kTrackTypeAudio
trackNoif -1 then autoselect the track num from the dvd IFO

Definition at line 1861 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::DisableCaptions(), MythDVDPlayer::EnableCaptions(), MythDVDPlayer::InitialSeek(), and MythDVDPlayer::SetTrack().

◆ GetTrack()

int MythDVDBuffer::GetTrack ( uint  Type) const

get the track the dvd should be playing.

can either be set by the user using MythDVDBuffer::SetTrack or determined from the dvd IFO.

Parameters
typeuse either kTrackTypeSubtitle or kTrackTypeAudio

Definition at line 1880 of file mythdvdbuffer.cpp.

Referenced by MythDVDDecoder::PostProcessTracks().

◆ GetNumAudioChannels()

uint16_t MythDVDBuffer::GetNumAudioChannels ( int  Index)

Definition at line 1889 of file mythdvdbuffer.cpp.

Referenced by AvFormatDecoder::ScanStreams().

◆ SetDVDSpeed() [1/2]

void MythDVDBuffer::SetDVDSpeed ( void  )

set dvd speed. uses the constant DVD_DRIVE_SPEED table

Definition at line 1968 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::ChangeSpeed(), CloseDVD(), and OpenFile().

◆ SetDVDSpeed() [2/2]

void MythDVDBuffer::SetDVDSpeed ( int  Speed)

set dvd speed.

Definition at line 1975 of file mythdvdbuffer.cpp.

◆ SwitchAngle()

bool MythDVDBuffer::SwitchAngle ( int  Angle)

Definition at line 2158 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::SwitchAngle().

◆ SetParent()

void MythDVDBuffer::SetParent ( MythDVDPlayer Parent)

Definition at line 2173 of file mythdvdbuffer.cpp.

Referenced by MythDVDPlayer::EventEnd(), and MythDVDPlayer::EventStart().

◆ SafeRead()

int MythDVDBuffer::SafeRead ( void *  Buffer,
uint  Size 
)
overrideprotectedvirtual

Implements MythMediaBuffer.

Definition at line 524 of file mythdvdbuffer.cpp.

◆ SeekInternal()

long long MythDVDBuffer::SeekInternal ( long long  Position,
int  Whence 
)
overrideprotectedvirtual

Implements MythMediaBuffer.

Definition at line 95 of file mythdvdbuffer.cpp.

◆ ActivateButton()

void MythDVDBuffer::ActivateButton ( void  )
protected

Action taken when a dvd menu button is selected.

Definition at line 1384 of file mythdvdbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonLeft()

void MythDVDBuffer::MoveButtonLeft ( void  )
protected

Definition at line 1347 of file mythdvdbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonRight()

void MythDVDBuffer::MoveButtonRight ( void  )
protected

Definition at line 1356 of file mythdvdbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonUp()

void MythDVDBuffer::MoveButtonUp ( void  )
protected

Definition at line 1365 of file mythdvdbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonDown()

void MythDVDBuffer::MoveButtonDown ( void  )
protected

Definition at line 1374 of file mythdvdbuffer.cpp.

Referenced by HandleAction().

◆ DVDButtonUpdate()

bool MythDVDBuffer::DVDButtonUpdate ( bool  ButtonMode)
protected

update the dvd menu button parameters when a user changes the dvd menu button position

Definition at line 1636 of file mythdvdbuffer.cpp.

Referenced by GetMenuSPUPkt(), and SafeRead().

◆ ClearMenuSPUParameters()

void MythDVDBuffer::ClearMenuSPUParameters ( void  )
protected

clears the menu SPU pkt and parameters.

necessary action during dvd menu changes

Definition at line 1698 of file mythdvdbuffer.cpp.

Referenced by GetMenuSPUPkt(), and ~MythDVDBuffer().

◆ ClearMenuButton()

void MythDVDBuffer::ClearMenuButton ( void  )
protected

clears the dvd menu button structures

Definition at line 1677 of file mythdvdbuffer.cpp.

Referenced by ClearMenuSPUParameters().

◆ Seek()

long long MythDVDBuffer::Seek ( long long  Time)
protected

Definition at line 171 of file mythdvdbuffer.cpp.

Referenced by NormalSeek(), PlayTrack(), and PrevTrack().

◆ ClearChapterCache()

void MythDVDBuffer::ClearChapterCache ( void  )
protected

Definition at line 86 of file mythdvdbuffer.cpp.

Referenced by ~MythDVDBuffer().

◆ SelectDefaultButton()

void MythDVDBuffer::SelectDefaultButton ( void  )
protected

determines the default dvd menu button to show when you initially access the dvd menu.

Definition at line 1841 of file mythdvdbuffer.cpp.

Referenced by GetMenuSPUPkt().

◆ WaitForPlayer()

void MythDVDBuffer::WaitForPlayer ( void  )
protected

Definition at line 500 of file mythdvdbuffer.cpp.

Referenced by SafeRead().

◆ ConvertLangCode()

uint MythDVDBuffer::ConvertLangCode ( uint16_t  Code)
staticprotected

converts the subtitle/audio lang code to iso639.

Definition at line 1823 of file mythdvdbuffer.cpp.

Referenced by GetAudioLanguage(), and GetSubtitleLanguage().

◆ GetNibble()

uint MythDVDBuffer::GetNibble ( const uint8_t *  Buffer,
int  NibbleOffset 
)
staticprotected

copied from ffmpeg's dvdsubdec.c

Definition at line 2059 of file mythdvdbuffer.cpp.

Referenced by DecodeRLE().

◆ DecodeRLE()

int MythDVDBuffer::DecodeRLE ( uint8_t *  Bitmap,
int  Linesize,
int  Width,
int  Height,
const uint8_t *  Buffer,
int  NibbleOffset,
int  BufferSize 
)
staticprotected

decodes the bitmap from the subtitle packet.

copied from ffmpeg's dvdsubdec.c.

Definition at line 2012 of file mythdvdbuffer.cpp.

Referenced by DecodeSubtitles().

◆ GuessPalette()

void MythDVDBuffer::GuessPalette ( uint32_t *  RGBAPalette,
PaletteArray  Palette,
AlphaArray  Alpha 
)
protected

converts palette values from YUV to RGB

Definition at line 1993 of file mythdvdbuffer.cpp.

Referenced by DecodeSubtitles(), and DVDButtonUpdate().

◆ IsTransparent()

int MythDVDBuffer::IsTransparent ( const uint8_t *  Buffer,
int  Pitch,
int  Num,
const ColorArray Colors 
)
staticprotected

Obtained from ffmpeg dvdsubdec.c Used to find smallest bounded rectangle.

Definition at line 2068 of file mythdvdbuffer.cpp.

Referenced by FindSmallestBoundingRectangle().

◆ FindSmallestBoundingRectangle()

int MythDVDBuffer::FindSmallestBoundingRectangle ( AVSubtitle *  Subtitle)
staticprotected

Obtained from ffmpeg dvdsubdec.c Used to find smallest bounded rect and helps prevent jerky picture during subtitle creation.

Definition at line 2083 of file mythdvdbuffer.cpp.

Referenced by DecodeSubtitles().

Member Data Documentation

◆ m_dvdnav

dvdnav_t* MythDVDBuffer::m_dvdnav { nullptr }
protected

◆ m_dvdBlockWriteBuf

DvdBuffer MythDVDBuffer::m_dvdBlockWriteBuf { 0 }
protected

Definition at line 154 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_dvdBlockReadBuf

unsigned char* MythDVDBuffer::m_dvdBlockReadBuf { nullptr }
protected

Definition at line 155 of file mythdvdbuffer.h.

◆ m_dvdBlockRPos

int MythDVDBuffer::m_dvdBlockRPos { 0 }
protected

Definition at line 156 of file mythdvdbuffer.h.

◆ m_dvdBlockWPos

int MythDVDBuffer::m_dvdBlockWPos { 0 }
protected

Definition at line 157 of file mythdvdbuffer.h.

◆ m_pgLength

mpeg::chrono::pts MythDVDBuffer::m_pgLength { 0_pts }
protected

Definition at line 158 of file mythdvdbuffer.h.

Referenced by GetChapterLength(), and SafeRead().

◆ m_pgcLength

mpeg::chrono::pts MythDVDBuffer::m_pgcLength { 0_pts }
protected

Definition at line 159 of file mythdvdbuffer.h.

Referenced by GetTotalTimeOfTitle(), and SafeRead().

◆ m_cellStart

mpeg::chrono::pts MythDVDBuffer::m_cellStart { 0_pts }
protected

Definition at line 160 of file mythdvdbuffer.h.

Referenced by GetCellStart(), and SafeRead().

◆ m_cellChanged

bool MythDVDBuffer::m_cellChanged { false }
protected

Definition at line 161 of file mythdvdbuffer.h.

Referenced by CellChanged(), and SafeRead().

◆ m_pgcLengthChanged

bool MythDVDBuffer::m_pgcLengthChanged { false }
protected

Definition at line 162 of file mythdvdbuffer.h.

Referenced by PGCLengthChanged(), and SafeRead().

◆ m_pgStart

long long MythDVDBuffer::m_pgStart { 0 }
protected

Definition at line 163 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_currentpos

long long MythDVDBuffer::m_currentpos { 0 }
protected

Definition at line 164 of file mythdvdbuffer.h.

Referenced by SafeRead(), and Seek().

◆ m_part

int32_t MythDVDBuffer::m_part { 0 }
protected

◆ m_lastPart

int32_t MythDVDBuffer::m_lastPart { 0 }
protected

Definition at line 166 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_title

int32_t MythDVDBuffer::m_title { 0 }
protected

◆ m_lastTitle

int32_t MythDVDBuffer::m_lastTitle { 0 }
protected

Definition at line 168 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_playerWait

bool MythDVDBuffer::m_playerWait { false }
protected

Definition at line 169 of file mythdvdbuffer.h.

Referenced by DVDWaitingForPlayer(), SkipDVDWaitingForPlayer(), and WaitForPlayer().

◆ m_titleParts

int32_t MythDVDBuffer::m_titleParts { 0 }
protected

Definition at line 170 of file mythdvdbuffer.h.

Referenced by EndOfTitle(), NextTrack(), NumPartsInTitle(), PlayTrack(), and SafeRead().

◆ m_gotStop

bool MythDVDBuffer::m_gotStop { false }
protected

◆ m_currentTitleAngleCount

int MythDVDBuffer::m_currentTitleAngleCount { 0 }
protected

Definition at line 172 of file mythdvdbuffer.h.

Referenced by GetNumAngles(), and SafeRead().

◆ m_endPts

int64_t MythDVDBuffer::m_endPts { 0 }
protected

Definition at line 173 of file mythdvdbuffer.h.

Referenced by SafeRead(), and StartFromBeginning().

◆ m_timeDiff

int64_t MythDVDBuffer::m_timeDiff { 0 }
protected

Definition at line 174 of file mythdvdbuffer.h.

Referenced by AdjustTimestamp(), SafeRead(), and StartFromBeginning().

◆ m_still

std::chrono::seconds MythDVDBuffer::m_still { 0s }
protected

Definition at line 175 of file mythdvdbuffer.h.

Referenced by IsInStillFrame(), SafeRead(), and SkipStillFrame().

◆ m_lastStill

std::chrono::seconds MythDVDBuffer::m_lastStill { 0s }
protected

Definition at line 176 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_audioStreamsChanged

bool MythDVDBuffer::m_audioStreamsChanged { false }
protected

Definition at line 177 of file mythdvdbuffer.h.

Referenced by AudioStreamsChanged(), CloseDVD(), SafeRead(), and StartFromBeginning().

◆ m_dvdWaiting

bool MythDVDBuffer::m_dvdWaiting { false }
protected

Definition at line 178 of file mythdvdbuffer.h.

Referenced by IsWaiting(), SafeRead(), and WaitSkip().

◆ m_titleLength

long long MythDVDBuffer::m_titleLength { 0 }
protected

Definition at line 179 of file mythdvdbuffer.h.

Referenced by GetTotalReadPosition(), and SafeRead().

◆ m_skipstillorwait

bool MythDVDBuffer::m_skipstillorwait { true }
protected

Definition at line 180 of file mythdvdbuffer.h.

Referenced by IgnoreWaitStates(), SafeRead(), and WaitForPlayer().

◆ m_cellstartPos

long long MythDVDBuffer::m_cellstartPos { 0 }
protected

Definition at line 181 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_buttonSelected

bool MythDVDBuffer::m_buttonSelected { false }
protected

Definition at line 182 of file mythdvdbuffer.h.

Referenced by GetMenuSPUPkt(), and SafeRead().

◆ m_buttonExists

bool MythDVDBuffer::m_buttonExists { false }
protected

◆ m_buttonSeenInCell

bool MythDVDBuffer::m_buttonSeenInCell { false }
protected

Definition at line 184 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_lastButtonSeenInCell

bool MythDVDBuffer::m_lastButtonSeenInCell { false }
protected

Definition at line 185 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_cellid

int MythDVDBuffer::m_cellid { 0 }
protected

Definition at line 186 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_lastcellid

int MythDVDBuffer::m_lastcellid { 0 }
protected

Definition at line 187 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_vobid

int MythDVDBuffer::m_vobid { 0 }
protected

Definition at line 188 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_lastvobid

int MythDVDBuffer::m_lastvobid { 0 }
protected

Definition at line 189 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_cellRepeated

bool MythDVDBuffer::m_cellRepeated { false }
protected

Definition at line 190 of file mythdvdbuffer.h.

Referenced by SafeRead(), and SelectDefaultButton().

◆ m_curAudioTrack

int MythDVDBuffer::m_curAudioTrack { 0 }
protected

Definition at line 191 of file mythdvdbuffer.h.

Referenced by GetTrack(), SafeRead(), and SetTrack().

◆ m_curSubtitleTrack

int8_t MythDVDBuffer::m_curSubtitleTrack { 0 }
protected

Definition at line 192 of file mythdvdbuffer.h.

Referenced by GetTrack(), SafeRead(), and SetTrack().

◆ m_autoselectsubtitle

bool MythDVDBuffer::m_autoselectsubtitle { true }
protected

Definition at line 193 of file mythdvdbuffer.h.

Referenced by SafeRead(), and SetTrack().

◆ m_seeking

bool MythDVDBuffer::m_seeking { false }
protected

Definition at line 194 of file mythdvdbuffer.h.

Referenced by SafeRead(), and Seek().

◆ m_seektime

mpeg::chrono::pts MythDVDBuffer::m_seektime { 0_pts }
protected

Definition at line 195 of file mythdvdbuffer.h.

Referenced by SafeRead(), and Seek().

◆ m_currentTime

mpeg::chrono::pts MythDVDBuffer::m_currentTime { 0_pts }
protected

Definition at line 196 of file mythdvdbuffer.h.

Referenced by GetCurrentTime(), and SafeRead().

◆ kSeekSpeedMap

const QMap< int, int > MythDVDBuffer::kSeekSpeedMap
staticprotected
Initial value:
=
{ { 3, 1 }, { 5, 2 }, { 10, 4 }, { 20, 8 },
{ 30, 10 }, { 60, 15 }, { 120, 20 }, { 180, 60 } }

Definition at line 197 of file mythdvdbuffer.h.

Referenced by Seek().

◆ m_chapterMap

QMap<int, QList<std::chrono::seconds> > MythDVDBuffer::m_chapterMap
protected

Definition at line 198 of file mythdvdbuffer.h.

Referenced by ClearChapterCache(), and GetChapterTimes().

◆ m_parent

MythDVDPlayer* MythDVDBuffer::m_parent { nullptr }
protected

Definition at line 199 of file mythdvdbuffer.h.

Referenced by DVDButtonUpdate(), SafeRead(), Seek(), SetParent(), and SkipStillFrame().

◆ m_forcedAspect

float MythDVDBuffer::m_forcedAspect { -1.0F }
protected

Definition at line 200 of file mythdvdbuffer.h.

Referenced by GetAspectOverride(), and SafeRead().

◆ m_contextLock

QRecursiveMutex MythDVDBuffer::m_contextLock
protected

Definition at line 201 of file mythdvdbuffer.h.

Referenced by CloseDVD(), GetDVDContext(), OpenFile(), SafeRead(), and StartFromBeginning().

◆ m_context

MythDVDContext* MythDVDBuffer::m_context { nullptr }
protected

Definition at line 202 of file mythdvdbuffer.h.

Referenced by CloseDVD(), GetDVDContext(), OpenFile(), SafeRead(), and StartFromBeginning().

◆ m_dvdStat

dvdnav_status_t MythDVDBuffer::m_dvdStat { DVDNAV_STATUS_OK }
protected

Definition at line 203 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_dvdEvent

int32_t MythDVDBuffer::m_dvdEvent { 0 }
protected

Definition at line 204 of file mythdvdbuffer.h.

Referenced by GetLastEvent(), IsSeekingAllowed(), and SafeRead().

◆ m_dvdEventSize

int32_t MythDVDBuffer::m_dvdEventSize { 0 }
protected

Definition at line 205 of file mythdvdbuffer.h.

Referenced by SafeRead().

◆ m_buttonVersion

uint MythDVDBuffer::m_buttonVersion { 1 }
protected

Definition at line 206 of file mythdvdbuffer.h.

Referenced by GetMenuSubtitle().

◆ m_buttonStreamID

int MythDVDBuffer::m_buttonStreamID { 0 }
protected

Definition at line 207 of file mythdvdbuffer.h.

Referenced by GetMenuSPUPkt(), and SafeRead().

◆ m_clut

CLUTArray MythDVDBuffer::m_clut { 0 }
protected

Definition at line 208 of file mythdvdbuffer.h.

Referenced by GuessPalette(), and SafeRead().

◆ m_buttonColor

AlphaArray MythDVDBuffer::m_buttonColor { 0 }
protected

Definition at line 209 of file mythdvdbuffer.h.

Referenced by DecodeSubtitles(), and DVDButtonUpdate().

◆ m_buttonAlpha

PaletteArray MythDVDBuffer::m_buttonAlpha { 0 }
protected

Definition at line 210 of file mythdvdbuffer.h.

Referenced by DecodeSubtitles(), and DVDButtonUpdate().

◆ m_hlButton

QRect MythDVDBuffer::m_hlButton { 0, 0, 0, 0 }
protected

Definition at line 211 of file mythdvdbuffer.h.

Referenced by ClearMenuSPUParameters(), DVDButtonUpdate(), and GetButtonCoords().

◆ m_menuSpuPkt

uint8_t* MythDVDBuffer::m_menuSpuPkt { nullptr }
protected

Definition at line 212 of file mythdvdbuffer.h.

Referenced by ClearMenuSPUParameters(), and GetMenuSPUPkt().

◆ m_menuBuflength

int MythDVDBuffer::m_menuBuflength { 0 }
protected

Definition at line 213 of file mythdvdbuffer.h.

Referenced by ClearMenuSPUParameters(), GetMenuSPUPkt(), and GetMenuSubtitle().

◆ m_dvdMenuButton

AVSubtitle MythDVDBuffer::m_dvdMenuButton { }
protected

Definition at line 214 of file mythdvdbuffer.h.

Referenced by ClearMenuButton(), DVDButtonUpdate(), GetMenuSPUPkt(), and GetMenuSubtitle().

◆ m_menuBtnLock

QMutex MythDVDBuffer::m_menuBtnLock
protected

◆ m_seekLock

QMutex MythDVDBuffer::m_seekLock
protected

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