Hi,

va_TraceEndPicture() calls vaLockSurface() but never called vaUnlockSurface(). Fix attached.

Regards,
Gwenole.
From f1d6f66fb2c293c78f828745dc16e2f17c97f00b Mon Sep 17 00:00:00 2001
From: Gwenole Beauchesne <gbeauche...@splitted-desktop.com>
Date: Fri, 23 Jul 2010 13:28:29 +0200
Subject: [PATCH] Fix va_TraceEndPicture() to unlock the VA surface.

---
 va/va_trace.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/va/va_trace.c b/va/va_trace.c
index 4589a48..17dc2f8 100644
--- a/va/va_trace.c
+++ b/va/va_trace.c
@@ -1086,8 +1086,10 @@ void va_TraceEndPicture(
     va_TraceMsg("\tchroma_u_offset=%d\n", chroma_u_offset);
     va_TraceMsg("\tchroma_v_offset=%d\n", chroma_v_offset);
 
-    if (!buffer)
+    if (!buffer) {
+        vaUnlockSurface(dpy, trace_rendertarget);
         return;
+    }
 
     Y_data = buffer;
     UV_data = buffer + luma_offset;
@@ -1120,4 +1122,6 @@ void va_TraceEndPicture(
             tmp = UV_data + i * chroma_u_stride;
         }
     }
+
+    vaUnlockSurface(dpy, trace_rendertarget);
 }
-- 
1.5.4.3

_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to