MythTV  master
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
DVDRingBuffer Class Reference

#include <dvdringbuffer.h>

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

Public Member Functions

 DVDRingBuffer (const QString &lfilename)
 
 ~DVDRingBuffer () override
 
int GetTitle (void) const
 
bool DVDWaitingForPlayer (void)
 
int GetPart (void) const
 
int GetCurrentAngle (void) const
 
int GetNumAngles (void)
 
bool IsOpen (void) const override
 Returns true if open for either reading or writing. More...
 
long long GetTotalReadPosition (void)
 
uint GetChapterLength (void) const
 
void GetChapterTimes (QList< long long > &times)
 
uint64_t GetChapterTimes (uint title)
 
long long GetReadPosition (void) const override
 returns current position in the PGC. More...
 
void GetDescForPos (QString &desc)
 
void GetPartAndTitle (int &_part, int &_title) const
 
uint GetTotalTimeOfTitle (void)
 get the total time of the title in seconds 90000 ticks = 1 sec More...
 
float GetAspectOverride (void)
 
bool IsBookmarkAllowed (void) override
 
bool IsSeekingAllowed (void) override
 
bool IsStreamed (void) override
 
int BestBufferSize (void) override
 
uint GetCellStart (void)
 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 IsInStillFrame (void) const override
 
bool IsStillFramePending (void) const
 
bool AudioStreamsChanged (void) const
 
bool IsWaiting (void) const
 
int NumPartsInTitle (void) const
 
void GetMenuSPUPkt (uint8_t *buf, int buf_size, int stream_id, uint32_t startTime)
 get SPU pkt from dvd menu subtitle stream More...
 
uint32_t AdjustTimestamp (uint32_t timestamp)
 
int64_t AdjustTimestamp (int64_t timestamp)
 
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)
 
bool IsInMenu (void) const override
 
bool HandleAction (const QStringList &actions, int64_t pts) override
 
uint GetSubtitleLanguage (int id)
 get the subtitle language from the dvd More...
 
int GetSubtitleTrackNum (uint stream_id)
 get the logical subtitle track/stream number from the dvd More...
 
bool DecodeSubtitles (AVSubtitle *sub, int *gotSubtitles, const uint8_t *spu_pkt, int buf_size, uint32_t startTime)
 generate dvd subtitle bitmap or dvd menu bitmap. More...
 
uint GetAudioLanguage (int idx)
 get the audio language from the dvd More...
 
int GetAudioTrackNum (uint stream_id)
 get the logical track index (into PGC_AST_CTL) of the element that maps the given physical stream id. More...
 
int GetAudioTrackType (uint idx)
 
bool GetNameAndSerialNum (QString &_name, QString &_serialnum)
 Get the dvd title and serial num. More...
 
bool GetDVDStateSnapshot (QString &state)
 Get a snapshot of the current DVD VM state. More...
 
bool RestoreDVDStateSnapshot (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)
 
bool EndOfTitle (void)
 
bool OpenFile (const QString &lfilename, uint retry_ms=kDefaultOpenTimeout) override
 Opens a dvd device for reading. More...
 
void PlayTitleAndPart (int _title, int _part)
 
bool StartFromBeginning (void) override
 
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 IgnoreWaitStates (bool ignore) override
 
void AudioStreamsChanged (bool change)
 
int64_t GetCurrentTime (void)
 
uint TitleTimeLeft (void)
 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)
 get the track the dvd should be playing. More...
 
uint8_t GetNumAudioChannels (int idx)
 
void SetDVDSpeed (void)
 set dvd speed. More...
 
void SetDVDSpeed (int speed)
 set dvd speed. More...
 
bool SwitchAngle (uint angle)
 
void SetParent (MythDVDPlayer *p)
 
- Public Member Functions inherited from RingBuffer
virtual ~RingBuffer ()=0
 Deletes. More...
 
void SetWriteBufferSize (int newSize)
 
void SetWriteBufferMinWriteSize (int newMinSize)
 Calls ThreadedFileWriter::SetWriteBufferMinWriteSize(int) More...
 
void SetOldFile (bool is_old)
 Tell RingBuffer if this is an old file or not. More...
 
void UpdateRawBitrate (uint raw_bitrate)
 Set the raw bit rate, to allow RingBuffer adjust effective bitrate. More...
 
void UpdatePlaySpeed (float play_speed)
 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 innacurate 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
 Returns name of file used by this RingBuffer. More...
 
QString GetSubtitleFilename (void) const
 
QString GetLastError (void) const
 
bool GetCommsError (void) const
 
void ResetCommsError (void)
 
bool GetStopReads (void) const
 Returns value of stopreads. More...
 
bool isPaused (void) const
 Returns false iff read-ahead is not running and read-ahead is not paused. More...
 
QString GetDecoderRate (void)
 
QString GetStorageRate (void)
 
QString GetAvailableBuffer (void)
 
uint GetBufferSize (void)
 
long long GetWritePosition (void) const
 Returns how far into a ThreadedFileWriter file we have written. More...
 
long long GetRealFileSize (void) const
 Returns the size of the file we are reading/writing, or -1 if the query fails. More...
 
bool IsNearEnd (double fps, uint vvf) const
 
RingBufferType GetType () const
 
int GetReadBufAvail () const
 Returns number of bytes available for reading from buffer. More...
 
bool SetReadInternalMode (bool mode)
 
bool IsReadInternalMode (void)
 
bool IsDisc (void) const
 
bool IsDVD (void) const
 
bool IsBD (void) const
 
const DVDRingBufferDVD (void) const
 
const BDRingBufferBD (void) const
 
DVDRingBufferDVD (void)
 
BDRingBufferBD (void)
 
virtual bool IsInDiscMenuOrStillFrame (void) const
 
virtual bool ReOpen (QString="")
 
int Read (void *buf, 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 *buf, int count)
 
void Reset (bool full=false, bool toAdjust=false, bool resetInternal=false)
 Resets the read-ahead thread and our position in the file. More...
 
long long Seek (long long pos, int whence, bool has_lock=false)
 Seeks to a particular position in the file. More...
 
void Pause (void)
 Pauses the read-ahead thread. More...
 
void Unpause (void)
 Unpauses the read-ahead thread. More...
 
void WaitForPause (void)
 Waits for Pause(void) to take effect. More...
 
void Start (void)
 Starts the read-ahead thread. More...
 
void StopReads (void)
 ???? More...
 
void StartReads (void)
 ???? More...
 
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 *buf, 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 pos, int whence, bool has_lock=false)
 Calls ThreadedFileWriter::Seek(long long,int). More...
 
bool WriterSetBlocking (bool lock=true)
 Calls ThreadedFileWriter::SetBlocking(bool) More...
 
long long SetAdjustFilesize (void)
 

Protected Types

enum  processState_t { PROCESS_NORMAL, PROCESS_REPROCESS, PROCESS_WAIT }
 

Protected Member Functions

int safe_read (void *data, uint sz) override
 
long long SeekInternal (long long pos, 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 b_mode)
 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)
 
uint ConvertLangCode (uint16_t code)
 converts the subtitle/audio lang code to iso639. More...
 
void SelectDefaultButton (void)
 determines the default dvd menu button to show when you initially access the dvd menu. More...
 
void WaitForPlayer (void)
 
int get_nibble (const uint8_t *buf, int nibble_offset)
 copied from ffmpeg's dvdsubdec.c More...
 
int decode_rle (uint8_t *bitmap, int linesize, int w, int h, const uint8_t *buf, int nibble_offset, int buf_size)
 decodes the bitmap from the subtitle packet. More...
 
void guess_palette (uint32_t *rgba_palette, const uint8_t *palette, const uint8_t *alpha)
 converts palette values from YUV to RGB More...
 
int is_transp (const uint8_t *buf, int pitch, int n, const uint8_t *transp_color)
 obtained from ffmpeg dvdsubdec.c used to find smallest bounded rectangle More...
 
int find_smallest_bounding_rectangle (AVSubtitle *s)
 obtained from ffmpeg dvdsubdec.c used to find smallest bounded rect. More...
 
- Protected Member Functions inherited from RingBuffer
 RingBuffer (RingBufferType rbtype)
 
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 *buf, int count, bool peek)
 When possible reads from the read-ahead buffer, otherwise reads directly from the device. More...
 
int ReadDirect (void *buf, int count, bool peek)
 
bool WaitForReadsAllowed (void)
 
int WaitForAvail (int count, int timeout)
 
virtual long long GetRealFileSizeInternal (void) const
 
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)
 
- 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 ()
 
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=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 (unsigned long time=ULONG_MAX)
 Wait for the MThread to exit, with a maximum timeout. More...
 

Protected Attributes

dvdnav_t * m_dvdnav {nullptr}
 
unsigned char m_dvdBlockWriteBuf [DVD_BLOCK_SIZE]
 
unsigned char * m_dvdBlockReadBuf {nullptr}
 
int m_dvdBlockRPos {0}
 
int m_dvdBlockWPos {0}
 
long long m_pgLength {0}
 
long long m_pgcLength {0}
 
long long m_cellStart {0}
 
bool m_cellChanged {false}
 
bool m_pgcLengthChanged {false}
 
long long m_pgStart {0}
 
long long m_currentpos {0}
 
dvdnav_t * m_lastNav {nullptr}
 
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_currentAngle {0}
 
int m_currentTitleAngleCount {0}
 
int64_t m_endPts {0}
 
int64_t m_timeDiff {0}
 
int m_still {0}
 
int m_lastStill {0}
 
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}
 
QString m_dvdname
 
QString m_serialnumber
 
bool m_seeking {false}
 
int64_t m_seektime {0}
 
int64_t m_currentTime {0}
 
QMap< uint, uintm_seekSpeedMap
 
QMap< uint, QList< uint64_t > > m_chapterMap
 
MythDVDPlayerm_parent {nullptr}
 
float m_forcedAspect {-1.0F}
 
QMutex m_contextLock {QMutex::Recursive}
 
MythDVDContextm_context {nullptr}
 
processState_t m_processState {PROCESS_NORMAL}
 
dvdnav_status_t m_dvdStat {DVDNAV_STATUS_OK}
 
int32_t m_dvdEvent {0}
 
int32_t m_dvdEventSize {0}
 
bool m_inMenu {false}
 
uint m_buttonVersion {1}
 
int m_buttonStreamID {0}
 
uint32_t m_clut [16]
 
uint8_t m_button_color [4]
 
uint8_t m_button_alpha [4]
 
QRect m_hl_button {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 RingBuffer
RingBufferType 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 {CHUNK}
 
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< qint64, uint64_t > m_decoderReads
 
QMutex m_storageReadLock
 
QMap< qint64, 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_prolog_executed {true}
 
bool m_epilog_executed {true}
 

Private Member Functions

 Q_DECLARE_TR_FUNCTIONS (DVDRingBuffer)
 

Additional Inherited Members

- Static Public Member Functions inherited from RingBuffer
static RingBufferCreate (const QString &xfilename, bool write, bool usereadahead=true, int timeout_ms=kDefaultOpenTimeout, bool stream_only=false)
 Creates a RingBuffer instance. More...
 
static QString BitrateToString (uint64_t rate, bool hz=false)
 
static void AVFormatInitNetwork (void)
 
- Static Public Attributes inherited from RingBuffer
static const int kDefaultOpenTimeout = 2000
 
static const int kLiveTVOpenTimeout = 10000
 
static QMutex s_subExtLock
 
static QStringList s_subExt
 
static QStringList s_subExtNoCheck
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void sleep (unsigned long time)
 
static void msleep (unsigned long time)
 
static void usleep (unsigned long time)
 
static void ThreadSetup (const QString &)
 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)
 
- Static Protected Attributes inherited from MThread
static const int kDefaultStartTimeout
 

Detailed Description

Definition at line 91 of file dvdringbuffer.h.

Member Enumeration Documentation

◆ processState_t

Enumerator
PROCESS_NORMAL 
PROCESS_REPROCESS 
PROCESS_WAIT 

Definition at line 202 of file dvdringbuffer.h.

Constructor & Destructor Documentation

◆ DVDRingBuffer()

DVDRingBuffer::DVDRingBuffer ( const QString &  lfilename)
explicit

Definition at line 206 of file dvdringbuffer.cpp.

◆ ~DVDRingBuffer()

DVDRingBuffer::~DVDRingBuffer ( )
override

Definition at line 223 of file dvdringbuffer.cpp.

Member Function Documentation

◆ Q_DECLARE_TR_FUNCTIONS()

DVDRingBuffer::Q_DECLARE_TR_FUNCTIONS ( DVDRingBuffer  )
private

◆ GetTitle()

int DVDRingBuffer::GetTitle ( void  ) const
inline

Definition at line 100 of file dvdringbuffer.h.

◆ DVDWaitingForPlayer()

bool DVDRingBuffer::DVDWaitingForPlayer ( void  )
inline

Definition at line 101 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::VideoLoop().

◆ GetPart()

int DVDRingBuffer::GetPart ( void  ) const
inline

Definition at line 102 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::GetCurrentChapter().

◆ GetCurrentAngle()

int DVDRingBuffer::GetCurrentAngle ( void  ) const
inline

Definition at line 103 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::GetCurrentAngle().

◆ GetNumAngles()

int DVDRingBuffer::GetNumAngles ( void  )
inline

Definition at line 104 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::GetNumAngles().

◆ IsOpen()

bool DVDRingBuffer::IsOpen ( void  ) const
inlineoverridevirtual

Returns true if open for either reading or writing.

Implements RingBuffer.

Definition at line 105 of file dvdringbuffer.h.

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

◆ GetTotalReadPosition()

long long DVDRingBuffer::GetTotalReadPosition ( void  )
inline

Definition at line 106 of file dvdringbuffer.h.

Referenced by DecoderBase::PosMapFromDb().

◆ GetChapterLength()

uint DVDRingBuffer::GetChapterLength ( void  ) const
inline

Definition at line 107 of file dvdringbuffer.h.

Referenced by TV::DVDJumpBack(), and TV::DVDJumpForward().

◆ GetChapterTimes() [1/2]

void DVDRingBuffer::GetChapterTimes ( QList< long long > &  times)

Definition at line 558 of file dvdringbuffer.cpp.

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

◆ GetChapterTimes() [2/2]

uint64_t DVDRingBuffer::GetChapterTimes ( uint  title)

Definition at line 570 of file dvdringbuffer.cpp.

◆ GetReadPosition()

long long DVDRingBuffer::GetReadPosition ( void  ) const
overridevirtual

returns current position in the PGC.

Implements RingBuffer.

Definition at line 604 of file dvdringbuffer.cpp.

Referenced by safe_read().

◆ GetDescForPos()

void DVDRingBuffer::GetDescForPos ( QString &  desc)

Definition at line 413 of file dvdringbuffer.cpp.

◆ GetPartAndTitle()

void DVDRingBuffer::GetPartAndTitle ( int &  _part,
int &  _title 
) const
inline

Definition at line 112 of file dvdringbuffer.h.

Referenced by TV::ShowLCDDVDInfo().

◆ GetTotalTimeOfTitle()

uint DVDRingBuffer::GetTotalTimeOfTitle ( void  )

◆ GetAspectOverride()

float DVDRingBuffer::GetAspectOverride ( void  )
inline

Definition at line 115 of file dvdringbuffer.h.

Referenced by AvFormatDecoder::MpegPreProcessPkt().

◆ IsBookmarkAllowed()

bool DVDRingBuffer::IsBookmarkAllowed ( void  )
overridevirtual

Reimplemented from RingBuffer.

Definition at line 398 of file dvdringbuffer.cpp.

◆ IsSeekingAllowed()

bool DVDRingBuffer::IsSeekingAllowed ( void  )
overridevirtual

Reimplemented from RingBuffer.

Definition at line 403 of file dvdringbuffer.cpp.

◆ IsStreamed()

bool DVDRingBuffer::IsStreamed ( void  )
inlineoverridevirtual

Reimplemented from RingBuffer.

Definition at line 118 of file dvdringbuffer.h.

◆ BestBufferSize()

int DVDRingBuffer::BestBufferSize ( void  )
inlineoverridevirtual

Reimplemented from RingBuffer.

Definition at line 119 of file dvdringbuffer.h.

◆ GetCellStart()

uint DVDRingBuffer::GetCellStart ( void  )

get the start of the cell in seconds

Definition at line 1327 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::DoJumpChapter().

◆ PGCLengthChanged()

bool DVDRingBuffer::PGCLengthChanged ( void  )

check if pgc length has changed

Definition at line 1343 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::StreamChangeCheck().

◆ CellChanged()

bool DVDRingBuffer::CellChanged ( void  )

check if dvd cell has changed

Definition at line 1334 of file dvdringbuffer.cpp.

◆ IsInStillFrame()

bool DVDRingBuffer::IsInStillFrame ( void  ) const
inlineoverridevirtual

◆ IsStillFramePending()

bool DVDRingBuffer::IsStillFramePending ( void  ) const
inline

Definition at line 125 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::VideoLoop().

◆ AudioStreamsChanged() [1/2]

bool DVDRingBuffer::AudioStreamsChanged ( void  ) const
inline

◆ IsWaiting()

bool DVDRingBuffer::IsWaiting ( void  ) const
inline

Definition at line 127 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::VideoLoop().

◆ NumPartsInTitle()

int DVDRingBuffer::NumPartsInTitle ( void  ) const
inline

Definition at line 128 of file dvdringbuffer.h.

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

◆ GetMenuSPUPkt()

void DVDRingBuffer::GetMenuSPUPkt ( uint8_t *  buf,
int  buf_size,
int  stream_id,
uint32_t  startTime 
)

get SPU pkt from dvd menu subtitle stream

Definition at line 1552 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoder::ProcessSubtitlePacket().

◆ AdjustTimestamp() [1/2]

uint32_t DVDRingBuffer::AdjustTimestamp ( uint32_t  timestamp)

Definition at line 619 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::ReadPacket(), and safe_read().

◆ AdjustTimestamp() [2/2]

int64_t DVDRingBuffer::AdjustTimestamp ( int64_t  timestamp)

Definition at line 631 of file dvdringbuffer.cpp.

◆ GetDVDContext()

MythDVDContext * DVDRingBuffer::GetDVDContext ( void  )

Definition at line 643 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::ProcessDataPacket().

◆ GetLastEvent()

int32_t DVDRingBuffer::GetLastEvent ( void  ) const
inline

Definition at line 134 of file dvdringbuffer.h.

Referenced by AvFormatDecoderDVD::ReadPacket().

◆ GetMenuSubtitle()

AVSubtitle * DVDRingBuffer::GetMenuSubtitle ( uint version)

returns dvd menu button information if available.

used by NVP::DisplayDVDButton

Definition at line 1586 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ NumMenuButtons()

int DVDRingBuffer::NumMenuButtons ( void  ) const

◆ GetButtonCoords()

QRect DVDRingBuffer::GetButtonCoords ( void  )

get coordinates of highlighted button

Definition at line 1608 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ ReleaseMenuButton()

void DVDRingBuffer::ReleaseMenuButton ( void  )

Definition at line 1601 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::DisplayDVDButton().

◆ IsInMenu()

bool DVDRingBuffer::IsInMenu ( void  ) const
inlineoverridevirtual

◆ HandleAction()

bool DVDRingBuffer::HandleAction ( const QStringList &  actions,
int64_t  pts 
)
overridevirtual

Reimplemented from RingBuffer.

Definition at line 1464 of file dvdringbuffer.cpp.

◆ GetSubtitleLanguage()

uint DVDRingBuffer::GetSubtitleLanguage ( int  id)

get the subtitle language from the dvd

Definition at line 1980 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::PostProcessTracks().

◆ GetSubtitleTrackNum()

int DVDRingBuffer::GetSubtitleTrackNum ( uint  stream_id)

get the logical subtitle track/stream number from the dvd

Parameters
stream_idthe stream id, range 0-31

Definition at line 1991 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::PostProcessTracks().

◆ DecodeSubtitles()

bool DVDRingBuffer::DecodeSubtitles ( AVSubtitle *  sub,
int *  gotSubtitles,
const uint8_t *  spu_pkt,
int  buf_size,
uint32_t  startTime 
)

generate dvd subtitle bitmap or dvd menu bitmap.

code obtained from ffmpeg project

Definition at line 1623 of file dvdringbuffer.cpp.

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

◆ GetAudioLanguage()

uint DVDRingBuffer::GetAudioLanguage ( int  idx)

get the audio language from the dvd

Definition at line 1895 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::GetAudioLanguage().

◆ GetAudioTrackNum()

int DVDRingBuffer::GetAudioTrackNum ( uint  stream_id)

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 1921 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::GetAudioLanguage(), AvFormatDecoderDVD::GetAudioTrackType(), safe_read(), and AvFormatDecoder::ScanStreams().

◆ GetAudioTrackType()

int DVDRingBuffer::GetAudioTrackType ( uint  idx)

Definition at line 1956 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::GetAudioTrackType().

◆ GetNameAndSerialNum()

bool DVDRingBuffer::GetNameAndSerialNum ( QString &  _name,
QString &  _serialnum 
)

Get the dvd title and serial num.

Definition at line 2099 of file dvdringbuffer.cpp.

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

◆ GetDVDStateSnapshot()

bool DVDRingBuffer::GetDVDStateSnapshot ( QString &  state)

Get a snapshot of the current DVD VM state.

Definition at line 2108 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::SetBookmark().

◆ RestoreDVDStateSnapshot()

bool DVDRingBuffer::RestoreDVDStateSnapshot ( QString &  state)

Restore a DVD VM from a snapshot.

Definition at line 2124 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::VideoStart().

◆ GetFrameRate()

double DVDRingBuffer::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 2136 of file dvdringbuffer.cpp.

Referenced by DecoderBase::PosMapFromDb().

◆ StartOfTitle()

bool DVDRingBuffer::StartOfTitle ( void  )
inline

Definition at line 158 of file dvdringbuffer.h.

Referenced by TV::DVDJumpBack().

◆ EndOfTitle()

bool DVDRingBuffer::EndOfTitle ( void  )
inline

Definition at line 159 of file dvdringbuffer.h.

Referenced by TV::DVDJumpForward().

◆ OpenFile()

bool DVDRingBuffer::OpenFile ( const QString &  lfilename,
uint  retry_ms = kDefaultOpenTimeout 
)
overridevirtual

Opens a dvd device for reading.

Parameters
lfilenamePath of the dvd device to read.
retry_msIgnored. This value is part of the API inherited from the parent class.
Returns
Returns true if the dvd was opened.

Implements RingBuffer.

Definition at line 437 of file dvdringbuffer.cpp.

Referenced by DVDRingBuffer(), and StartFromBeginning().

◆ PlayTitleAndPart()

void DVDRingBuffer::PlayTitleAndPart ( int  _title,
int  _part 
)
inline

Definition at line 166 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::InitialSeek().

◆ StartFromBeginning()

bool DVDRingBuffer::StartFromBeginning ( void  )
overridevirtual

Reimplemented from RingBuffer.

Definition at line 514 of file dvdringbuffer.cpp.

◆ CloseDVD()

void DVDRingBuffer::CloseDVD ( void  )

Definition at line 234 of file dvdringbuffer.cpp.

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

◆ playTrack()

bool DVDRingBuffer::playTrack ( int  track)

Definition at line 1278 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::DoJumpChapter().

◆ nextTrack()

bool DVDRingBuffer::nextTrack ( void  )

Definition at line 1291 of file dvdringbuffer.cpp.

◆ prevTrack()

void DVDRingBuffer::prevTrack ( void  )

Definition at line 1305 of file dvdringbuffer.cpp.

◆ NormalSeek()

long long DVDRingBuffer::NormalSeek ( long long  time)

Definition at line 327 of file dvdringbuffer.cpp.

Referenced by SeekInternal().

◆ SectorSeek()

bool DVDRingBuffer::SectorSeek ( uint64_t  sector)

◆ SkipStillFrame()

void DVDRingBuffer::SkipStillFrame ( void  )

◆ WaitSkip()

void DVDRingBuffer::WaitSkip ( void  )

Definition at line 1365 of file dvdringbuffer.cpp.

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

◆ SkipDVDWaitingForPlayer()

void DVDRingBuffer::SkipDVDWaitingForPlayer ( void  )
inline

Definition at line 177 of file dvdringbuffer.h.

Referenced by MythDVDPlayer::VideoLoop().

◆ UnblockReading()

void DVDRingBuffer::UnblockReading ( void  )
inline

Definition at line 178 of file dvdringbuffer.h.

Referenced by AvFormatDecoderDVD::ReadPacket().

◆ IsReadingBlocked()

bool DVDRingBuffer::IsReadingBlocked ( void  )
inline

Definition at line 179 of file dvdringbuffer.h.

Referenced by AvFormatDecoderDVD::ReadPacket().

◆ GoToMenu()

bool DVDRingBuffer::GoToMenu ( const QString &  str)

jump to a dvd root or chapter menu

Definition at line 1375 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::GoToMenu().

◆ GoToNextProgram()

void DVDRingBuffer::GoToNextProgram ( void  )

Definition at line 1446 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::GoToDVDProgram().

◆ GoToPreviousProgram()

void DVDRingBuffer::GoToPreviousProgram ( void  )

Definition at line 1455 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::GoToDVDProgram().

◆ GoBack()

bool DVDRingBuffer::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 1404 of file dvdringbuffer.cpp.

Referenced by TV::ActiveHandleAction().

◆ IgnoreWaitStates()

void DVDRingBuffer::IgnoreWaitStates ( bool  ignore)
inlineoverridevirtual

Reimplemented from RingBuffer.

Definition at line 185 of file dvdringbuffer.h.

◆ AudioStreamsChanged() [2/2]

void DVDRingBuffer::AudioStreamsChanged ( bool  change)
inline

Definition at line 186 of file dvdringbuffer.h.

◆ GetCurrentTime()

int64_t DVDRingBuffer::GetCurrentTime ( void  )
inline

◆ TitleTimeLeft()

uint DVDRingBuffer::TitleTimeLeft ( void  )

returns seconds left in the title

Definition at line 2165 of file dvdringbuffer.cpp.

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

◆ SetTrack()

void DVDRingBuffer::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 2049 of file dvdringbuffer.cpp.

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

◆ GetTrack()

int DVDRingBuffer::GetTrack ( uint  type)

get the track the dvd should be playing.

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

Parameters
typeuse either kTrackTypeSubtitle or kTrackTypeAudio

Definition at line 2071 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoderDVD::PostProcessTracks().

◆ GetNumAudioChannels()

uint8_t DVDRingBuffer::GetNumAudioChannels ( int  idx)

Definition at line 2081 of file dvdringbuffer.cpp.

Referenced by AvFormatDecoder::ScanStreams().

◆ SetDVDSpeed() [1/2]

void DVDRingBuffer::SetDVDSpeed ( void  )

set dvd speed.

uses the constant DVD_DRIVE_SPEED table

Definition at line 2149 of file dvdringbuffer.cpp.

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

◆ SetDVDSpeed() [2/2]

void DVDRingBuffer::SetDVDSpeed ( int  speed)

set dvd speed.

Definition at line 2157 of file dvdringbuffer.cpp.

◆ SwitchAngle()

bool DVDRingBuffer::SwitchAngle ( uint  angle)

Definition at line 2352 of file dvdringbuffer.cpp.

Referenced by MythDVDPlayer::SwitchAngle().

◆ SetParent()

void DVDRingBuffer::SetParent ( MythDVDPlayer p)
inline

Definition at line 196 of file dvdringbuffer.h.

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

◆ safe_read()

int DVDRingBuffer::safe_read ( void *  data,
uint  sz 
)
overrideprotectedvirtual

Implements RingBuffer.

Definition at line 676 of file dvdringbuffer.cpp.

◆ SeekInternal()

long long DVDRingBuffer::SeekInternal ( long long  pos,
int  whence 
)
overrideprotectedvirtual

Implements RingBuffer.

Definition at line 265 of file dvdringbuffer.cpp.

◆ ActivateButton()

void DVDRingBuffer::ActivateButton ( void  )
protected

action taken when a dvd menu button is selected

Definition at line 1540 of file dvdringbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonLeft()

void DVDRingBuffer::MoveButtonLeft ( void  )
protected

Definition at line 1502 of file dvdringbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonRight()

void DVDRingBuffer::MoveButtonRight ( void  )
protected

Definition at line 1511 of file dvdringbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonUp()

void DVDRingBuffer::MoveButtonUp ( void  )
protected

Definition at line 1520 of file dvdringbuffer.cpp.

Referenced by HandleAction().

◆ MoveButtonDown()

void DVDRingBuffer::MoveButtonDown ( void  )
protected

Definition at line 1529 of file dvdringbuffer.cpp.

Referenced by HandleAction().

◆ DVDButtonUpdate()

bool DVDRingBuffer::DVDButtonUpdate ( bool  b_mode)
protected

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

Definition at line 1805 of file dvdringbuffer.cpp.

Referenced by GetMenuSPUPkt(), and safe_read().

◆ ClearMenuSPUParameters()

void DVDRingBuffer::ClearMenuSPUParameters ( void  )
protected

clears the menu SPU pkt and parameters.

necessary action during dvd menu changes

Definition at line 1870 of file dvdringbuffer.cpp.

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

◆ ClearMenuButton()

void DVDRingBuffer::ClearMenuButton ( void  )
protected

clears the dvd menu button structures

Definition at line 1849 of file dvdringbuffer.cpp.

Referenced by ClearMenuSPUParameters().

◆ Seek()

long long DVDRingBuffer::Seek ( long long  time)
protected

Definition at line 352 of file dvdringbuffer.cpp.

Referenced by NormalSeek(), playTrack(), and prevTrack().

◆ ClearChapterCache()

void DVDRingBuffer::ClearChapterCache ( void  )
protected

Definition at line 256 of file dvdringbuffer.cpp.

Referenced by ~DVDRingBuffer().

◆ ConvertLangCode()

uint DVDRingBuffer::ConvertLangCode ( uint16_t  code)
protected

converts the subtitle/audio lang code to iso639.

Definition at line 2008 of file dvdringbuffer.cpp.

Referenced by GetAudioLanguage(), and GetSubtitleLanguage().

◆ SelectDefaultButton()

void DVDRingBuffer::SelectDefaultButton ( void  )
protected

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

Definition at line 2029 of file dvdringbuffer.cpp.

Referenced by GetMenuSPUPkt().

◆ WaitForPlayer()

void DVDRingBuffer::WaitForPlayer ( void  )
protected

Definition at line 653 of file dvdringbuffer.cpp.

Referenced by safe_read().

◆ get_nibble()

int DVDRingBuffer::get_nibble ( const uint8_t *  buf,
int  nibble_offset 
)
protected

copied from ffmpeg's dvdsubdec.c

Definition at line 2246 of file dvdringbuffer.cpp.

Referenced by decode_rle().

◆ decode_rle()

int DVDRingBuffer::decode_rle ( uint8_t *  bitmap,
int  linesize,
int  w,
int  h,
const uint8_t *  buf,
int  nibble_offset,
int  buf_size 
)
protected

decodes the bitmap from the subtitle packet.

copied from ffmpeg's dvdsubdec.c.

Definition at line 2200 of file dvdringbuffer.cpp.

Referenced by DecodeSubtitles().

◆ guess_palette()

void DVDRingBuffer::guess_palette ( uint32_t *  rgba_palette,
const uint8_t *  palette,
const uint8_t *  alpha 
)
protected

converts palette values from YUV to RGB

Definition at line 2172 of file dvdringbuffer.cpp.

Referenced by DecodeSubtitles(), and DVDButtonUpdate().

◆ is_transp()

int DVDRingBuffer::is_transp ( const uint8_t *  buf,
int  pitch,
int  n,
const uint8_t *  transp_color 
)
protected

obtained from ffmpeg dvdsubdec.c used to find smallest bounded rectangle

Definition at line 2255 of file dvdringbuffer.cpp.

Referenced by find_smallest_bounding_rectangle().

◆ find_smallest_bounding_rectangle()

int DVDRingBuffer::find_smallest_bounding_rectangle ( AVSubtitle *  s)
protected

obtained from ffmpeg dvdsubdec.c used to find smallest bounded rect.

helps prevent jerky picture during subtitle creation

Definition at line 2273 of file dvdringbuffer.cpp.

Referenced by DecodeSubtitles().

Member Data Documentation

◆ m_dvdnav

dvdnav_t* DVDRingBuffer::m_dvdnav {nullptr}
protected

◆ m_dvdBlockWriteBuf

unsigned char DVDRingBuffer::m_dvdBlockWriteBuf[DVD_BLOCK_SIZE]
protected

Definition at line 210 of file dvdringbuffer.h.

Referenced by DVDRingBuffer(), and safe_read().

◆ m_dvdBlockReadBuf

unsigned char* DVDRingBuffer::m_dvdBlockReadBuf {nullptr}
protected

Definition at line 211 of file dvdringbuffer.h.

◆ m_dvdBlockRPos

int DVDRingBuffer::m_dvdBlockRPos {0}
protected

Definition at line 212 of file dvdringbuffer.h.

◆ m_dvdBlockWPos

int DVDRingBuffer::m_dvdBlockWPos {0}
protected

Definition at line 213 of file dvdringbuffer.h.

◆ m_pgLength

long long DVDRingBuffer::m_pgLength {0}
protected

Definition at line 214 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_pgcLength

long long DVDRingBuffer::m_pgcLength {0}
protected

Definition at line 215 of file dvdringbuffer.h.

Referenced by GetTotalTimeOfTitle(), and safe_read().

◆ m_cellStart

long long DVDRingBuffer::m_cellStart {0}
protected

Definition at line 216 of file dvdringbuffer.h.

Referenced by GetCellStart(), and safe_read().

◆ m_cellChanged

bool DVDRingBuffer::m_cellChanged {false}
protected

Definition at line 217 of file dvdringbuffer.h.

Referenced by CellChanged(), and safe_read().

◆ m_pgcLengthChanged

bool DVDRingBuffer::m_pgcLengthChanged {false}
protected

Definition at line 218 of file dvdringbuffer.h.

Referenced by PGCLengthChanged(), and safe_read().

◆ m_pgStart

long long DVDRingBuffer::m_pgStart {0}
protected

Definition at line 219 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_currentpos

long long DVDRingBuffer::m_currentpos {0}
protected

Definition at line 220 of file dvdringbuffer.h.

Referenced by safe_read(), and Seek().

◆ m_lastNav

dvdnav_t* DVDRingBuffer::m_lastNav {nullptr}
protected

Definition at line 221 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_part

int32_t DVDRingBuffer::m_part {0}
protected

Definition at line 222 of file dvdringbuffer.h.

Referenced by GetDescForPos(), nextTrack(), prevTrack(), and safe_read().

◆ m_lastPart

int32_t DVDRingBuffer::m_lastPart {0}
protected

Definition at line 223 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_title

int32_t DVDRingBuffer::m_title {0}
protected

◆ m_lastTitle

int32_t DVDRingBuffer::m_lastTitle {0}
protected

Definition at line 225 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_playerWait

bool DVDRingBuffer::m_playerWait {false}
protected

Definition at line 226 of file dvdringbuffer.h.

Referenced by WaitForPlayer().

◆ m_titleParts

int32_t DVDRingBuffer::m_titleParts {0}
protected

Definition at line 227 of file dvdringbuffer.h.

Referenced by nextTrack(), playTrack(), and safe_read().

◆ m_gotStop

bool DVDRingBuffer::m_gotStop {false}
protected

◆ m_currentAngle

int DVDRingBuffer::m_currentAngle {0}
protected

Definition at line 229 of file dvdringbuffer.h.

Referenced by safe_read(), and SwitchAngle().

◆ m_currentTitleAngleCount

int DVDRingBuffer::m_currentTitleAngleCount {0}
protected

Definition at line 230 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_endPts

int64_t DVDRingBuffer::m_endPts {0}
protected

Definition at line 231 of file dvdringbuffer.h.

Referenced by safe_read(), and StartFromBeginning().

◆ m_timeDiff

int64_t DVDRingBuffer::m_timeDiff {0}
protected

Definition at line 232 of file dvdringbuffer.h.

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

◆ m_still

int DVDRingBuffer::m_still {0}
protected

Definition at line 234 of file dvdringbuffer.h.

Referenced by safe_read(), and SkipStillFrame().

◆ m_lastStill

int DVDRingBuffer::m_lastStill {0}
protected

Definition at line 235 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_audioStreamsChanged

bool DVDRingBuffer::m_audioStreamsChanged {false}
protected

Definition at line 236 of file dvdringbuffer.h.

Referenced by CloseDVD(), safe_read(), and StartFromBeginning().

◆ m_dvdWaiting

bool DVDRingBuffer::m_dvdWaiting {false}
protected

Definition at line 237 of file dvdringbuffer.h.

Referenced by safe_read(), and WaitSkip().

◆ m_titleLength

long long DVDRingBuffer::m_titleLength {0}
protected

Definition at line 238 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_skipstillorwait

bool DVDRingBuffer::m_skipstillorwait {true}
protected

Definition at line 239 of file dvdringbuffer.h.

Referenced by safe_read(), and WaitForPlayer().

◆ m_cellstartPos

long long DVDRingBuffer::m_cellstartPos {0}
protected

Definition at line 240 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_buttonSelected

bool DVDRingBuffer::m_buttonSelected {false}
protected

Definition at line 241 of file dvdringbuffer.h.

Referenced by GetMenuSPUPkt(), and safe_read().

◆ m_buttonExists

bool DVDRingBuffer::m_buttonExists {false}
protected

◆ m_buttonSeenInCell

bool DVDRingBuffer::m_buttonSeenInCell {false}
protected

Definition at line 243 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_lastButtonSeenInCell

bool DVDRingBuffer::m_lastButtonSeenInCell {false}
protected

Definition at line 244 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_cellid

int DVDRingBuffer::m_cellid {0}
protected

Definition at line 245 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_lastcellid

int DVDRingBuffer::m_lastcellid {0}
protected

Definition at line 246 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_vobid

int DVDRingBuffer::m_vobid {0}
protected

Definition at line 247 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_lastvobid

int DVDRingBuffer::m_lastvobid {0}
protected

Definition at line 248 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_cellRepeated

bool DVDRingBuffer::m_cellRepeated {false}
protected

Definition at line 249 of file dvdringbuffer.h.

Referenced by safe_read(), and SelectDefaultButton().

◆ m_curAudioTrack

int DVDRingBuffer::m_curAudioTrack {0}
protected

Definition at line 251 of file dvdringbuffer.h.

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

◆ m_curSubtitleTrack

int8_t DVDRingBuffer::m_curSubtitleTrack {0}
protected

Definition at line 252 of file dvdringbuffer.h.

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

◆ m_autoselectsubtitle

bool DVDRingBuffer::m_autoselectsubtitle {true}
protected

Definition at line 253 of file dvdringbuffer.h.

Referenced by safe_read(), and SetTrack().

◆ m_dvdname

QString DVDRingBuffer::m_dvdname
protected

Definition at line 254 of file dvdringbuffer.h.

Referenced by GetNameAndSerialNum(), and OpenFile().

◆ m_serialnumber

QString DVDRingBuffer::m_serialnumber
protected

Definition at line 255 of file dvdringbuffer.h.

Referenced by GetNameAndSerialNum(), and OpenFile().

◆ m_seeking

bool DVDRingBuffer::m_seeking {false}
protected

Definition at line 256 of file dvdringbuffer.h.

Referenced by safe_read(), and Seek().

◆ m_seektime

int64_t DVDRingBuffer::m_seektime {0}
protected

Definition at line 257 of file dvdringbuffer.h.

Referenced by safe_read(), and Seek().

◆ m_currentTime

int64_t DVDRingBuffer::m_currentTime {0}
protected

Definition at line 258 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_seekSpeedMap

QMap<uint, uint> DVDRingBuffer::m_seekSpeedMap
protected

Definition at line 259 of file dvdringbuffer.h.

Referenced by DVDRingBuffer(), and Seek().

◆ m_chapterMap

QMap<uint, QList<uint64_t> > DVDRingBuffer::m_chapterMap
protected

Definition at line 260 of file dvdringbuffer.h.

Referenced by ClearChapterCache(), and GetChapterTimes().

◆ m_parent

MythDVDPlayer* DVDRingBuffer::m_parent {nullptr}
protected

Definition at line 262 of file dvdringbuffer.h.

Referenced by DVDButtonUpdate(), safe_read(), Seek(), and SkipStillFrame().

◆ m_forcedAspect

float DVDRingBuffer::m_forcedAspect {-1.0F}
protected

Definition at line 263 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_contextLock

QMutex DVDRingBuffer::m_contextLock {QMutex::Recursive}
protected

Definition at line 265 of file dvdringbuffer.h.

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

◆ m_context

MythDVDContext* DVDRingBuffer::m_context {nullptr}
protected

Definition at line 266 of file dvdringbuffer.h.

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

◆ m_processState

processState_t DVDRingBuffer::m_processState {PROCESS_NORMAL}
protected

Definition at line 267 of file dvdringbuffer.h.

Referenced by IsSeekingAllowed(), and safe_read().

◆ m_dvdStat

dvdnav_status_t DVDRingBuffer::m_dvdStat {DVDNAV_STATUS_OK}
protected

Definition at line 268 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_dvdEvent

int32_t DVDRingBuffer::m_dvdEvent {0}
protected

Definition at line 269 of file dvdringbuffer.h.

Referenced by IsSeekingAllowed(), and safe_read().

◆ m_dvdEventSize

int32_t DVDRingBuffer::m_dvdEventSize {0}
protected

Definition at line 270 of file dvdringbuffer.h.

Referenced by safe_read().

◆ m_inMenu

bool DVDRingBuffer::m_inMenu {false}
protected

Definition at line 282 of file dvdringbuffer.h.

Referenced by GetDescForPos(), GoBack(), safe_read(), and Seek().

◆ m_buttonVersion

uint DVDRingBuffer::m_buttonVersion {1}
protected

Definition at line 283 of file dvdringbuffer.h.

Referenced by GetMenuSubtitle().

◆ m_buttonStreamID

int DVDRingBuffer::m_buttonStreamID {0}
protected

Definition at line 284 of file dvdringbuffer.h.

Referenced by GetMenuSPUPkt(), and safe_read().

◆ m_clut

uint32_t DVDRingBuffer::m_clut[16]
protected

Definition at line 285 of file dvdringbuffer.h.

Referenced by DVDRingBuffer(), guess_palette(), and safe_read().

◆ m_button_color

uint8_t DVDRingBuffer::m_button_color[4]
protected

Definition at line 286 of file dvdringbuffer.h.

Referenced by DecodeSubtitles(), DVDButtonUpdate(), and DVDRingBuffer().

◆ m_button_alpha

uint8_t DVDRingBuffer::m_button_alpha[4]
protected

Definition at line 287 of file dvdringbuffer.h.

Referenced by DecodeSubtitles(), DVDButtonUpdate(), and DVDRingBuffer().

◆ m_hl_button

QRect DVDRingBuffer::m_hl_button {0,0,0,0}
protected

Definition at line 288 of file dvdringbuffer.h.

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

◆ m_menuSpuPkt

uint8_t* DVDRingBuffer::m_menuSpuPkt {nullptr}
protected

Definition at line 289 of file dvdringbuffer.h.

Referenced by ClearMenuSPUParameters(), and GetMenuSPUPkt().

◆ m_menuBuflength

int DVDRingBuffer::m_menuBuflength {0}
protected

Definition at line 290 of file dvdringbuffer.h.

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

◆ m_dvdMenuButton

AVSubtitle DVDRingBuffer::m_dvdMenuButton
protected

◆ m_menuBtnLock

QMutex DVDRingBuffer::m_menuBtnLock
protected

◆ m_seekLock

QMutex DVDRingBuffer::m_seekLock
protected

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