MythTV  master
Signals | Public Member Functions | Protected Slots | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
MythDVDPlayer Class Reference

#include <mythdvdplayer.h>

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

Signals

void DisableDVDSubtitles ()
 
- Signals inherited from MythPlayerEditorUI
void EditorStateChanged (const MythEditorState &EditorState)
 
- Signals inherited from MythPlayerVisualiserUI
void VisualiserStateChanged (MythVisualiserState VisualiserState)
 
- Signals inherited from MythPlayerVideoUI
void RefreshVideoState ()
 
void VideoColourStateChanged (const MythVideoColourState &ColourState)
 
- Signals inherited from MythPlayerCaptionsUI
void CaptionsStateChanged (MythCaptionsState &CaptionsState)
 
void ResizeForInteractiveTV (const QRect &Rect)
 
void SetInteractiveStream (const QString &Stream)
 
void SetInteractiveStreamPos (std::chrono::milliseconds Position)
 
void PlayInteractiveStream (bool Play)
 
void EnableSubtitles (bool Enable)
 
- Signals inherited from MythPlayerAudioUI
void AudioStateChanged (MythAudioState State)
 
- Signals inherited from MythPlayerOverlayUI
void OverlayStateChanged (MythOverlayState OverlayState)
 
- Signals inherited from MythPlayer
void CheckCallbacks ()
 
void SeekingSlow (int Count)
 
void SeekingComplete ()
 
void SeekingDone ()
 
void PauseChanged (bool Paused)
 
void RequestResetCaptions ()
 
void SignalTracksChanged (uint Type)
 

Public Member Functions

 MythDVDPlayer (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags=kNoFlags)
 
void ReleaseNextVideoFrame (MythVideoFrame *Buffer, std::chrono::milliseconds Timecode, bool Wrap=true) override
 
bool HasReachedEof (void) const override
 
bool PrepareAudioSample (std::chrono::milliseconds &Timecode) override
 
uint64_t GetBookmark (void) override
 
std::chrono::milliseconds GetMillisecondsPlayed (bool HonorCutList) override
 
std::chrono::milliseconds GetTotalMilliseconds (bool HonorCutList) const override
 
bool IsInStillFrame () const override
 
int GetNumAngles (void) const override
 
int GetCurrentAngle (void) const override
 
QString GetAngleName (int Angle) const override
 
bool SwitchAngle (int Angle) override
 
int GetNumChapters (void) override
 
int GetCurrentChapter (void) override
 
void GetChapterTimes (QList< std::chrono::seconds > &Times) override
 
void SetStillFrameTimeout (std::chrono::seconds Length)
 
void StillFrameCheck (void)
 
- Public Member Functions inherited from MythPlayerUI
 MythPlayerUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
bool StartPlaying ()
 
virtual void EventLoop ()
 
void ReinitVideo (bool ForceUpdate) override
 
void ChangeSpeed () override
 
void SetVideoParams (int Width, int Height, double FrameRate, float Aspect, bool ForceUpdate, int ReferenceFrames, FrameScanType Scan=kScan_Ignore, const QString &CodecName=QString()) override
 
void GetPlaybackData (InfoMap &Map)
 
void GetCodecDescription (InfoMap &Map)
 
bool CanSupportDoubleRate ()
 
void SetWatched (bool ForceWatched=false)
 Determines if the recording should be considered watched. More...
 
- Public Member Functions inherited from MythPlayerEditorUI
 MythPlayerEditorUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
bool HandleProgramEditorActions (const QStringList &Actions)
 
- Public Member Functions inherited from MythPlayerVisualiserUI
 MythPlayerVisualiserUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
 ~MythPlayerVisualiserUI () override
 
- Public Member Functions inherited from MythPlayerVideoUI
 MythPlayerVideoUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
 ~MythPlayerVideoUI () override=default
 
const MythInteropGPU::InteropMapGetInteropTypes () const
 Return a list of interop types supported by the current render device. More...
 
void HandleDecoderCallback (const QString &Debug, DecoderCallback::Callback Function, void *Opaque1, void *Opaque2)
 Convenience function to request and wait for a callback into the main thread. More...
 
void CheckAspectRatio (MythVideoFrame *Frame)
 
- Public Member Functions inherited from MythPlayerCaptionsUI
 MythPlayerCaptionsUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
 ~MythPlayerCaptionsUI () override
 
QStringList GetTracks (uint Type)
 
uint GetTrackCount (uint Type)
 
int GetTrack (uint Type)
 
bool SetAudioByComponentTag (int Tag)
 Selects the audio stream using the DVB component tag. More...
 
bool SetVideoByComponentTag (int Tag)
 Selects the video stream using the DVB component tag. More...
 
std::chrono::milliseconds GetStreamPos ()
 
std::chrono::milliseconds GetStreamMaxPos ()
 
InteractiveTVGetInteractiveTV () override
 
- Public Member Functions inherited from MythPlayerAudioUI
 MythPlayerAudioUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
const AudioOutputGraphGetAudioGraph () const
 
void SetupAudioGraph (double VideoFrameRate)
 
void ClearAudioGraph ()
 
- Public Member Functions inherited from MythPlayerOverlayUI
 MythPlayerOverlayUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
 ~MythPlayerOverlayUI () override=default
 
virtual void UpdateSliderInfo (osdInfo &Info, bool PaddedFields=false)
 
OSDGetOSD ()
 
void LockOSD ()
 
void UnlockOSD ()
 
- Public Member Functions inherited from MythPlayerUIBase
 MythPlayerUIBase (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags)
 
MythRenderGetRender () const
 
- Public Member Functions inherited from MythPlayer
 MythPlayer (PlayerContext *Context, PlayerFlags Flags=kNoFlags)
 
 ~MythPlayer () override
 
virtual int OpenFile (int Retries=4)
 
void SetLength (std::chrono::seconds len)
 
void SetFramesPlayed (uint64_t played)
 
void SetEof (EofState eof)
 
void SetWatchingRecording (bool mode)
 
void SetKeyframeDistance (int keyframedistance)
 
void SetFileLength (std::chrono::seconds total, int frames)
 
void SetDuration (std::chrono::seconds duration)
 
void SetFrameRate (double fps)
 
QSize GetVideoBufferSize (void) const
 
QSize GetVideoSize (void) const
 
float GetVideoAspect (void) const
 
float GetFrameRate (void) const
 
bool IsAudioNeeded (void)
 
int GetFreeVideoFrames (void) const
 Returns the number of frames available for decoding onto. More...
 
int GetFFRewSkip (void) const
 
float GetPlaySpeed (void) const
 
AudioPlayerGetAudio (void)
 
float GetNextPlaySpeed (void) const
 
std::chrono::seconds GetLength (void) const
 
uint64_t GetTotalFrameCount (void) const
 
uint64_t GetCurrentFrameCount (void) const
 
uint64_t GetFramesPlayed (void) const
 
QString GetError (void) const
 
QString GetEncodingType (void) const
 
QString GetXDS (const QString &key) const
 
bool IsPaused (void) const
 
bool GetRawAudioState (void) const
 
bool GetLimitKeyRepeat (void) const
 
EofState GetEof (void) const
 
bool IsErrored (void) const
 
bool IsPlaying (std::chrono::milliseconds wait_in_msec=0ms, bool wait_for=true) const
 
bool AtNormalSpeed (void) const
 
bool IsReallyNearEnd (void) const
 Returns true iff really near end of recording. More...
 
bool IsNearEnd (void)
 Returns true iff near end of recording. More...
 
bool HasTVChainNext (void) const
 
bool IsWatchingInprogress (void) const
 
MythVideoOutputGetVideoOutput (void)
 
virtual bool SwitchTitle (int)
 
virtual bool NextTitle (void)
 
virtual bool PrevTitle (void)
 
virtual bool NextAngle (void)
 
virtual bool PrevAngle (void)
 
MythVideoFrameGetNextVideoFrame (void)
 Removes a frame from the available queue for decoding onto. More...
 
void DeLimboFrame (MythVideoFrame *frame)
 
void DiscardVideoFrame (MythVideoFrame *buffer)
 Places frame in the available frames queue. More...
 
void DiscardVideoFrames (bool KeyFrame, bool Flushed)
 Places frames in the available frames queue. More...
 
DecoderBaseGetDecoder (void)
 Returns the stream decoder currently in use. More...
 
void SetDisablePassThrough (bool disabled)
 
void ForceSetupAudioStream (void)
 
virtual CC708ReaderGetCC708Reader (uint=0)
 
virtual CC608ReaderGetCC608Reader (uint=0)
 
virtual SubtitleReaderGetSubReader (uint=0)
 
virtual TeletextReaderGetTeletextReader (uint=0)
 
void EnableForcedSubtitles (bool enable)
 
bool GetAllowForcedSubtitles (void) const
 
void CheckTVChain ()
 
void FileChangedCallback ()
 
virtual int GetNumTitles (void) const
 
virtual int GetCurrentTitle (void) const
 
virtual std::chrono::seconds GetTitleDuration (int) const
 
virtual QString GetTitleName (int) const
 
bool PosMapFromEnc (uint64_t start, frm_pos_map_t &posMap, frm_pos_map_t &durMap)
 
void SaveTotalDuration (void)
 
void ResetTotalDuration (void)
 
void SaveTotalFrames (void)
 
void SetErrored (const QString &reason)
 
- Public Member Functions inherited from MythVideoScanTracker
 MythVideoScanTracker (MythPlayerUI *Parent)
 
virtual ~MythVideoScanTracker ()=default
 
FrameScanType NextScanOverride ()
 
void SetScanOverride (FrameScanType Scan)
 
FrameScanType GetScanTypeWithOverride () const
 

Protected Slots

void GoToMenu (const QString &Menu)
 
void GoToDVDProgram (bool Direction)
 
void SetBookmark (bool Clear=false) override
 
void DisableCaptions (uint Mode, bool OSDMsg=true) override
 
void EnableCaptions (uint Mode, bool OSDMsg=true) override
 
void SetTrack (uint Type, uint TrackNo) override
 
void DoDisableDVDSubtitles ()
 
- Protected Slots inherited from MythPlayerUI
void InitialiseState () override
 
void ChangeOSDDebug ()
 
void UpdateOSDDebug ()
 
virtual void SetBookmark (bool Clear=false)
 
virtual void SetLastPlayPosition (uint64_t frame=0)
 
- Protected Slots inherited from MythPlayerEditorUI
void InitialiseState () override
 
void RefreshEditorState (bool CheckSaved=false)
 
void EnableEdit ()
 
void DisableEdit (int HowToSave)
 Leave cutlist edit mode, saving work in 1 of 3 ways. More...
 
- Protected Slots inherited from MythPlayerVisualiserUI
void InitialiseState () override
 Set initial state and update player. More...
 
void UIScreenRectChanged (QRect Rect)
 
void EmbedVisualiser (bool Embed, QRect Rect={})
 
void EnableVisualiser (bool Enable, bool Toggle, const QString &Name)
 
void AudioPlayerStateChanged (const MythAudioPlayerState &State)
 
- Protected Slots inherited from MythPlayerVideoUI
void ReinitOSD ()
 
void ToggleAdjustFill (AdjustFillMode Mode=kAdjustFill_Toggle)
 
- Protected Slots inherited from MythPlayerCaptionsUI
void InitialiseState () override
 
void TracksChanged (uint TrackType)
 This tries to re-enable captions/subtitles if the user wants them and one of the captions/subtitles tracks has changed. More...
 
void SetAllowForcedSubtitles (bool Allow)
 
void ToggleCaptions ()
 
void ToggleCaptionsByType (uint Type)
 
void SetCaptionsEnabled (bool Enable, bool UpdateOSD=true)
 
virtual void DisableCaptions (uint Mode, bool UpdateOSD=true)
 
virtual void EnableCaptions (uint Mode, bool UpdateOSD=true)
 
virtual void SetTrack (uint Type, uint TrackNo)
 
void ChangeCaptionTrack (int Direction)
 
void ChangeTrack (uint Type, int Direction)
 
void ResetCaptions ()
 
void EnableTeletext (int Page=0x100)
 
void ResetTeletext ()
 
void SetTeletextPage (uint Page)
 Set Teletext NUV Caption page. More...
 
void HandleTeletextAction (const QString &Action, bool &Handled)
 
void ITVHandleAction (const QString &Action, bool &Handled)
 Submit Action to the interactiveTV object. More...
 
void ITVRestart (uint Chanid, uint Cardid, bool IsLiveTV)
 Restart the MHEG/MHP engine. More...
 
void AdjustSubtitleZoom (int Delta)
 
void AdjustSubtitleDelay (std::chrono::milliseconds Delta)
 
- Protected Slots inherited from MythPlayerAudioUI
void InitialiseState () override
 Initialise audio and signal initial state. More...
 
void ChangeMuteState (bool CycleChannels)
 
void ChangeVolume (bool Direction, int Volume)
 
void ResetAudio ()
 
void ReinitAudio ()
 
void EnableUpmix (bool Enable, bool Toggle=false)
 
void PauseAudioUntilBuffered ()
 
void AdjustAudioTimecodeOffset (std::chrono::milliseconds Delta, std::chrono::milliseconds Value)
 
- Protected Slots inherited from MythPlayerOverlayUI
void UpdateOSDMessage (const QString &Message)
 
void UpdateOSDMessage (const QString &Message, OSDTimeout Timeout)
 
void SetOSDStatus (const QString &Title, OSDTimeout Timeout)
 
void UpdateOSDStatus (osdInfo &Info, int Type, enum OSDTimeout Timeout)
 
void UpdateOSDStatus (const QString &Title, const QString &Desc, const QString &Value, int Type, const QString &Units, int Position, OSDTimeout Timeout)
 
void ChangeOSDPositionUpdates (bool Enable)
 
void UpdateOSDPosition ()
 Update the OSD status/position window. More...
 
- Protected Slots inherited from MythPlayerUIBase
virtual void InitialiseState ()
 

Protected Member Functions

void ResetPlaying (bool ResetFrames=true) override
 
bool PrebufferEnoughFrames (int MinBuffers=0) override
 
void DecoderPauseCheck (void) override
 
void DoFFRewSkip (void) override
 
void ChangeSpeed (void) override
 
void DisplayPauseFrame (void) override
 
void PreProcessNormalFrame (void) override
 
void VideoStart (void) override
 
bool VideoLoop (void) override
 
void EventStart (void) override
 
virtual void EventEnd (void)
 
void InitialSeek (void) override
 
void AutoDeint (MythVideoFrame *Frame, MythVideoOutput *VideoOutput, std::chrono::microseconds FrameInterval, bool AllowLock=true) override
 Check whether deinterlacing should be enabled. More...
 
long long CalcMaxFFTime (long long FastFwd, bool Setjump=true) const override
 CalcMaxFFTime(ffframes): forward ffframes forward. More...
 
bool FastForward (float Seconds) override
 
bool Rewind (float Seconds) override
 
bool JumpToFrame (uint64_t Frame) override
 
void CreateDecoder (TestBufferVec &Testbuf) override
 
bool DoJumpChapter (int Chapter) override
 
- Protected Member Functions inherited from MythPlayerUI
void InitFrameInterval () override
 
virtual bool DisplayNormalFrame (bool CheckPrebuffer=true)
 
void FileChanged ()
 
void RefreshPauseFrame ()
 
void RenderVideoFrame (MythVideoFrame *Frame, FrameScanType Scan, bool Prepare, std::chrono::microseconds Wait)
 
void DoDisplayVideoFrame (MythVideoFrame *Frame, std::chrono::microseconds Due)
 
void EnableFrameRateMonitor (bool Enable=false)
 
void EnableBitrateMonitor (bool Enable=false)
 
- Protected Member Functions inherited from MythPlayerEditorUI
void HandleArbSeek (bool Direction)
 
bool DoFastForwardSecs (float Seconds, double Inaccuracy, bool UseCutlist)
 
bool DoRewindSecs (float Seconds, double Inaccuracy, bool UseCutlist)
 
- Protected Member Functions inherited from MythPlayerVisualiserUI
void PrepareVisualiser ()
 
void RenderVisualiser ()
 
void AutoVisualise (bool HaveVideo)
 Enable visualisation if possible, there is no video and user has requested. More...
 
- Protected Member Functions inherited from MythPlayerVideoUI
bool InitVideo () override
 
- Protected Member Functions inherited from MythPlayerCaptionsUI
double SafeFPS ()
 
void DoDisableForcedSubtitles ()
 
void DoEnableForcedSubtitles ()
 
void LoadExternalSubtitles ()
 
- Protected Member Functions inherited from MythPlayerOverlayUI
std::chrono::seconds GetSecondsPlayed (bool HonorCutList)
 
std::chrono::seconds GetTotalSeconds (bool HonorCutList) const
 
- Protected Member Functions inherited from MythPlayer
void OpenDummy (void)
 
long long CalcRWTime (long long rw) const
 CalcRWTime(rw): rewind rw frames back. More...
 
std::chrono::milliseconds TranslatePositionFrameToMs (uint64_t position, bool use_cutlist) const
 
uint64_t TranslatePositionMsToFrame (std::chrono::milliseconds position, bool use_cutlist) const
 
uint64_t TranslatePositionAbsToRel (uint64_t position) const
 
uint64_t TranslatePositionRelToAbs (uint64_t position) const
 
float ComputeSecs (uint64_t position, bool use_cutlist) const
 
uint64_t FindFrame (float offset, bool use_cutlist) const
 
void SetAutoCommercialSkip (CommSkipMode autoskip)
 
void SkipCommercials (int direction)
 
void SetCommBreakMap (const frm_dir_map_t &NewMap)
 
CommSkipMode GetAutoCommercialSkip (void)
 
virtual void StopPlaying (void)
 
bool PauseDecoder (void)
 
void UnpauseDecoder (void)
 
bool Pause (void)
 
bool Play (float speed=1.0, bool normal=true, bool unpauseaudio=true)
 
void JumpChapter (int chapter)
 
void SetBuffering (bool new_buffering)
 
virtual void VideoEnd (void)
 
virtual void DecoderStart (bool start_paused)
 
virtual void DecoderLoop (bool pause)
 
virtual void DecoderEnd (void)
 
virtual void AudioEnd (void)
 
bool GetEditMode (void) const
 
bool IsInDelete (uint64_t frame)
 
bool FlagIsSet (PlayerFlags arg)
 
void SetPlayingInfo (const ProgramInfo &pginfo)
 
void SetPlaying (bool is_playing)
 
void ResetErrored (void)
 
void PauseVideo (void)
 
void UnpauseVideo (void)
 
void PauseBuffer (void)
 
void UnpauseBuffer (void)
 
void SetDecoder (DecoderBase *dec)
 Sets the stream decoder, deleting any existing recorder. More...
 
const DecoderBaseGetDecoder (void) const
 Returns the stream decoder currently in use. More...
 
bool DecoderGetFrame (DecodeType decodetype, bool unsafe=false)
 
bool DoGetFrame (DecodeType DecodeType)
 Get one frame from the decoder. More...
 
bool UpdateFFRewSkip (float ffrewScale=1.0F)
 
bool DoFastForward (uint64_t frames, double inaccuracy)
 
bool DoRewind (uint64_t frames, double inaccuracy)
 
void DoJumpToFrame (uint64_t frame, double inaccuracy)
 
void WaitForSeek (uint64_t frame, uint64_t seeksnap_wanted)
 
void ClearAfterSeek (bool clearvideobuffers=true)
 This is to support seeking... More...
 
virtual int64_t GetChapter (int chapter)
 
void WrapTimecode (std::chrono::milliseconds &timecode, TCTypes tc_type)
 
void SetFrameInterval (FrameScanType scan, double frame_period)
 
- Protected Member Functions inherited from MythVideoScanTracker
void InitialiseScan (MythVideoOutput *VideoOutput)
 
void UnlockScan ()
 
void ResetTracker ()
 
void SetScanType (FrameScanType Scan, MythVideoOutput *VideoOutput, std::chrono::microseconds FrameInterval)
 
FrameScanType GetScanForDisplay (MythVideoFrame *Frame, bool &SecondField)
 
FrameScanType GetScanType () const
 
void CheckScanUpdate (MythVideoOutput *VideoOutput, std::chrono::microseconds FrameInterval)
 
QString GetDeinterlacerName ()
 
FrameScanType DetectInterlace (FrameScanType NewScan, float Rate, int VideoHeight)
 

Private Member Functions

void DisplayDVDButton (void)
 

Private Attributes

int m_buttonVersion { 0 }
 
bool m_dvdStillFrameShowing { false }
 
int m_initialTitle { -1 }
 
int m_initialAudioTrack { -1 }
 
int m_initialSubtitleTrack { -1 }
 
QString m_initialDvdState
 
MythTimer m_stillFrameTimer
 
std::chrono::seconds m_stillFrameLength { 0s }
 
QRecursiveMutex m_stillFrameTimerLock
 

Additional Inherited Members

- Public Slots inherited from MythPlayerUI
void OSDDebugVisibilityChanged (bool Visible)
 
- Public Slots inherited from MythPlayerVideoUI
void ProcessCallbacks ()
 
void SupportedAttributesChanged (PictureAttributeSupported Supported)
 
void PictureAttributeChanged (PictureAttribute Attribute, int Value)
 
void PictureAttributesUpdated (const std::map< PictureAttribute, int > &Values)
 
- Public Slots inherited from MythPlayerAudioUI
void RefreshAudioState ()
 
- Public Slots inherited from MythPlayerOverlayUI
void BrowsingChanged (bool Browsing)
 
void EditingChanged (bool Editing)
 
- Static Public Attributes inherited from MythPlayer
static const int kNightModeBrightenssAdjustment = 10
 
static const int kNightModeContrastAdjustment = 10
 
static const double kInaccuracyNone = 0
 
static const double kInaccuracyDefault = 0.1
 
static const double kInaccuracyEditor = 0.5
 
static const double kInaccuracyFull = -1.0
 
static const double kSeekToEndOffset = 1.0
 
- Protected Attributes inherited from MythPlayerUI
Jitterometer m_outputJmeter { "Player" }
 
std::chrono::microseconds m_refreshInterval { 0us }
 
- Protected Attributes inherited from MythPlayerEditorUI
QElapsedTimer m_editUpdateTimer
 
float m_speedBeforeEdit { 1.0 }
 
bool m_pausedBeforeEdit { false }
 
- Protected Attributes inherited from MythPlayerVisualiserUI
bool m_checkAutoVisualise { false }
 
- Protected Attributes inherited from MythPlayerVideoUI
DetectLetterbox m_detectLetterBox
 
- Protected Attributes inherited from MythPlayerCaptionsUI
MythCaptionsOverlay m_captionsOverlay
 
MythCaptionsState m_captionsState { }
 
bool m_textDesired { false }
 
uint m_lastTextDisplayMode { kDisplayNone }
 
uint m_lastValidTextDisplayMode { kDisplayNone }
 
InteractiveTVm_interactiveTV { nullptr }
 
QMutex m_itvLock
 
bool m_itvEnabled { false }
 
bool m_itvVisible { false }
 
QString m_newStream
 
- Protected Attributes inherited from MythPlayerOverlayUI
OSD m_osd
 
QRecursiveMutex m_osdLock
 
bool m_browsing { false }
 
bool m_editing { false }
 
bool m_reinitOsd { false }
 
- Protected Attributes inherited from MythPlayerUIBase
MythMainWindowm_mainWindow { nullptr }
 
TVm_tv { nullptr }
 
MythRenderm_render { nullptr }
 
MythPainterm_painter { nullptr }
 
MythDisplaym_display { nullptr }
 
- Protected Attributes inherited from MythPlayer
DecoderBasem_decoder {nullptr}
 
QRecursiveMutex m_decoderChangeLock
 
MythVideoOutputm_videoOutput {nullptr}
 
const VideoFrameTypesm_renderFormats { &MythVideoFrame::kDefaultRenderFormats }
 
PlayerContextm_playerCtx {nullptr}
 
MythDecoderThreadm_decoderThread {nullptr}
 
QThread * m_playerThread {nullptr}
 
PlayerFlags m_playerFlags
 
QWaitCondition m_decoderThreadPause
 
QWaitCondition m_decoderThreadUnpause
 
QMutex m_decoderPauseLock
 
QMutex m_decoderSeekLock
 
QMutex m_bufferPauseLock
 
QMutex m_videoPauseLock
 
QMutex m_pauseLock
 
int64_t m_decoderSeek {-1}
 
bool m_totalDecoderPause {false}
 
bool m_decoderPaused {false}
 
bool m_inJumpToProgramPause {false}
 
bool m_pauseDecoder {false}
 
bool m_unpauseDecoder {false}
 
bool volatile m_killDecoder {false}
 
bool m_decodeOneFrame {false}
 
bool m_renderOneFrame {false}
 
bool m_needNewPauseFrame {false}
 
bool m_bufferPaused {false}
 
bool m_videoPaused {false}
 
bool m_allPaused {false}
 
bool m_playing {false}
 
QWaitCondition m_playingWaitCond
 
QMutex m_vidExitLock
 
QMutex m_playingLock
 
QMutex m_errorLock
 
QString m_errorMsg
 Reason why NVP exited with a error. More...
 
int m_errorType {kError_None}
 
bool m_liveTV {false}
 
bool m_watchingRecording {false}
 
bool m_transcoding {false}
 
bool m_hasFullPositionMap {false}
 
bool m_limitKeyRepeat {false}
 
int m_jumpChapter {0}
 
uint64_t m_bookmarkSeek {0}
 
int m_endExitPrompt
 
long long m_ffTime {0}
 If m_ffTime>0, number of frames to seek forward. More...
 
int m_videobufRetries {0}
 How often we have tried to wait for a video output buffer and failed. More...
 
uint64_t m_framesPlayed {0}
 
uint64_t m_totalFrames {0}
 
std::chrono::seconds m_totalLength {0s}
 
std::chrono::seconds m_totalDuration {0s}
 
long long m_rewindTime {0}
 
std::chrono::milliseconds m_latestVideoTimecode {-1ms}
 
MythPlayerAVSync m_avSync
 
double m_videoFrameRate {29.97}
 Video (input) Frame Rate (often inaccurate) More...
 
QString m_codecName
 Codec Name - used by playback profile. More...
 
QSize m_videoDispDim {0,0}
 Video (input) width & height. More...
 
QSize m_videoDim {0,0}
 Video (input) buffer width & height. More...
 
int m_maxReferenceFrames {0}
 Number of reference frames used in the video stream. More...
 
float m_videoAspect {4.0F / 3.0F}
 Video (input) Apect Ratio. More...
 
float m_forcedVideoAspect {-1}
 
uint m_keyframeDist {30}
 Video (input) Number of frames between key frames (often inaccurate) More...
 
bool m_buffering {false}
 
QTime m_bufferingStart
 
QTime m_bufferingLastMsg
 
uint m_vbiMode {VBIMode::None}
 VBI decoder to use. More...
 
int m_ttPageNum {0x888}
 VBI page to display when in PAL vbimode. More...
 
SubtitleReader m_subReader
 
TeletextReader m_ttxReader
 
bool m_captionsEnabledbyDefault {false}
 This allows us to enable captions/subtitles later if the streams are not immediately available when the video starts playing. More...
 
bool m_enableForcedSubtitles {false}
 
bool m_disableForcedSubtitles {false}
 
bool m_allowForcedSubtitles {true}
 
CC608Reader m_cc608
 
CC708Reader m_cc708
 
AudioPlayer m_audio
 
CommBreakMap m_commBreakMap
 
bool m_forcePositionMapSync {false}
 
DeleteMap m_deleteMap
 
QRecursiveMutex m_decoderLock
 Lock for next_play_speed and next_normal_speed. More...
 
float m_nextPlaySpeed {1.0F}
 
float m_playSpeed {1.0F}
 
std::chrono::microseconds m_frameInterval {microsecondsFromFloat(1000000.0F / 30)}
 always adjusted for play_speed More...
 
int m_fpsMultiplier {1}
 used to detect changes More...
 
int m_ffrewSkip {1}
 
int m_ffrewAdjust {0}
 offset after last skip More...
 
float m_ffrewScale {1.0F}
 scale skip for large gops More...
 
bool m_fileChanged {false}
 
bool m_nextNormalSpeed {true}
 
bool m_normalSpeed {true}
 
tctype_arr m_tcWrap {}
 
std::chrono::milliseconds m_savedAudioTimecodeOffset {0ms}
 
bool m_isDummy {false}
 
int m_bufferingCounter {0}
 

Detailed Description

Definition at line 10 of file mythdvdplayer.h.

Constructor & Destructor Documentation

◆ MythDVDPlayer()

MythDVDPlayer::MythDVDPlayer ( MythMainWindow MainWindow,
TV Tv,
PlayerContext Context,
PlayerFlags  Flags = kNoFlags 
)

Definition at line 11 of file mythdvdplayer.cpp.

Member Function Documentation

◆ DisableDVDSubtitles

void MythDVDPlayer::DisableDVDSubtitles ( )
signal

Referenced by MythDVDPlayer().

◆ ReleaseNextVideoFrame()

void MythDVDPlayer::ReleaseNextVideoFrame ( MythVideoFrame Buffer,
std::chrono::milliseconds  Timecode,
bool  Wrap = true 
)
overridevirtual
Parameters
bufferBuffer
timecodeTimecode
wrapIgnored. This function overrides the callers 'wrap' indication and computes its own based on whether or not video is currently playing.

Reimplemented from MythPlayer.

Definition at line 39 of file mythdvdplayer.cpp.

◆ HasReachedEof()

bool MythDVDPlayer::HasReachedEof ( void  ) const
overridevirtual

Reimplemented from MythPlayer.

Definition at line 46 of file mythdvdplayer.cpp.

◆ PrepareAudioSample()

bool MythDVDPlayer::PrepareAudioSample ( std::chrono::milliseconds &  Timecode)
overridevirtual

Reimplemented from MythPlayer.

Definition at line 315 of file mythdvdplayer.cpp.

◆ GetBookmark()

uint64_t MythDVDPlayer::GetBookmark ( void  )
overridevirtual

Reimplemented from MythPlayer.

Definition at line 372 of file mythdvdplayer.cpp.

◆ GetMillisecondsPlayed()

std::chrono::milliseconds MythDVDPlayer::GetMillisecondsPlayed ( bool  HonorCutList)
overridevirtual

Reimplemented from MythPlayerOverlayUI.

Definition at line 457 of file mythdvdplayer.cpp.

◆ GetTotalMilliseconds()

std::chrono::milliseconds MythDVDPlayer::GetTotalMilliseconds ( bool  HonorCutList) const
overridevirtual

Reimplemented from MythPlayerOverlayUI.

Definition at line 474 of file mythdvdplayer.cpp.

◆ IsInStillFrame()

bool MythDVDPlayer::IsInStillFrame ( ) const
overridevirtual

Reimplemented from MythPlayer.

Definition at line 645 of file mythdvdplayer.cpp.

◆ GetNumAngles()

int MythDVDPlayer::GetNumAngles ( void  ) const
overridevirtual

Reimplemented from MythPlayer.

Definition at line 650 of file mythdvdplayer.cpp.

Referenced by GetAngleName(), and SwitchAngle().

◆ GetCurrentAngle()

int MythDVDPlayer::GetCurrentAngle ( void  ) const
overridevirtual

Reimplemented from MythPlayer.

Definition at line 657 of file mythdvdplayer.cpp.

Referenced by SwitchAngle().

◆ GetAngleName()

QString MythDVDPlayer::GetAngleName ( int  Angle) const
overridevirtual

Reimplemented from MythPlayer.

Definition at line 664 of file mythdvdplayer.cpp.

◆ SwitchAngle()

bool MythDVDPlayer::SwitchAngle ( int  Angle)
overridevirtual

Reimplemented from MythPlayer.

Definition at line 674 of file mythdvdplayer.cpp.

◆ GetNumChapters()

int MythDVDPlayer::GetNumChapters ( void  )
overridevirtual

Reimplemented from MythPlayer.

Definition at line 499 of file mythdvdplayer.cpp.

Referenced by DoJumpChapter().

◆ GetCurrentChapter()

int MythDVDPlayer::GetCurrentChapter ( void  )
overridevirtual

Reimplemented from MythPlayer.

Definition at line 506 of file mythdvdplayer.cpp.

Referenced by DoJumpChapter().

◆ GetChapterTimes()

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

Reimplemented from MythPlayer.

Definition at line 513 of file mythdvdplayer.cpp.

◆ SetStillFrameTimeout()

void MythDVDPlayer::SetStillFrameTimeout ( std::chrono::seconds  Length)

Definition at line 686 of file mythdvdplayer.cpp.

Referenced by MythDVDBuffer::SafeRead(), and MythDVDBuffer::SkipStillFrame().

◆ StillFrameCheck()

void MythDVDPlayer::StillFrameCheck ( void  )

Definition at line 697 of file mythdvdplayer.cpp.

Referenced by DecoderPauseCheck(), and VideoLoop().

◆ ResetPlaying()

void MythDVDPlayer::ResetPlaying ( bool  ResetFrames = true)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 304 of file mythdvdplayer.cpp.

◆ PrebufferEnoughFrames()

bool MythDVDPlayer::PrebufferEnoughFrames ( int  MinBuffers = 0)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 95 of file mythdvdplayer.cpp.

◆ DecoderPauseCheck()

void MythDVDPlayer::DecoderPauseCheck ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 89 of file mythdvdplayer.cpp.

◆ DoFFRewSkip()

void MythDVDPlayer::DoFFRewSkip ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 100 of file mythdvdplayer.cpp.

◆ ChangeSpeed()

void MythDVDPlayer::ChangeSpeed ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 420 of file mythdvdplayer.cpp.

◆ DisplayPauseFrame()

void MythDVDPlayer::DisplayPauseFrame ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 81 of file mythdvdplayer.cpp.

◆ PreProcessNormalFrame()

void MythDVDPlayer::PreProcessNormalFrame ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 111 of file mythdvdplayer.cpp.

◆ VideoStart()

void MythDVDPlayer::VideoStart ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 116 of file mythdvdplayer.cpp.

◆ VideoLoop()

bool MythDVDPlayer::VideoLoop ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 124 of file mythdvdplayer.cpp.

◆ EventStart()

void MythDVDPlayer::EventStart ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 255 of file mythdvdplayer.cpp.

◆ EventEnd()

void MythDVDPlayer::EventEnd ( void  )
protectedvirtual

Definition at line 309 of file mythdvdplayer.cpp.

◆ InitialSeek()

void MythDVDPlayer::InitialSeek ( void  )
overrideprotectedvirtual

Reimplemented from MythPlayerUI.

Definition at line 277 of file mythdvdplayer.cpp.

◆ AutoDeint()

void MythDVDPlayer::AutoDeint ( MythVideoFrame Frame,
MythVideoOutput VideoOutput,
std::chrono::microseconds  FrameInterval,
bool  AllowLock = true 
)
overrideprotectedvirtual

Check whether deinterlacing should be enabled.

If the user has triggered an override, this will always be used (until 'detect' is requested to turn it off again).

For H264 material, the decoder will signal when the current frame is on a new GOP boundary and if the frame's interlaced flag does not match the current scan type, the scan type is unlocked. This works well for all test clips with mixed progressive/interlaced sequences.

For all other material, we lock the scan type to interlaced when interlaced frames are seen - and do not unlock if we see progressive frames. This is primarily targetted at MPEG2 material where there is a lot of content where the scan type changes frequently - and for no obvious reason. This will result in 'false positives' in some cases but there is no clear approach that works for all cases. The previous behaviour is preserved (i.e. lock to interlaced if interlaced frames are seen) which results in less erratic playback (as the deinterlacers are not continually switched on and off) and correctly deinterlaces material that is not otherwise flagged correctly.

Reimplemented from MythVideoScanTracker.

Definition at line 19 of file mythdvdplayer.cpp.

◆ CalcMaxFFTime()

long long MythDVDPlayer::CalcMaxFFTime ( long long  ffframes,
bool  setjump = true 
) const
overrideprotectedvirtual

CalcMaxFFTime(ffframes): forward ffframes forward.

Handle livetv transitions if necessay

Reimplemented from MythPlayer.

Definition at line 449 of file mythdvdplayer.cpp.

◆ FastForward()

bool MythDVDPlayer::FastForward ( float  Seconds)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 231 of file mythdvdplayer.cpp.

◆ Rewind()

bool MythDVDPlayer::Rewind ( float  Seconds)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 238 of file mythdvdplayer.cpp.

◆ JumpToFrame()

bool MythDVDPlayer::JumpToFrame ( uint64_t  Frame)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 245 of file mythdvdplayer.cpp.

◆ CreateDecoder()

void MythDVDPlayer::CreateDecoder ( TestBufferVec Testbuf)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 717 of file mythdvdplayer.cpp.

◆ DoJumpChapter()

bool MythDVDPlayer::DoJumpChapter ( int  Chapter)
overrideprotectedvirtual

Reimplemented from MythPlayer.

Definition at line 520 of file mythdvdplayer.cpp.

◆ GoToMenu

void MythDVDPlayer::GoToMenu ( const QString &  Menu)
protectedslot

Definition at line 617 of file mythdvdplayer.cpp.

Referenced by MythDVDPlayer().

◆ GoToDVDProgram

void MythDVDPlayer::GoToDVDProgram ( bool  Direction)
protectedslot

Definition at line 634 of file mythdvdplayer.cpp.

Referenced by MythDVDPlayer().

◆ SetBookmark

void MythDVDPlayer::SetBookmark ( bool  Clear = false)
overrideprotectedslot

Definition at line 324 of file mythdvdplayer.cpp.

◆ DisableCaptions

void MythDVDPlayer::DisableCaptions ( uint  Mode,
bool  OSDMsg = true 
)
overrideprotectedslot

Definition at line 60 of file mythdvdplayer.cpp.

◆ EnableCaptions

void MythDVDPlayer::EnableCaptions ( uint  Mode,
bool  OSDMsg = true 
)
overrideprotectedslot

Definition at line 67 of file mythdvdplayer.cpp.

◆ SetTrack

void MythDVDPlayer::SetTrack ( uint  Type,
uint  TrackNo 
)
overrideprotectedslot

Definition at line 488 of file mythdvdplayer.cpp.

◆ DoDisableDVDSubtitles

void MythDVDPlayer::DoDisableDVDSubtitles ( )
protectedslot

Definition at line 54 of file mythdvdplayer.cpp.

Referenced by MythDVDPlayer().

◆ DisplayDVDButton()

void MythDVDPlayer::DisplayDVDButton ( void  )
private

Definition at line 558 of file mythdvdplayer.cpp.

Referenced by DisplayPauseFrame(), and PreProcessNormalFrame().

Member Data Documentation

◆ m_buttonVersion

int MythDVDPlayer::m_buttonVersion { 0 }
private

Definition at line 72 of file mythdvdplayer.h.

Referenced by DisplayDVDButton().

◆ m_dvdStillFrameShowing

bool MythDVDPlayer::m_dvdStillFrameShowing { false }
private

Definition at line 73 of file mythdvdplayer.h.

Referenced by VideoLoop().

◆ m_initialTitle

int MythDVDPlayer::m_initialTitle { -1 }
private

Definition at line 76 of file mythdvdplayer.h.

Referenced by GetBookmark(), and InitialSeek().

◆ m_initialAudioTrack

int MythDVDPlayer::m_initialAudioTrack { -1 }
private

Definition at line 77 of file mythdvdplayer.h.

Referenced by GetBookmark(), and InitialSeek().

◆ m_initialSubtitleTrack

int MythDVDPlayer::m_initialSubtitleTrack { -1 }
private

Definition at line 78 of file mythdvdplayer.h.

Referenced by GetBookmark(), and InitialSeek().

◆ m_initialDvdState

QString MythDVDPlayer::m_initialDvdState
private

Definition at line 79 of file mythdvdplayer.h.

Referenced by GetBookmark(), and VideoStart().

◆ m_stillFrameTimer

MythTimer MythDVDPlayer::m_stillFrameTimer
private

◆ m_stillFrameLength

std::chrono::seconds MythDVDPlayer::m_stillFrameLength { 0s }
private

◆ m_stillFrameTimerLock

QRecursiveMutex MythDVDPlayer::m_stillFrameTimerLock
private

Definition at line 84 of file mythdvdplayer.h.

Referenced by ChangeSpeed(), SetStillFrameTimeout(), and StillFrameCheck().


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