Ticket #5324: openglvid_7.diff

File openglvid_7.diff, 4.7 KB (added by anonymous, 16 years ago)
  • libs/libmythtv/openglvideo.cpp

    diff -ur -X excl mythtvopengl6/libs/libmythtv/openglvideo.cpp mythtvopengl7/libs/libmythtv/openglvideo.cpp
    old new  
    3636
    3737OpenGLVideo::OpenGLVideo() :
    3838    gl_context(NULL),         video_dim(0,0),
    39     viewportSize(0,0),        masterViewportSize(0,0),
    40     display_visible_rect(0,0,0,0),     display_video_rect(0,0,0,0),
    41     video_rect(0,0,0,0),       frameBufferRect(0,0,0,0),
    42     softwareDeinterlacer(QString::null),
     39    actual_video_dim(0,0),    viewportSize(0,0),
     40    masterViewportSize(0,0),  display_visible_rect(0,0,0,0),
     41    display_video_rect(0,0,0,0), video_rect(0,0,0,0),
     42    frameBufferRect(0,0,0,0), softwareDeinterlacer(QString::null),
    4343    hardwareDeinterlacing(false),
    4444    useColourControl(false),  viewportControl(false),
    4545    inputTextureSize(0,0),    currentFrameNum(0),
     
    9494                       bool viewport_control, bool osd)
    9595{
    9696    gl_context            = glcontext;
     97    actual_video_dim      = videoDim;
    9798    video_dim             = videoDim;
     99    if (video_dim.height() == 1088)
     100        video_dim.setHeight(1080);
    98101    display_visible_rect  = displayVisibleRect;
    99102    display_video_rect    = displayVideoRect;
    100103    video_rect            = videoRect;
     
    140143    }
    141144    else
    142145    {
    143         QSize half_size(video_dim.width() >> 1, video_dim.height() >>1);
     146        QSize half_size(actual_video_dim.width() >> 1,
     147                        actual_video_dim.height() >>1);
    144148        GLuint utex = CreateVideoTexture(half_size, inputTextureSize);
    145149        GLuint vtex = CreateVideoTexture(half_size, inputTextureSize);
    146         GLuint ytex = CreateVideoTexture(video_dim, inputTextureSize);;
     150        GLuint ytex = CreateVideoTexture(actual_video_dim, inputTextureSize);;
    147151
    148152        if ((ytex && utex && vtex) && AddFilter(kGLFilterYUV2RGB))
    149153        {
     
    166170                "Falling back to software conversion.\n\t\t\t"
    167171                "Any opengl filters will also be disabled.");
    168172
    169         GLuint rgb24tex = CreateVideoTexture(video_dim, inputTextureSize);
     173        GLuint rgb24tex = CreateVideoTexture(actual_video_dim,
     174                                             inputTextureSize);
    170175
    171176        if (rgb24tex && AddFilter(kGLFilterResize))
    172177        {
     
    547552// locking ok
    548553void OpenGLVideo::UpdateInputFrame(const VideoFrame *frame)
    549554{
    550     if (frame->width  != video_dim.width()  ||
    551         frame->height != video_dim.height() ||
     555    if (frame->width  != actual_video_dim.width()  ||
     556        frame->height != actual_video_dim.height() ||
    552557        frame->width  < 1 ||
    553558        frame->height < 1)
    554559    {
     
    558563
    559564    if (filters.count(kGLFilterYUV2RGB) && (frame->codec == FMT_YV12))
    560565    {
    561         UpdateInput(frame->buf, frame->offsets, 0, FMT_YV12, video_dim);
     566        UpdateInput(frame->buf, frame->offsets, 0, FMT_YV12, actual_video_dim);
    562567        return;
    563568    }
    564569
    565570    // software yuv2rgb
    566     if (convertSize != video_dim)
     571    if (convertSize != actual_video_dim)
    567572    {
    568573        ShutDownYUV2RGB();
    569574
    570575        VERBOSE(VB_PLAYBACK, LOC + "Init software conversion.");
    571576
    572         convertSize = video_dim;
     577        convertSize = actual_video_dim;
    573578        convertBuf = new unsigned char[
    574             (video_dim.width() * video_dim.height() * 3) + 128];
     579            (actual_video_dim.width() * actual_video_dim.height() * 3) + 128];
    575580    }
    576581
    577582    if (convertBuf)
  • libs/libmythtv/openglvideo.h

    diff -ur -X excl mythtvopengl6/libs/libmythtv/openglvideo.h mythtvopengl7/libs/libmythtv/openglvideo.h
    old new  
    8282    QSize GetViewPort(void)         const { return viewportSize; }
    8383    void  SetVideoRect(const QRect &dispvidrect, const QRect &vidrect)
    8484        { display_video_rect = dispvidrect; video_rect = vidrect;}
    85     QSize GetVideoSize(void)        const { return video_dim; }
     85    QSize GetVideoSize(void)        const { return actual_video_dim; }
    8686    void SetVideoResize(const QRect &rect);
    8787    void DisableVideoResize(void);
    8888    int SetPictureAttribute(PictureAttribute attributeType, int newValue);
     
    112112
    113113    OpenGLContext *gl_context;
    114114    QSize          video_dim;
     115    QSize          actual_video_dim;
    115116    QSize          viewportSize;
    116117    QSize          masterViewportSize;
    117118    QRect          display_visible_rect;