Ticket #904: nobob-fallback.diff

File nobob-fallback.diff, 2.6 KB (added by doug@…, 18 years ago)

da patch

  • libs/libmythtv/NuppelVideoPlayer.h

     
    341341    void  InitAVSync(void);
    342342    void  AVSync(void);
    343343    void  ShutdownAVSync(void);
     344    void  FallbackDeint(void); // Fallback to non-bob deinterlacing
    344345
    345346    // Private closed caption and teletext stuff
    346347    int   tbuffer_numvalid(void); // number of valid slots in the text buffer
  • libs/libmythtv/NuppelVideoPlayer.cpp

     
    621621        {
    622622            VERBOSE(VB_IMPORTANT, "Video sync method can't support double "
    623623                    "framerate (refresh rate too low for bob deint)");
    624             m_scan = kScan_Ignore;
    625             m_double_framerate = false;
    626             m_can_double = false;
    627             if (videoOutput)
    628                 videoOutput->SetupDeinterlace(false);
     624            FallbackDeint();
    629625        }
    630626    }
    631627
     
    16061602    }
    16071603}
    16081604
     1605void NuppelVideoPlayer::FallbackDeint(void)
     1606{
     1607     m_double_framerate = false;
     1608     if (videosync)
     1609         videosync->SetFrameInterval(frame_interval, false);
     1610     if (videoOutput) {
     1611         videoOutput->SetupDeinterlace(false);
     1612         videoOutput->SetupDeinterlace(true, "onefield");
     1613     }
     1614}
     1615
    16091616void NuppelVideoPlayer::DisplayPauseFrame(void)
    16101617{
    16111618    if (!video_actually_paused)
     
    17711778            videosync->SetFrameInterval(frame_interval, m_double_framerate);
    17721779            if (videosync->UsesFrameInterval())
    17731780            {
    1774                 m_scan = kScan_Ignore;
    1775                 m_double_framerate = false;
    1776                 m_can_double = false;
    1777                 if (videoOutput)
    1778                     videoOutput->SetupDeinterlace(false);
     1781                VERBOSE(VB_IMPORTANT, "Video sync method can't support double "
     1782                        "framerate (refresh rate too low for bob deint)");
     1783                FallbackDeint();
    17791784            }
    17801785        }
    17811786    }
     
    27672772        {
    27682773            if (!normal_speed || play_speed < 0.99 || play_speed > 1.01)
    27692774            {
    2770                 m_double_framerate = false;
    2771                 videosync->SetFrameInterval(frame_interval, false);
    2772                 videoOutput->SetupDeinterlace(false);
    2773                 videoOutput->SetupDeinterlace(true, "onefield");
     2775                FallbackDeint();
    27742776            }
    27752777        }
    27762778        else if (m_can_double && !m_double_framerate)