Go to the documentation of this file. 1 #ifndef CLASSIC_COMMDETECTOR_H
2 #define CLASSIC_COMMDETECTOR_H
11 #include <QElapsedTimer>
54 QDateTime startedAt_in,
56 QDateTime recordingStartedAt_in,
57 QDateTime recordingStopsAt_in);
96 QString msgformat(
"%1 %2:%3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15");
97 return msgformat.arg(first, 5)
99 .arg((
int)((fbp->
start /
m_fps )) % 60, 2, 10, QChar(
'0'))
103 .arg(fbp->
length, 7,
'f', 2)
108 .arg(fbp->
scRate, 5,
'f', 2)
118 int64_t start_frame);
122 int format,
int aspect);
212 #endif // CLASSIC_COMMDETECTOR_H
long long m_lastFrameNumber
virtual void deleteLater(void)
@ COMM_FRAME_LOGO_PRESENT
Abstract base class for all CommDetectors. Please use the CommDetectFactory to make actual instances.
QMap< uint64_t, CommMapValue > show_map_t
frm_dir_map_t m_logoCommBreakMap
QDateTime m_recordingStartedAt
ClassicCommDetector(SkipType commDetectMethod, bool showProgress, bool fullSpeed, MythCommFlagPlayer *player, QDateTime startedAt_in, QDateTime stopsAt_in, QDateTime recordingStartedAt_in, QDateTime recordingStopsAt_in)
QDateTime m_recordingStopsAt
@ COMM_FRAME_ASPECT_CHANGE
bool m_stationLogoPresent
void ProcessFrame(MythVideoFrame *frame, long long frame_number)
frm_dir_map_t m_commBreakMap
QMap< uint64_t, MarkTypes > frm_dir_map_t
Frame # -> Mark map.
static void UpdateFrameBlock(FrameBlock *fbp, const FrameInfoEntry &finfo, int format, int aspect)
void logoDetectorBreathe()
@ COMM_FRAME_RATING_SYMBOL
SceneChangeDetectorBase * m_sceneChangeDetector
int m_commDetectMinCommBreakLength
int m_commDetectDimBrightness
void requestCommBreakMapUpdate(void) override
SkipType m_commDetectMethod
frm_dir_map_t Combine2Maps(const frm_dir_map_t &a, const frm_dir_map_t &b) const
void GetBlankCommMap(frm_dir_map_t &comms)
QString FormatMsg(T first, const FrameBlock *fbp)
void PrintFullMap(std::ostream &out, const frm_dir_map_t *comm_breaks, bool verbose) const override
void GetSceneChangeMap(frm_dir_map_t &scenes, int64_t start_frame)
void BuildSceneChangeCommList(void)
void BuildBlankFrameCommList(void)
static QString GetHeader(void)
frm_dir_map_t m_blankCommMap
frm_dir_map_t m_lastSentCommBreakMap
bool FrameIsInBreakMap(uint64_t f, const frm_dir_map_t &breakMap) const
QMap< long long, FrameInfoEntry > m_frameInfo
frm_dir_map_t m_blankCommBreakMap
int m_commDetectBoxBrightness
void GetLogoCommBreakMap(show_map_t &map)
int m_commDetectMaxCommBreakLength
void sceneChangeDetectorHasNewInformation(unsigned int framenum, bool isSceneChange, float debugValue)
void SetVideoParams(float aspect)
uint64_t m_framesProcessed
SkipType
This is used as a bitmask.
~ClassicCommDetector() override=default
void DumpMap(frm_dir_map_t &map) const
bool m_decoderFoundAspectChanges
int m_commDetectMinShowLength
long long m_curFrameNumber
int m_commDetectDimAverage
void GetBlankCommBreakMap(frm_dir_map_t &comms)
static void CondenseMarkMap(show_map_t &map, int spacing, int length)
void GetCommercialBreakList(frm_dir_map_t &marks) override
LogoDetectorBase * m_logoDetector
bool m_sendCommBreakMapUpdates
QString toString(uint64_t frame, bool verbose) const
void MergeBlankCommList(void)
void BuildAllMethodsCommList(void)
frm_dir_map_t m_sceneCommBreakMap
bool m_aggressiveDetection
static const std::array< const mark, 16 > marks
int m_commDetectBlankFrameMaxDiff
int m_commDetectMaxCommLength
bool m_commBreakMapUpdateRequested
int m_commDetectDarkBrightness
frm_dir_map_t m_blankFrameMap
void CleanupFrameInfo(void)
bool m_commDetectBlankCanHaveLogo
@ COMM_FRAME_SCENE_CHANGE
void recordingFinished(long long totalFileSize) override
static void ConvertShowMapToCommMap(frm_dir_map_t &out, const show_map_t &in)
MythCommFlagPlayer * m_player