Ticket #2916: ticket_2916_attempt2.diff

File ticket_2916_attempt2.diff, 1.6 KB (added by skamithi, 17 years ago)

modify auto deinterlacing detection code. make it more sensitive for dvds so wthat progressive frames seen right after a series of interlaced frames is not deinterlaced. i can reproduce consistently with bobdeint filter and lord of the rings II. the FBI warning frame is a progressive frame and experiences the problem. workaround is still to disable bobdeint.

  • libs/libmythtv/NuppelVideoPlayer.cpp

     
    788788                .arg(abs(m_scan_tracker)).arg(type));
    789789    }
    790790
    791     if (abs(m_scan_tracker) <= 2)
     791    int min_count = (ringBuffer->isDVD()) ? 0 : 2;
     792    if (abs(m_scan_tracker) <= min_count)
    792793        return;
    793794
    794     SetScanType((m_scan_tracker >  2) ? kScan_Interlaced : kScan_Progressive);
     795    SetScanType((m_scan_tracker > min_count) ? kScan_Interlaced : kScan_Progressive);
    795796    m_scan_locked  = false;
    796797}
    797798
  • libs/libmythtv/avformatdecoder.cpp

     
    27052705                    if (GetNVP() && GetNVP()->getVideoOutput())
    27062706                    {
    27072707                        if (ringBuffer->InDVDMenuOrStillFrame())
    2708                         {
    27092708                            GetNVP()->getVideoOutput()->SetPrebuffering(false);
    2710                             GetNVP()->getVideoOutput()->SetDeinterlacingEnabled(false);
    2711                         }
    27122709                        else
    2713                         {
    27142710                            GetNVP()->getVideoOutput()->SetPrebuffering(true);
    2715                             GetNVP()->getVideoOutput()->SetDeinterlacingEnabled(true);
    2716                         }
    27172711                    }
    27182712                }
    27192713                UpdateDVDFramesPlayed();