MythTV
master
|
#include <libmythtv/mythcommflagplayer.h>
Public Member Functions | |
MythCommFlagPlayer (PlayerContext *Context, PlayerFlags Flags=kNoFlags) | |
bool | RebuildSeekTable (bool ShowPercentage=true, StatusCallback Callback=nullptr, void *Opaque=nullptr) |
MythVideoFrame * | GetRawVideoFrame (long long FrameNumber=-1) |
Returns a specific frame from the video. More... | |
Public Member Functions inherited from MythPlayer | |
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 | 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) |
Additional Inherited Members | |
Signals inherited from MythPlayer | |
void | CheckCallbacks () |
void | SeekingSlow (int Count) |
void | SeekingComplete () |
void | SeekingDone () |
void | PauseChanged (bool Paused) |
void | RequestResetCaptions () |
void | SignalTracksChanged (uint Type) |
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 Member Functions inherited from MythPlayer | |
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) |
Protected Attributes inherited from MythPlayer | |
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} |
Definition at line 25 of file mythcommflagplayer.h.
|
explicit |
Definition at line 55 of file mythcommflagplayer.cpp.
bool MythCommFlagPlayer::RebuildSeekTable | ( | bool | ShowPercentage = true , |
StatusCallback | Callback = nullptr , |
||
void * | Opaque = nullptr |
||
) |
Definition at line 60 of file mythcommflagplayer.cpp.
MythVideoFrame * MythCommFlagPlayer::GetRawVideoFrame | ( | long long | FrameNumber = -1 | ) |
Returns a specific frame from the video.
NOTE: You must call DiscardVideoFrame(VideoFrame*) on the frame returned, as this marks the frame as being used and hence unavailable for decoding.
Definition at line 226 of file mythcommflagplayer.cpp.
Referenced by PrePostRollFlagger::findBreakInrange(), CommDetector2::go(), ClassicCommDetector::go(), and ClassicLogoDetector::searchForLogo().