8#include <QRecursiveMutex>
10#include <QCoreApplication>
41 double video_frame_rate, uint64_t totalFrames,
44 double video_frame_rate, uint64_t totalFrames,
frm_dir_map_t m_commBreakMap
std::chrono::seconds m_maxShortMerge
QRecursiveMutex m_commBreakMapLock
CommSkipMode GetAutoCommercialSkip(void) const
bool IsInCommBreak(uint64_t frameNumber) const
SystemTime m_lastSkipTime
This is separate from m_lastCommSkipTime so a manual seek does not trigger the kSkipBackWindow code.
SystemTime m_lastCommSkipTime
int m_lastCommSkipDirection
QDateTime m_lastIgnoredManualSkip
bool DoSkipCommercials(uint64_t &jumpToFrame, uint64_t framesPlayed, double video_frame_rate, uint64_t totalFrames, QString &comm_msg)
void SetMap(const frm_dir_map_t &newMap, uint64_t framesPlayed)
void SetTracker(uint64_t framesPlayed)
void LoadMap(PlayerContext *player_ctx, uint64_t framesPlayed)
void MergeShortCommercials(double video_frame_rate)
std::chrono::seconds m_commnotifyamount
std::chrono::seconds m_commrewindamount
static constexpr std::chrono::seconds kSkipBackWindow
Time after a commercial skip that skipping back will skip to the start of the just skipped commercial...
uint64_t m_lastCommSkipStart
bool AutoCommercialSkip(uint64_t &jumpToFrame, uint64_t framesPlayed, double video_frame_rate, uint64_t totalFrames, QString &comm_msg)
void SetAutoCommercialSkip(CommSkipMode autoskip, uint64_t framesPlayed)
int GetSkipCommercials(void) const
static constexpr std::chrono::seconds kAutoSkipDeadZone
Time after any seek that an automatic commercial skip will not occur.
CommSkipMode m_autocommercialskip
frm_dir_map_t::Iterator m_commBreakIter
std::chrono::seconds m_maxskip
void GetMap(frm_dir_map_t &map) const
void SkipCommercials(int direction)
std::chrono::time_point< SystemClock > SystemTime
QMap< uint64_t, MarkTypes > frm_dir_map_t
Frame # -> Mark map.