Ticket #4637: vsync.diff

File vsync.diff, 1.1 KB (added by anonymous, 16 years ago)
  • libs/libmythtv/vsync.cpp

     
    117117    m_frame_interval(frameint), m_refresh_interval(refreshint),
    118118    m_interlaced(halve_frame_interval)
    119119{
    120     if (m_interlaced && m_refresh_interval > m_frame_interval/2)
     120    int tolerance = m_refresh_interval >> 6;
     121    if (m_interlaced && m_refresh_interval > ((m_frame_interval/2) + tolerance))
    121122        m_interlaced = false; // can't display both fields at 2x rate
    122123
    123124    //cout << "Frame interval: " << m_frame_interval << endl;
     
    133134 */
    134135void VideoSync::SetFrameInterval(int fr, bool intr)
    135136{
     137    int tolerance = m_refresh_interval >> 6;
    136138    m_frame_interval = fr;
    137139    m_interlaced = intr;
    138     if (m_interlaced && m_refresh_interval > m_frame_interval/2)
     140    if (m_interlaced && m_refresh_interval > ((m_frame_interval/2) + tolerance))
    139141        m_interlaced = false; // can't display both fields at 2x rate
    140142
    141143    VERBOSE(VB_PLAYBACK, QString("Set video sync frame interval to %1")