MythTV master
BlankFrameDetector.h
Go to the documentation of this file.
1/*
2 * BlankFrameDetector
3 *
4 * Detect blank frames based on histogram analysis.
5 */
6
7#ifndef BLANKFRAMEDETECTOR_H
8#define BLANKFRAMEDETECTOR_H
9
10#include "FrameAnalyzer.h"
11
13class TemplateMatcher;
14
16{
17public:
18 /* Ctor/dtor. */
19 BlankFrameDetector(std::shared_ptr<HistogramAnalyzer> ha, const QString& debugdir);
20
21 /* FrameAnalyzer interface. */
22 const char *name(void) const override // FrameAnalyzer
23 { return "BlankFrameDetector"; }
25 long long nframes) override; // FrameAnalyzer
27 long long frameno, long long *pNextFrame) override; // FrameAnalyzer
28 int finished(long long nframes, bool final) override; // FrameAnalyzer
29 int reportTime(void) const override; // FrameAnalyzer
30 FrameMap GetMap(unsigned int index) const override // FrameAnalyzer
31 { return (index) ? m_blankMap : m_breakMap; }
32
33 /* BlankFrameDetector interface. */
34 const FrameAnalyzer::FrameMap *getBlanks(void) const { return &m_blankMap; }
35 int computeForLogoSurplus(const TemplateMatcher *templateMatcher);
36 static int computeForLogoDeficit(const TemplateMatcher *templateMatcher);
37 int computeBreaks(FrameMap *breaks);
38
39private:
40 std::shared_ptr<HistogramAnalyzer> m_histogramAnalyzer;
41 float m_fps {0.0F};
42
45
46 /* Debugging */
47 int m_debugLevel {0};
48};
49
50#endif /* !BLANKFRAMEDETECTOR_H */
51
52/* vim: set expandtab tabstop=4 shiftwidth=4: */
int computeBreaks(FrameMap *breaks)
int reportTime(void) const override
FrameAnalyzer::FrameMap m_blankMap
std::shared_ptr< HistogramAnalyzer > m_histogramAnalyzer
FrameAnalyzer::FrameMap m_breakMap
enum analyzeFrameResult MythPlayerInited(MythPlayer *player, long long nframes) override
const char * name(void) const override
int finished(long long nframes, bool final) override
BlankFrameDetector(std::shared_ptr< HistogramAnalyzer > ha, const QString &debugdir)
int computeForLogoSurplus(const TemplateMatcher *templateMatcher)
static int computeForLogoDeficit(const TemplateMatcher *templateMatcher)
enum analyzeFrameResult analyzeFrame(const MythVideoFrame *frame, long long frameno, long long *pNextFrame) override
const FrameAnalyzer::FrameMap * getBlanks(void) const
FrameMap GetMap(unsigned int index) const override
QMap< long long, long long > FrameMap
Definition: FrameAnalyzer.h:45
QMap< int, FrameList * > FrameMap
Definition: mpeg2fix.h:118