MythTV
master
|
Acts as the interface between the UI and the underlying AudioPlayer object. More...
#include <mythplayeraudioui.h>
Public Slots | |
void | RefreshAudioState () |
![]() | |
void | BrowsingChanged (bool Browsing) |
void | EditingChanged (bool Editing) |
Signals | |
void | AudioStateChanged (MythAudioState State) |
![]() | |
void | OverlayStateChanged (MythOverlayState OverlayState) |
![]() | |
void | CheckCallbacks () |
void | SeekingSlow (int Count) |
void | SeekingComplete () |
void | SeekingDone () |
void | PauseChanged (bool Paused) |
void | RequestResetCaptions () |
void | SignalTracksChanged (uint Type) |
Public Member Functions | |
MythPlayerAudioUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags) | |
const AudioOutputGraph & | GetAudioGraph () const |
void | SetupAudioGraph (double VideoFrameRate) |
void | ClearAudioGraph () |
![]() | |
MythPlayerOverlayUI (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags) | |
~MythPlayerOverlayUI () override=default | |
virtual void | UpdateSliderInfo (osdInfo &Info, bool PaddedFields=false) |
OSD * | GetOSD () |
void | LockOSD () |
void | UnlockOSD () |
![]() | |
MythPlayerUIBase (MythMainWindow *MainWindow, TV *Tv, PlayerContext *Context, PlayerFlags Flags) | |
MythRender * | GetRender () const |
![]() | |
MythPlayer (PlayerContext *Context, PlayerFlags Flags=kNoFlags) | |
~MythPlayer () override | |
virtual int | OpenFile (int Retries=4) |
virtual bool | InitVideo (void) |
virtual void | ReinitVideo (bool ForceUpdate) |
virtual void | InitFrameInterval () |
void | SetLength (std::chrono::seconds len) |
void | SetFramesPlayed (uint64_t played) |
void | SetEof (EofState eof) |
void | SetWatchingRecording (bool mode) |
void | SetKeyframeDistance (int keyframedistance) |
virtual void | SetVideoParams (int w, int h, double fps, float aspect, bool ForceUpdate, int ReferenceFrames, FrameScanType=kScan_Ignore, const QString &codecName=QString()) |
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 |
AudioPlayer * | GetAudio (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 |
virtual uint64_t | GetBookmark (void) |
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 |
virtual InteractiveTV * | GetInteractiveTV () |
MythVideoOutput * | GetVideoOutput (void) |
virtual bool | SwitchTitle (int) |
virtual bool | NextTitle (void) |
virtual bool | PrevTitle (void) |
virtual bool | SwitchAngle (int) |
virtual bool | NextAngle (void) |
virtual bool | PrevAngle (void) |
MythVideoFrame * | GetNextVideoFrame (void) |
Removes a frame from the available queue for decoding onto. More... | |
void | DeLimboFrame (MythVideoFrame *frame) |
virtual void | ReleaseNextVideoFrame (MythVideoFrame *buffer, std::chrono::milliseconds timecode, bool wrap=true) |
Places frame on the queue of frames ready for display. More... | |
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... | |
DecoderBase * | GetDecoder (void) |
Returns the stream decoder currently in use. More... | |
virtual bool | HasReachedEof (void) const |
void | SetDisablePassThrough (bool disabled) |
void | ForceSetupAudioStream (void) |
virtual bool | PrepareAudioSample (std::chrono::milliseconds &timecode) |
virtual CC708Reader * | GetCC708Reader (uint=0) |
virtual CC608Reader * | GetCC608Reader (uint=0) |
virtual SubtitleReader * | GetSubReader (uint=0) |
virtual TeletextReader * | GetTeletextReader (uint=0) |
void | EnableForcedSubtitles (bool enable) |
bool | ForcedSubtitlesFavored (void) const |
bool | GetAllowForcedSubtitles (void) const |
void | CheckTVChain () |
void | FileChangedCallback () |
virtual int | GetNumChapters (void) |
virtual int | GetCurrentChapter (void) |
virtual void | GetChapterTimes (QList< std::chrono::seconds > ×) |
virtual int | GetNumTitles (void) const |
virtual int | GetCurrentTitle (void) const |
virtual std::chrono::seconds | GetTitleDuration (int) const |
virtual QString | GetTitleName (int) const |
virtual int | GetNumAngles (void) const |
virtual int | GetCurrentAngle (void) const |
virtual QString | GetAngleName (int) const |
virtual bool | IsInStillFrame () 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) |
Protected Slots | |
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) |
![]() | |
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... | |
![]() | |
virtual void | InitialiseState () |
Private Member Functions | |
void | SetupAudioOutput (float TimeStretch) |
Private Attributes | |
AudioOutputGraph | m_audioGraph |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
virtual std::chrono::milliseconds | GetMillisecondsPlayed (bool HonorCutList) |
virtual std::chrono::milliseconds | GetTotalMilliseconds (bool HonorCutList) const |
std::chrono::seconds | GetSecondsPlayed (bool HonorCutList) |
std::chrono::seconds | GetTotalSeconds (bool HonorCutList) const |
![]() | |
void | OpenDummy (void) |
virtual long long | CalcMaxFFTime (long long ff, bool setjump=true) const |
CalcMaxFFTime(ffframes): forward ffframes forward. More... | |
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 | ResetPlaying (bool resetframes=true) |
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) |
virtual bool | FastForward (float seconds) |
virtual bool | Rewind (float seconds) |
virtual bool | JumpToFrame (uint64_t frame) |
void | JumpChapter (int chapter) |
virtual bool | PrebufferEnoughFrames (int min_buffers=0) |
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 | DecoderPauseCheck (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) |
virtual void | CreateDecoder (TestBufferVec &TestBuffer) |
void | SetDecoder (DecoderBase *dec) |
Sets the stream decoder, deleting any existing recorder. More... | |
const DecoderBase * | GetDecoder (void) const |
Returns the stream decoder currently in use. More... | |
virtual void | DoFFRewSkip (void) |
bool | DecoderGetFrame (DecodeType decodetype, bool unsafe=false) |
bool | DoGetFrame (DecodeType DecodeType) |
Get one frame from the decoder. More... | |
bool | UpdateFFRewSkip (float ffrewScale=1.0F) |
virtual void | ChangeSpeed (void) |
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 bool | DoJumpChapter (int chapter) |
virtual int64_t | GetChapter (int chapter) |
void | WrapTimecode (std::chrono::milliseconds &timecode, TCTypes tc_type) |
void | SetFrameInterval (FrameScanType scan, double frame_period) |
![]() | |
OSD | m_osd |
QRecursiveMutex | m_osdLock |
bool | m_browsing { false } |
bool | m_editing { false } |
bool | m_reinitOsd { false } |
![]() | |
MythMainWindow * | m_mainWindow { nullptr } |
TV * | m_tv { nullptr } |
MythRender * | m_render { nullptr } |
MythPainter * | m_painter { nullptr } |
MythDisplay * | m_display { nullptr } |
![]() | |
DecoderBase * | m_decoder {nullptr} |
QRecursiveMutex | m_decoderChangeLock |
MythVideoOutput * | m_videoOutput {nullptr} |
const VideoFrameTypes * | m_renderFormats { &MythVideoFrame::kDefaultRenderFormats } |
PlayerContext * | m_playerCtx {nullptr} |
MythDecoderThread * | m_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} |
Acts as the interface between the UI and the underlying AudioPlayer object.
Changes to the audio state (e.g. volume changes) are signalled from the parent TV object. Any subsequent change in state is signalled back via the AudioStateChanged signal.
As such, the public API is limited and is largely restricted to access to the AudioGraph, as required by the OSD/Edit mode.
Any other objects that are interested in the audio state should connect to the AudioStateChanged signal and retrieve the initial state via GetAudioState.
Definition at line 9 of file mythplayeraudioui.h.
MythPlayerAudioUI::MythPlayerAudioUI | ( | MythMainWindow * | MainWindow, |
TV * | Tv, | ||
PlayerContext * | Context, | ||
PlayerFlags | Flags | ||
) |
Definition at line 31 of file mythplayeraudioui.cpp.
|
signal |
|
slot |
Definition at line 69 of file mythplayeraudioui.cpp.
Referenced by MythNavigationOverlay::Create().
|
overrideprotectedslot |
Initialise audio and signal initial state.
Definition at line 62 of file mythplayeraudioui.cpp.
Referenced by MythPlayerCaptionsUI::InitialiseState().
|
protectedslot |
Definition at line 127 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
protectedslot |
Definition at line 105 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
protectedslot |
Definition at line 74 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
protectedslot |
Definition at line 80 of file mythplayeraudioui.cpp.
Referenced by InitialiseState(), and MythPlayerAudioUI().
Definition at line 155 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
protectedslot |
Definition at line 171 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
protectedslot |
Definition at line 185 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
const AudioOutputGraph & MythPlayerAudioUI::GetAudioGraph | ( | ) | const |
Definition at line 86 of file mythplayeraudioui.cpp.
Referenced by OSD::SetGraph().
void MythPlayerAudioUI::SetupAudioGraph | ( | double | VideoFrameRate | ) |
Definition at line 91 of file mythplayeraudioui.cpp.
Referenced by MythPlayerEditorUI::EnableEdit().
void MythPlayerAudioUI::ClearAudioGraph | ( | ) |
Definition at line 99 of file mythplayeraudioui.cpp.
Referenced by MythPlayerEditorUI::DisableEdit().
|
private |
Definition at line 176 of file mythplayeraudioui.cpp.
Referenced by MythPlayerAudioUI().
|
private |
Definition at line 40 of file mythplayeraudioui.h.
Referenced by ClearAudioGraph(), GetAudioGraph(), MythPlayerAudioUI(), and SetupAudioGraph().