[MPlayer-dev-eng] [PATCH] change aspect ratio in gtk gui

Aaron Plattner aplattner at nvidia.com
Sat Jul 13 02:37:36 CEST 2013


On 07/12/13 16:47, Reimar Döffinger wrote:
> On 13.07.2013, at 01:28, Reimar Döffinger <Reimar.Doeffinger at gmx.de> wrote:
>> On 12.07.2013, at 02:32, Ingo Brückl <ib at wupperonline.de> wrote:
>>
>>> Reimar Döffinger wrote on Thu, 11 Jul 2013 20:07:32 +0200:
>>>
>>>> On 11.07.2013, at 17:34, wm4 <nfxjfg at googlemail.com> wrote:
>>>>> On Thu, 11 Jul 2013 16:48:44 +0200
>>>>> Ingo Brückl <ib at wupperonline.de> wrote:
>>>>>
>>>>>> Actually, the GUI "chooses" nothing, it's returned from
>>>>>> vo_find_depth_from_visuals() and its ID is 0x21, not 0x11f.
>>>>>> Still different to the glx choice (but of same depth).
>>>>>
>>>>> You could probably solve this by always creating a window in the VO,
>>>>> even with -wid/GUI in use.
>>>
>>>> Is there anything to solve actually?
>>>> I don't really know if there is a point to the failing function.
>>>> Also, just taking the visual of the window as-is would be an option, so
>>>> I don't think there is a lack of options, more if it makes sense to do
>>>> anything about it.
>>>
>>> I'm not sure I understand you, but what about this patch (consisting of two
>>> parts and a later indentation of the else branch) that stops X11 from raising
>>> an error?
>>>
>>> Part 1: Add missing XFree() - necessary for glXChooseVisual() as well.
>>
>> Hm, I have never seen this in valgrind, which makes this a bit suspicious to me.
>> Could reproduce a leak?
>>
>>> Part 2: Add if/else for WinID.
>>
>> Especially for the stereo case I think it's unlikely to work well that way.
>> A more extreme case if it's a visual that is not OpenGL compatible...
>> Lastly, I would expect this issue exists also for egl/GLES so I think it's only a partial solution (note: I've never even tried combining the GUI with GLES -vo gl)
> 
> Also, I wonder if it isn't just that the XCreateColormap should use the window's visual instead of the one of the OpenGL context chosen via the GLX functions.
> I seem to remember that it is actually intentional that they can differ, they just need to be compatible, and you have to use the right one for the right API. But maybe I just imagine this part...

GLX is a little wishy-washy about that:

   If ctx and draw are not compatible then a BadMatch error will be
   generated.  Some implementations may enforce a stricter rule and
   generate a BadMatch error if ctx and draw were not created with the
   same XVisualInfo.

The X server isn't, though:

    if (pCmap->pVisual->vid != wVisual(pWin) ||                                  
        pCmap->pScreen != pScreen) {                                             
        error = BadMatch;                                                        
        goto PatchUp;                                                            
    }

So those had better match.

-- 
Aaron


More information about the MPlayer-dev-eng mailing list