[mythtv-commits] mythtv commits

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Sat Jun 4 02:50:02 UTC 2005


----------------------------------------------------------------------------
Changes committed by cpinkham on Sat Jun  4 02:46:30 2005

Added Files:
   in mythtv/programs/mythcommflag:
        ClassicCommDetector.cpp ClassicCommDetector.h 
        CommDetectorBase.cpp CommDetectorBase.h 
        CommDetectorFactory.cpp CommDetectorFactory.h 
        CustomEventRelayer.h SlotRelayer.h 
Modified Files:
   in mythtv/libs/libmyth:
        exitcodes.h 
   in mythtv/libs/libmythtv:
        NuppelVideoPlayer.cpp NuppelVideoPlayer.h 
        NuppelVideoRecorder.cpp NuppelVideoRecorder.h dtvrecorder.cpp 
        dtvrecorder.h libmythtv.pro mpegrecorder.cpp mpegrecorder.h 
        programinfo.cpp programinfo.h recorderbase.h tv_play.cpp 
        tv_play.h tv_rec.cpp 
   in mythtv/programs/mythcommflag:
        .cvsignore main.cpp mythcommflag.pro 
   in mythtv/programs/mythfrontend:
        globalsettings.cpp 
Removed Files:
   in mythtv/libs/libmythtv:
        commercial_skip.cpp commercial_skip.h 
Log Message:


The "if this won't put you over your email inbox quota for the day, then
nothing will" commit log message....


* This is a large Commercial Detection re-organization patch by Lucas Meijer
  with a little cleanup and minor modifications by me (Chris Pinkham).
  The comments here are mine so don't fault him for my wordiness or typos. :)

  Even though the patch is large, no big new Commercial Detection
  functionality is being added, this is mainly a re-org and cleanup of code.
  The main purposes are to move the Commmercial Flagger code out of libmythtv
  into mythtv/programs/mythcommflag and to make it easier to add and test
  new commercial detection methods.  The commercial detection results from
  this code should be the same as from prior code, no enhancement or
  degredation should be experienced.

  - Added files/classes:
    - ClassicCommDetector.(cpp|h).  This is the main guts of the current
      (aka original) commercial detection code previously located in
      mythtv/libs/libmythtv/commercial_skip.(cpp|h).
    - CommDetectorBase.(cpp|h).  This is a base commercial detector
      class which is now inherited by ClassicCommDetector.
    - CommDirectorFactory.(cpp|h).  This is a wrapper for the
      ClassicCommDetector and any new detectors that are added/tested.
      mythcommflag now instantiates a commercial detector via the
      CommDirectorFactory.
    - CustomEventRelayer.h.  A simple class for relaying QCustomEvent events
      to a function pointer.
    - SlotRelayer.h.  A simple class for relaying a Qt slot to a function
      pointer.

  - Removed files/classes:
    - commercial_skip.(cpp|h) containing CommDetect class.  This
      code and functionality has been moved to ClassicCommDetector.(cpp|h).

  - Minor feature additions:
    - mythcommflag now sends out a COMMFLAG_START event when it starts
      flagging a recording.
    - players send out a COMMFLAG_REQUEST event when the user starts playing
      a recording.
    - If the player receives a COMMFLAG_START event for the recording being
      played, the player sends out a COMMFLAG_REQUEST event.
    - If mythcommflag receives a COMMFLAG_REQUEST event for the recording
      being flagged, it will recalculate the commercial skip list and send
      out a COMMFLAG_UPDATE event.
    - mythcommflag no longer sends out COMMFLAG_UPDATE events unless it has
      previously received a COMMFLAG_REQUEST event indicating that someone
      is playing back the recording currently being flagged.  This should
      cut down on uncessary messages being sent out from the flagger.
    - logic changed in ClassicCommDetector to check contents of new
      commercial break list versus the commercial break list last sent
      rather than just checking the size of the two maps and (falsely)
      assuming they were equal in contents if they were equal in size.

  - Code additions/changes in NuppelVideoPlayer:
    - Added NuppelVideoPlayer::GetRawVideoFrame() to return a VideoFrame*
      for a specified frameNumber or by default the next frame in the
      recording if no frameNumber is given.
    - Made NVP::InitVideo() public.

  - Other major items affected by the code cleanup:
    - The old record-time detection of blank frames for people using software
      encoding has been removed.  The new ~realtime flagging using the ALL
      method can do a much better job and still can occur at record-time.
    - The old playback-time commercial detection code in NuppelVideoPlayer
      which would use blank frames to try to do realtime detection during
      playback has been removed as well.  This code hasn't been maintained
      at all for a very long time and didn't work very well anyway.  With
      the new ~realtime commercial detection, this playback-time detection
      is obsolete.
    - Quite a bit of cleanup in mythcommflag to get rid of a bunch of old
      code that was in there for testing but is either no longer necessary
      or is replaced by new testing features.

  - To help in testing the re-org, the following new command line args were
    added to mythcommflag:

    --onlydumpdb           - causes mythcommflag to not flag, but to read the
                             commercial break liast from the DB and display
    --outputfile FILENAME  - causes mythcommflag to print --onlydumpdb and/or
                             normal flagging results to FILENAME
    --dontwritetodb        - causes mythcommflag to skip writing flagging
                             results to the database.  results can still be
                             displayed out output to a file using --outputfile
    --allstart DATE
    --allend DATE          - these two settings control the start and end
                             times for the query used to select programs to
                             flag.  start defaults to Jan 1, 1970, end defaults
                             to the current time.  These aren't necessary but
                             can be used for instance to reflag all recordings
                             made over the past week.  DATE format is the same
                             as the --starttime option.  YYYYMMDDHHMMSS



----------------------------------------------------------------------------


More information about the mythtv-commits mailing list