vlc | branch: master | Thomas Guillem <[email protected]> | Mon Dec 11 14:57:25 
2017 +0100| [c16eef67791923bad3a430349c1dbe1e2246c3b3] | committer: Thomas 
Guillem

direct3d9: gl: don't unlock if a previous lock failed

Didn't see this case happening but nothing prevents it.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c16eef67791923bad3a430349c1dbe1e2246c3b3
---

 modules/video_output/win32/direct3d9.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/modules/video_output/win32/direct3d9.c 
b/modules/video_output/win32/direct3d9.c
index 7eaf2327f5..ad75f2f9ef 100644
--- a/modules/video_output/win32/direct3d9.c
+++ b/modules/video_output/win32/direct3d9.c
@@ -1812,7 +1812,7 @@ GLConvUpdate(const opengl_tex_converter_t *tc, GLuint 
*textures,
     HRESULT hr;
 
     picture_sys_t *picsys = ActivePictureSys(pic);
-    if (!picsys)
+    if (unlikely(!picsys || !priv->gl_render))
         return VLC_EGENERIC;
 
     if (!priv->vt.DXUnlockObjectsNV(priv->gl_handle_d3d, 1, &priv->gl_render))
@@ -1838,6 +1838,8 @@ GLConvUpdate(const opengl_tex_converter_t *tc, GLuint 
*textures,
     if (!priv->vt.DXLockObjectsNV(priv->gl_handle_d3d, 1, &priv->gl_render))
     {
         msg_Warn(tc->gl, "DXLockObjectsNV failed");
+        priv->vt.DXUnregisterObjectNV(priv->gl_handle_d3d, priv->gl_render);
+        priv->gl_render = NULL;
         return VLC_EGENERIC;
     }
 

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to