<div dir="ltr"><div><div><div>Breakpoint 1, vaGetDisplay (native_dpy=0x7fffe4312870) at va_x11.c:154<br>154    {<br>(gdb) list<br>149    <br>150    <br>151    VADisplay vaGetDisplay (<br>152        Display *native_dpy /* implementation specific */<br>153    )<br>154    {<br>155      VADisplay dpy = NULL;<br>156      VADisplayContextP pDisplayContext;<br>157    <br>;;;<br>179          pDisplayContext->opaque          = NULL; <br>177          pDisplayContext->vaDestroy       = va_DisplayContextDestroy;<br>178          pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;<br>181          dpy                              = (VADisplay)pDisplayContext;<br>195    }<br>(gdb) p dpy<br>$2 = (VADisplay) 0x7fffe42d3160<br>(gdb) n <========================== stack unroll happens here<br>(gdb) list<br>935            pVAAPICNTX->vaDisplay = (VADisplay)  <==== upper level code vaGetDisplay(pVAAPICNTX->mX11Display);<br>936             pVAAPICNTX->voWindow = pRendererParams->mWindow;<br>(gdb) p pVAAPICNTX->vaDisplay<br>$3 = (void *) 0xffffffffe42d3160<br><br><br>pVAAPICNTX is malloced struct ptr and one of the element of it is the vaDisplay declated like this : <br><br>typedef struct _VAAPICNTX<br>{<br>    uint32_t                  VAContextID;<br>   Window                   voWindow;<br>   int voWidth;<br>   int voHeight;<br>;;;<br>;;;<br>    VADisplay               vaDisplay;<br><br>;;;<br><br>;;;<br><br>}VAAPICNTX, *PVAAPICNTX; <br><br><br></div>As you can see, dpy above around line 195 in  vaGetDisplay function is shown as  0x7fffe42d3160 but once the program counter comes out of that function and stack rolling happens, and context switches to upper level code, the assigned value has   0xffffffffe42d3160 (sign extended vs unsigned). What might cause this ? Next instance when I call vaInitialize with this vaDisplay, it craches:<br><br>Program received signal SIGSEGV, Segmentation fault.<br>vaDisplayIsValid (dpy=0xffffffffe42d3450) at va.c:102<br>102        return pDisplayContext && (pDisplayContext->vadpy_magic == VA_DISPLAY_MAGIC) && pDisplayContext->vaIsValid(pDisplayContext);<br><br><br><br></div>Any help/pointer would be appreciated. Thanks<br><br><br><br>gcc --version<br>gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4<br>Copyright (C) 2013 Free Software Foundation, Inc.<br>This is free software; see the source for copying conditions.  There is NO<br>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<br><br>ls -la <a href="http://libc-2.19.so">libc-2.19.so</a><br>-rwxr-xr-x 1 root root 1845024 Dec  4  2014 <a href="http://libc-2.19.so">libc-2.19.so</a><br><br>ldd --version<br>ldd (Ubuntu EGLIBC 2.19-0ubuntu6.5) 2.19<br><br><br></div><div>Platform: <br><br></div>Ratin<br><div><div><br><div><br><br><br></div></div></div></div>