Index: libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
--- libs/libmythtv/NuppelVideoPlayer.cpp	(revision 23004)
+++ libs/libmythtv/NuppelVideoPlayer.cpp	(working copy)
@@ -183,7 +183,7 @@
       video_frame_rate(29.97f), video_aspect(4.0f / 3.0f),
       forced_video_aspect(-1),
       m_scan(kScan_Interlaced),     m_scan_locked(false),
-      m_scan_tracker(0),
+      m_scan_tracker(0),            m_scan_initialized(false),
       keyframedist(30),
       // Prebuffering (RingBuffer) control
       prebuffering(false), prebuffer_tries(0), prebuffer_tries_total(0),
@@ -244,7 +244,8 @@
       decoder_lock(QMutex::Recursive),
       next_play_speed(1.0f),        next_normal_speed(true),
       play_speed(1.0f),             normal_speed(true),
-      frame_interval((int)(1000000.0f / 30)), ffrew_skip(1),
+      frame_interval((int)(1000000.0f / 30)), m_frame_interval(0),
+      ffrew_skip(1),
       // Audio and video synchronization stuff
       videosync(NULL),              delay(0),
       vsynctol(30/4),               avsync_delay(0),
@@ -1074,8 +1075,16 @@
     if (!videoOutput || !videosync)
         return; // hopefully this will be called again later...
 
+    if (m_scan_initialized &&
+        m_scan == scan &&
+        m_frame_interval == frame_interval)
+        return;
+
     m_scan_locked = (scan != kScan_Detect);
 
+    m_scan_initialized = true;
+    m_frame_interval = frame_interval;
+
     bool interlaced = is_interlaced(scan);
     if (interlaced && !m_deint_possible)
     {
Index: libs/libmythtv/NuppelVideoPlayer.h
===================================================================
--- libs/libmythtv/NuppelVideoPlayer.h	(revision 23004)
+++ libs/libmythtv/NuppelVideoPlayer.h	(working copy)
@@ -637,6 +637,8 @@
     bool     m_scan_locked;
     /// Used for tracking of scan type for auto-detection of interlacing
     int      m_scan_tracker;
+    /// Set when SetScanType runs the first time
+    bool     m_scan_initialized;
     /// Video (input) Number of frames between key frames (often inaccurate)
     int keyframedist;
 
@@ -787,6 +789,7 @@
     float      play_speed;    
     bool       normal_speed;  
     int        frame_interval;///< always adjusted for play_speed
+    int        m_frame_interval;///< used to detect changes to frame_interval
 
     int        ffrew_skip;    
 

