--- mythtv-svn/programs/mythcommflag/ClassicCommDetector.cpp	2005-12-11 14:24:09.216632992 +1000
+++ mythtv-svn-fix/programs/mythcommflag/ClassicCommDetector.cpp	2005-12-12 18:02:27.856243464 +1000
@@ -43,12 +43,16 @@
                                          bool showProgress_in,
                                          bool fullSpeed_in,
                                          NuppelVideoPlayer* nvp_in,
+                                         const QDateTime& startedAt_in,
+                                         const QDateTime& stopsAt_in,
                                          const QDateTime& recordingStartedAt_in,
                                          const QDateTime& recordingStopsAt_in) :
         commDetectMethod(commDetectMethod_in),
         showProgress(showProgress_in),
         fullSpeed(fullSpeed_in),
         nvp(nvp_in),
+        startedAt(startedAt_in),
+        stopsAt(stopsAt_in),
         recordingStartedAt(recordingStartedAt_in),
         recordingStopsAt(recordingStopsAt_in),
         framesProcessed(0)
@@ -248,7 +252,7 @@
     
     int requiredHeadStart = 30;
     if (commDetectMethod & COMM_DETECT_LOGO)
-        requiredHeadStart += commDetectLogoSecondsNeeded;
+        requiredHeadStart += max(0,recordingStartedAt.secsTo(startedAt)) + commDetectLogoSecondsNeeded;
     else
         requiredHeadStart += 30;
 
@@ -1136,7 +1140,9 @@
     {
         for (int i=0;i<COMM_FORMAT_MAX;i++) formatCounts[i]=0;
 
-        for(long long i = 0; i < framesProcessed; i++ )
+        for(long long i = (max(0,recordingStartedAt.secsTo(startedAt))*(long)fps); 
+                i < (framesProcessed - (max(0,stopsAt.secsTo(recordingStopsAt))*(long)fps));
+                i++ )
             formatCounts[frameInfo[i].format]++;
 
         for(int i = 0; i < COMM_FORMAT_MAX; i++)
@@ -2538,7 +2544,7 @@
         nvp->DiscardVideoFrame(nvp->GetRawVideoFrame(0));
 
         loops = 0;
-        seekFrame = seekIncrement;
+        seekFrame = max(0,recordingStartedAt.secsTo(startedAt)) + seekIncrement;
 
         while(loops < maxLoops && !nvp->GetEof())
         {
--- mythtv-svn/programs/mythcommflag/ClassicCommDetector.h	2005-12-11 14:24:09.243628888 +1000
+++ mythtv-svn-fix/programs/mythcommflag/ClassicCommDetector.h	2005-12-12 18:00:53.135643184 +1000
@@ -12,6 +12,8 @@
     public:
         ClassicCommDetector(int commDetectMethod, bool showProgress,
                             bool fullSpeed, NuppelVideoPlayer* nvp,
+                            const QDateTime& startedAt,
+                            const QDateTime& stopsAt,
                             const QDateTime& recordingStartedAt,
                             const QDateTime& recordingStopsAt_in);
         virtual ~ClassicCommDetector();
@@ -94,6 +96,7 @@
         bool showProgress;
         bool fullSpeed;
         NuppelVideoPlayer *nvp;
+        QDateTime startedAt, stopsAt;
         QDateTime recordingStartedAt, recordingStopsAt;
         bool stillRecording;
         QMap<long long,int> lastSentCommBreakMap;
--- mythtv-svn/programs/mythcommflag/CommDetectorFactory.cpp	2005-12-11 14:24:09.244628736 +1000
+++ mythtv-svn-fix/programs/mythcommflag/CommDetectorFactory.cpp	2005-12-12 18:00:53.149641056 +1000
@@ -8,6 +8,8 @@
     CommDetectorFactory::makeCommDetector(int commDetectMethod,
                                           bool showProgress, bool fullSpeed,
                                           NuppelVideoPlayer* nvp,
+                                          const QDateTime& startedAt,
+                                          const QDateTime& stopsAt,
                                           const QDateTime& recordingStartedAt,
                                           const QDateTime& recordingStopsAt)
 {
@@ -16,7 +18,8 @@
 		//Future different CommDetect implementations will be created here.
         default:
 			return new ClassicCommDetector(commDetectMethod, showProgress,
-                                           fullSpeed, nvp, recordingStartedAt,
+                                           fullSpeed, nvp, startedAt,
+                                           stopsAt, recordingStartedAt,
                                            recordingStopsAt);
 	}
 	
--- mythtv-svn/programs/mythcommflag/CommDetectorFactory.h	2005-12-11 14:24:09.200635424 +1000
+++ mythtv-svn-fix/programs/mythcommflag/CommDetectorFactory.h	2005-12-12 18:00:53.149641056 +1000
@@ -25,8 +25,10 @@
 
 	CommDetectorBase* makeCommDetector(int commDetectMethod, bool showProgress,
                                        bool fullSpeed, NuppelVideoPlayer* nvp,
+                                       const QDateTime& startedAt,
+                                       const QDateTime& stopsAt,
                                        const QDateTime& recordingStartedAt,
-                                       const QDateTime& recordingStopsAt_in);
+                                       const QDateTime& recordingStopsAt);
 };
 
 #endif
--- mythtv-svn/programs/mythcommflag/main.cpp	2005-12-11 14:24:09.202635120 +1000
+++ mythtv-svn-fix/programs/mythcommflag/main.cpp	2005-12-12 18:00:53.151640752 +1000
@@ -301,6 +301,8 @@
     CommDetectorFactory factory;
     commDetector = factory.makeCommDetector(commDetectMethod, showPercentage,
                                             fullSpeed, nvp,
+                                            program_info->startts,
+                                            program_info->endts,
                                             program_info->recstartts,
                                             program_info->recendts);
 
