Ticket #5304: programs_mythcommflag-uninit-defects.patch

File programs_mythcommflag-uninit-defects.patch, 11.1 KB (added by Erik Hovland <erik@…>, 16 years ago)
  • programs/mythcommflag/BlankFrameDetector.cpp

    Make sure variables are initialized.
    
    From: Erik Hovland <erik@hovland.org>
    
    
    ---
    
     programs/mythcommflag/BlankFrameDetector.cpp  |    5 +---
     programs/mythcommflag/BlankFrameDetector.h    |    1 -
     programs/mythcommflag/BorderDetector.cpp      |   13 ++++++---
     programs/mythcommflag/BorderDetector.h        |    5 +---
     programs/mythcommflag/HistogramAnalyzer.cpp   |   35 +++++++++++++------------
     programs/mythcommflag/HistogramAnalyzer.h     |   16 ++++++-----
     programs/mythcommflag/PGMConverter.cpp        |    1 +
     programs/mythcommflag/SceneChangeDetector.cpp |    1 +
     programs/mythcommflag/TemplateFinder.h        |    1 -
     programs/mythcommflag/TemplateMatcher.cpp     |    5 ++++
     10 files changed, 45 insertions(+), 38 deletions(-)
    
    diff --git a/programs/mythcommflag/BlankFrameDetector.cpp b/programs/mythcommflag/BlankFrameDetector.cpp
    index 512a55f..799b6a3 100644
    a b computeBreakMap(FrameAnalyzer::FrameMap *breakMap, 
    368368BlankFrameDetector::BlankFrameDetector(HistogramAnalyzer *ha, QString debugdir)
    369369    : FrameAnalyzer()
    370370    , histogramAnalyzer(ha)
     371    , fps(0.0)
    371372    , debugLevel(0)
    372373{
    373374    skipcommblanks = gContext->GetNumSetting("CommSkipAllBlanks", 1) != 0;
    BlankFrameDetector::BlankFrameDetector(HistogramAnalyzer *ha, QString debugdir) 
    387388            QString("BlankFrameDetector debugLevel %1").arg(debugLevel));
    388389}
    389390
    390 BlankFrameDetector::~BlankFrameDetector(void)
    391 {
    392 }
    393 
    394391enum FrameAnalyzer::analyzeFrameResult
    395392BlankFrameDetector::nuppelVideoPlayerInited(NuppelVideoPlayer *nvp,
    396393        long long nframes)
  • programs/mythcommflag/BlankFrameDetector.h

    diff --git a/programs/mythcommflag/BlankFrameDetector.h b/programs/mythcommflag/BlankFrameDetector.h
    index 8312722..b560e9f 100644
    a b class BlankFrameDetector : public FrameAnalyzer 
    1818public:
    1919    /* Ctor/dtor. */
    2020    BlankFrameDetector(HistogramAnalyzer *ha, QString debugdir);
    21     ~BlankFrameDetector(void);
    2221
    2322    /* FrameAnalyzer interface. */
    2423    const char *name(void) const { return "BlankFrameDetector"; }
  • programs/mythcommflag/BorderDetector.cpp

    diff --git a/programs/mythcommflag/BorderDetector.cpp b/programs/mythcommflag/BorderDetector.cpp
    index 75f2992..71968a9 100644
    a b using namespace commDetector2; 
    1717BorderDetector::BorderDetector(void)
    1818    : logoFinder(NULL)
    1919    , logo(NULL)
     20    , logorow(-1)
     21    , logocol(-1)
     22    , logowidth(-1)
     23    , logoheight(-1)
    2024    , frameno(-1)
     25    , row(-1)
     26    , col(-1)
     27    , width(-1)
     28    , height(-1)
    2129    , ismonochromatic(false)
    2230    , debugLevel(0)
    2331    , time_reported(false)
    2432{
     33    bzero(&analyze_time, sizeof(analyze_time));
    2534    debugLevel = gContext->GetNumSetting("BorderDetectorDebugLevel", 0);
    2635
    2736    if (debugLevel >= 1)
    BorderDetector::BorderDetector(void) 
    2938            QString("BorderDetector debugLevel %1").arg(debugLevel));
    3039}
    3140
    32 BorderDetector::~BorderDetector(void)
    33 {
    34 }
    35 
    3641int
    3742BorderDetector::nuppelVideoPlayerInited(const NuppelVideoPlayer *nvp)
    3843{
  • programs/mythcommflag/BorderDetector.h

    diff --git a/programs/mythcommflag/BorderDetector.h b/programs/mythcommflag/BorderDetector.h
    index bb493bc..eb9adf4 100644
    a b class BorderDetector 
    2020{
    2121public:
    2222    /* Ctor/dtor. */
    23     BorderDetector(void);
    24     ~BorderDetector(void);
     23    BorderDetector();
    2524
    2625    int nuppelVideoPlayerInited(const NuppelVideoPlayer *nvp);
    2726    void setLogoState(TemplateFinder *finder);
    public: 
    3029    int getDimensions(const AVPicture *pgm, int pgmheight, long long frameno,
    3130            int *prow, int *pcol, int *pwidth, int *pheight);
    3231
    33     int reportTime(void);
     32    int reportTime();
    3433
    3534private:
    3635    TemplateFinder          *logoFinder;
  • programs/mythcommflag/HistogramAnalyzer.cpp

    diff --git a/programs/mythcommflag/HistogramAnalyzer.cpp b/programs/mythcommflag/HistogramAnalyzer.cpp
    index e5887a2..35c764a 100644
    a b writeData(QString filename, float *mean, unsigned char *median, float *stddev, 
    109109        return false;
    110110    for (frameno = 0; frameno < nframes; frameno++)
    111111    {
    112         (void)fprintf(fp, "%3u %10.6f %3u %10.6f %5u %5u %5u %5u",
    113                       monochromatic[frameno],
    114                       mean[frameno], median[frameno], stddev[frameno],
    115                       fwidth[frameno], fheight[frameno],
    116                       fcol[frameno], frow[frameno]);
     112        fprintf(fp, "%3u %10.6f %3u %10.6f %5u %5u %5u %5u",
     113                monochromatic[frameno], mean[frameno], median[frameno],
     114                stddev[frameno], fwidth[frameno], fheight[frameno],
     115                fcol[frameno], frow[frameno]);
    117116        for (unsigned int ii = 0; ii < UCHAR_MAX + 1; ii++)
    118             (void)fprintf(fp, " %02x", histogram[frameno][ii]);
    119         (void)fprintf(fp, "\n");
     117            fprintf(fp, " %02x", histogram[frameno][ii]);
     118
     119        fprintf(fp, "\n");
    120120    }
    121121    if (fclose(fp))
    122122        VERBOSE(VB_COMMFLAG, QString("Error closing %1: %2")
    HistogramAnalyzer::HistogramAnalyzer(PGMConverter *pgmc, BorderDetector *bd, 
    132132    , borderDetector(bd)
    133133    , logoFinder(NULL)
    134134    , logo(NULL)
     135    , logowidth(-1)
     136    , logoheight(-1)
     137    , logorr1(-1)
     138    , logocc1(-1)
     139    , logorr2(-1)
     140    , logocc2(-1)
    135141    , mean(NULL)
    136142    , median(NULL)
    137143    , stddev(NULL)
    HistogramAnalyzer::HistogramAnalyzer(PGMConverter *pgmc, BorderDetector *bd, 
    152158    , debug_histval(false)
    153159    , histval_done(false)
    154160{
     161    memset(histval, 0, sizeof(int) * (UCHAR_MAX + 1));
    155162    memset(&analyze_time, 0, sizeof(analyze_time));
    156163
    157164    /*
    HistogramAnalyzer::HistogramAnalyzer(PGMConverter *pgmc, BorderDetector *bd, 
    169176    }
    170177}
    171178
    172 HistogramAnalyzer::~HistogramAnalyzer(void)
     179HistogramAnalyzer::~HistogramAnalyzer()
    173180{
    174181    if (monochromatic)
    175182        delete []monochromatic;
    HistogramAnalyzer::nuppelVideoPlayerInited(NuppelVideoPlayer *nvp, 
    266273    return FrameAnalyzer::ANALYZE_OK;
    267274}
    268275
    269 void
    270 HistogramAnalyzer::setLogoState(TemplateFinder *finder)
    271 {
    272     logoFinder = finder;
    273 }
    274 
    275276enum FrameAnalyzer::analyzeFrameResult
    276277HistogramAnalyzer::analyzeFrame(const VideoFrame *frame, long long frameno)
    277278{
    HistogramAnalyzer::analyzeFrame(const VideoFrame *frame, long long frameno) 
    312313    ismonochromatic = borderDetector->getDimensions(pgm, pgmheight, frameno,
    313314            &croprow, &cropcol, &cropwidth, &cropheight) != 0;
    314315
    315     (void)gettimeofday(&start, NULL);
     316    gettimeofday(&start, NULL);
    316317
    317318    frow[frameno] = croprow;
    318319    fcol[frameno] = cropcol;
    HistogramAnalyzer::analyzeFrame(const VideoFrame *frame, long long frameno) 
    392393        sqrt((sumsquares - (float)sumval * sumval / npixels) / (npixels - 1)) :
    393394            0;
    394395
    395     (void)gettimeofday(&end, NULL);
     396    gettimeofday(&end, NULL);
    396397    timersub(&end, &start, &elapsed);
    397398    timeradd(&analyze_time, &elapsed, &analyze_time);
    398399
    HistogramAnalyzer::finished(long long nframes, bool final) 
    426427}
    427428
    428429int
    429 HistogramAnalyzer::reportTime(void) const
     430HistogramAnalyzer::reportTime() const
    430431{
    431432    if (pgmConverter->reportTime())
    432433        return -1;
  • programs/mythcommflag/HistogramAnalyzer.h

    diff --git a/programs/mythcommflag/HistogramAnalyzer.h b/programs/mythcommflag/HistogramAnalyzer.h
    index 49a8d17..91498d3 100644
    a b public: 
    2020    /* Ctor/dtor. */
    2121    HistogramAnalyzer(PGMConverter *pgmc, BorderDetector *bd,
    2222            QString debugdir);
    23     ~HistogramAnalyzer(void);
     23    ~HistogramAnalyzer();
    2424
    2525    enum FrameAnalyzer::analyzeFrameResult nuppelVideoPlayerInited(
    2626            NuppelVideoPlayer *nvp, long long nframes);
    27     void setLogoState(TemplateFinder *finder);
     27    void setLogoState(TemplateFinder *finder) { logoFinder = finder; }
    2828    static const long long UNCACHED = -1;
    2929    enum FrameAnalyzer::analyzeFrameResult analyzeFrame(const VideoFrame *frame,
    3030            long long frameno);
    3131    int finished(long long nframes, bool final);
    32     int reportTime(void) const;
     32    int reportTime() const;
    3333
    3434    /* Each color 0-255 gets a scaled frequency counter 0-255. */
    3535    typedef unsigned char   Histogram[UCHAR_MAX + 1];
    3636
    37     const float *getMeans(void) const { return mean; }
    38     const unsigned char *getMedians(void) const { return median; }
    39     const float *getStdDevs(void) const { return stddev; }
    40     const Histogram *getHistograms(void) const { return histogram; }
    41     const unsigned char *getMonochromatics(void) const { return monochromatic; }
     37    const float *getMeans() const { return mean; }
     38    const unsigned char *getMedians() const { return median; }
     39    const float *getStdDevs() const { return stddev; }
     40    const Histogram *getHistograms() const { return histogram; }
     41    const unsigned char *getMonochromatics() const { return monochromatic; }
    4242
    4343private:
    4444    PGMConverter            *pgmConverter;
  • programs/mythcommflag/PGMConverter.cpp

    diff --git a/programs/mythcommflag/PGMConverter.cpp b/programs/mythcommflag/PGMConverter.cpp
    index 1150833..ff7a633 100644
    a b PGMConverter::PGMConverter(void) 
    1616#endif /* PGM_CONVERT_GREYSCALE */
    1717{
    1818    memset(&pgm, 0, sizeof(pgm));
     19    memset(&convert_time, 0, sizeof(convert_time));
    1920}
    2021
    2122PGMConverter::~PGMConverter(void)
  • programs/mythcommflag/SceneChangeDetector.cpp

    diff --git a/programs/mythcommflag/SceneChangeDetector.cpp b/programs/mythcommflag/SceneChangeDetector.cpp
    index 5568098..bb75429 100644
    a b SceneChangeDetector::SceneChangeDetector(HistogramAnalyzer *ha, 
    9797        QString debugdir)
    9898    : FrameAnalyzer()
    9999    , histogramAnalyzer(ha)
     100    , fps(0.0)
    100101    , scdata(NULL)
    101102    , scdiff(NULL)
    102103    , debugLevel(0)
  • programs/mythcommflag/TemplateFinder.h

    diff --git a/programs/mythcommflag/TemplateFinder.h b/programs/mythcommflag/TemplateFinder.h
    index 04562ef..332f482 100644
    a b private: 
    5656    EdgeDetector    *edgeDetector;
    5757
    5858    unsigned int    sampleTime;         /* amount of time to analyze */
    59     unsigned int    sampleSpacing;      /* seconds between frames */
    6059    int             frameInterval;      /* analyze every <Interval> frames */
    6160    long long       endFrame;           /* end of logo detection */
    6261    long long       nextFrame;          /* next desired frame */
  • programs/mythcommflag/TemplateMatcher.cpp

    diff --git a/programs/mythcommflag/TemplateMatcher.cpp b/programs/mythcommflag/TemplateMatcher.cpp
    index 891b4fe..41e7acd 100644
    a b TemplateMatcher::TemplateMatcher(PGMConverter *pgmc, EdgeDetector *ed, 
    321321    , pgmConverter(pgmc)
    322322    , edgeDetector(ed)
    323323    , templateFinder(tf)
     324    , tmplrow(-1)
     325    , tmplcol(-1)
     326    , tmplwidth(-1)
     327    , tmplheight(-1)
    324328    , matches(NULL)
    325329    , match(NULL)
     330    , fps(0.0)
    326331    , debugLevel(0)
    327332    , debugdir(debugdir)
    328333#ifdef PGM_CONVERT_GREYSCALE