Ticket #3044: glfixes.diff

File glfixes.diff, 3.5 KB (added by anonymous, 19 years ago)
  • 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    // Scaling filters
     33    kGLFilterResize
    3234};
    3335
    3436enum DisplayBuffer
  • libs/libmythtv/openglvideo.cpp

     
    593593    if (gl_context->IsRectTextureSupported())
    594594        return size;
    595595
    596     glOrtho(0, size.width(), 0, size.height(), 1, -1);
    597     // aargh...
    598 
    599596    int w = 64;
    600597    int h = 64;
    601598
     
    753750    {
    754751        it->second->outputBuffer = kFrameBufferObject;
    755752
    756         if ((it->first >= kGLFilterKernelDeint) &&
     753        if ((it->first >= kGLFilterLinearBlendDeint) &&
    757754            (it->first <= kGLFilterOneFieldDeintDFR) &&
    758755            !deinterlacing)
    759756        {
     
    807804        // skip colour conversion for frames already in frame buffer
    808805        if (!inputUpdated && (frame == currentFrameNum) &&
    809806            (type == kGLFilterYUV2RGB) && (frame != 0) &&
    810             (!softwareDeinterlacing || (softwareDeinterlacer != "bobdeint")))
     807            (!(softwareDeinterlacing && softwareDeinterlacer == "bobdeint")))
    811808        {
    812809            inputs = filter->frameBufferTextures;
    813810            inputsize = videoSize;
  • libs/libmythtv/videoout_xv.cpp

     
    146146    // to a singleton instance of the DisplayRes class
    147147    if (gContext->GetNumSetting("UseVideoModes", 0))
    148148        display_res = DisplayRes::GetDisplayRes();
     149    use_colorcontrols = gContext->
     150                         GetNumSetting("UseOutputPictureControls", 0);
    149151}
    150152
    151153VideoOutputXv::~VideoOutputXv()
     
    266268                    gl_pipchain->SetMasterViewport(
    267269                        gl_videochain->GetViewPort());
    268270                }
     271                if (gl_osdchain && gl_osdchain != NULL)
     272                {
     273                    gl_osdchain->SetMasterViewport(
     274                        gl_videochain->GetViewPort());
     275                }
     276
    269277            }
    270278        }
    271279#endif // USING_OPENGL_VIDEO
     
    851859                gl_osdchain = NULL;
    852860                gl_osd = false;
    853861            }
     862            else
     863            {
     864            if (gl_videochain && gl_videochain != NULL)
     865                {
     866                    gl_osdchain->SetMasterViewport(
     867                        gl_videochain->GetViewPort());
     868                }
     869            }
    854870
    855871            gl_context->MakeCurrent(false);
    856872#endif // USING_OPENGL_VIDEO
     
    14451461    // The XVideo output methods sometimes allow the picture to
    14461462    // be adjusted, if the chroma keying color can be discovered.
    14471463    if (((VideoOutputSubType() >= XVideo && xv_colorkey) ||
    1448          (VideoOutputSubType() == OpenGL)) &&
    1449         gContext->GetNumSetting("UseOutputPictureControls", 0))
     1464         (VideoOutputSubType() == OpenGL)) && use_colorcontrols)
    14501465        InitPictureAttributes();
    14511466
    14521467    return true;