OSDN Git Service

Initialize some buffers to 0 when created
authorXiang, Haihao <haihao.xiang@intel.com>
Fri, 30 Dec 2016 07:21:59 +0000 (15:21 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Fri, 30 Dec 2016 08:26:49 +0000 (16:26 +0800)
Sometimes user doesn't assign a proper value to each field in a buffer
when calling vaRenderPicture(), which will result in random issues
if we want to use these fields in the future. E.g. recently we used
window_size in VAEncMiscParameterRateControl for bitrate control.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
src/i965_drv_video.c

index 15920f5..51a708c 100644 (file)
@@ -2519,8 +2519,12 @@ i965_create_buffer_internal(VADriverContextP ctx,
             buffer_store->buffer = malloc(msize * num_elements);
         assert(buffer_store->buffer);
 
-        if (data && (!wrapper_flag))
-            memcpy(buffer_store->buffer, data, size * num_elements);
+        if (!wrapper_flag) {
+            if (data)
+                memcpy(buffer_store->buffer, data, size * num_elements);
+            else
+                memset(buffer_store->buffer, 0, size * num_elements);
+        }
     }
 
     buffer_store->num_elements = obj_buffer->num_elements;