Ticket #2649: opengl_deinterlacing_fixes.diff

File opengl_deinterlacing_fixes.diff, 2.5 KB (added by mark_kendall@…, 20 years ago)

Opengl deinterlacing fixes

  • libs/libmythtv/openglcontext.cpp

     
    4545
    4646OpenGLContext::~OpenGLContext()
    4747{
     48    MakeCurrent(true);
    4849    if (m_priv->m_glx_context)
    4950    {
    5051        DeletePrograms();
  • libs/libmythtv/openglvideo.h

     
    1717    // Conversion filters
    1818    kGLFilterYUV2RGB,
    1919    kGLFilterYUV2RGBA,
    20     kGLFilterResize,
    2120
    2221    // Frame rate preserving deinterlacers
    2322    kGLFilterLinearBlendDeint,
     
    2928    kGLFilterLinearBlendDeintDFR,
    3029    kGLFilterKernelDeintDFR,
    3130    kGLFilterOneFieldDeintDFR,
     31
     32    // Frame scaling/resizing filters
     33    kGLFilterResize,
    3234};
    3335
    3436enum DisplayBuffer
  • libs/libmythtv/openglvideo.cpp

     
    753753    {
    754754        it->second->outputBuffer = kFrameBufferObject;
    755755
    756         if ((it->first >= kGLFilterKernelDeint) &&
     756        if ((it->first >= kGLFilterLinearBlendDeint) &&
    757757            (it->first <= kGLFilterOneFieldDeintDFR) &&
    758758            !deinterlacing)
    759759        {
     
    807807        // skip colour conversion for frames already in frame buffer
    808808        if (!inputUpdated && (frame == currentFrameNum) &&
    809809            (type == kGLFilterYUV2RGB) && (frame != 0) &&
    810             (!softwareDeinterlacing || (softwareDeinterlacer != "bobdeint")))
     810            (!(softwareDeinterlacing && softwareDeinterlacer == "bobdeint")))
    811811        {
    812812            inputs = filter->frameBufferTextures;
    813813            inputsize = videoSize;
  • libs/libmythtv/videoout_xv.cpp

     
    834834        else
    835835        {
    836836            video_output_subtype = OpenGL;
     837            // ensure deinterlacing is re-enabled after input change
     838            bool temp_deinterlacing = m_deinterlacing;
     839            SetDeinterlacingEnabled(false);
     840            if (temp_deinterlacing)
     841                SetDeinterlacingEnabled(temp_deinterlacing);
    837842        }
    838843    }
    839844