OSDN Git Service

Fixed dummy driver compile issue
[android-x86/hardware-intel-common-libva.git] / dummy_drv_video / dummy_drv_video.c
index bc86a7b..20ee3ae 100644 (file)
@@ -451,6 +451,18 @@ VAStatus dummy_CreateImage(
     return VA_STATUS_SUCCESS;
 }
 
+VAStatus dummy_DeriveImage(
+       VADriverContextP ctx,
+       VASurfaceID surface,
+       VAImage *image     /* out */
+)
+{
+    INIT_DRIVER_DATA
+    
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
 VAStatus dummy_DestroyImage(
        VADriverContextP ctx,
        VAImageID image
@@ -508,6 +520,26 @@ VAStatus dummy_PutImage(
     return VA_STATUS_SUCCESS;
 }
 
+VAStatus dummy_PutImage2(
+       VADriverContextP ctx,
+       VASurfaceID surface,
+       VAImageID image,
+       int src_x,
+       int src_y,
+       unsigned int src_width,
+       unsigned int src_height,
+       int dest_x,
+       int dest_y,
+       unsigned int dest_width,
+       unsigned int dest_height
+)
+{
+    INIT_DRIVER_DATA
+    
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
 VAStatus dummy_QuerySubpictureFormats(
        VADriverContextP ctx,
        VAImageFormat *format_list,        /* out */
@@ -623,6 +655,32 @@ VAStatus dummy_AssociateSubpicture(
     return VA_STATUS_SUCCESS;
 }
 
+VAStatus dummy_AssociateSubpicture2(
+       VADriverContextP ctx,
+       VASubpictureID subpicture,
+       VASurfaceID *target_surfaces,
+       int num_surfaces,
+       short src_x, /* upper left offset in subpicture */
+       short src_y,
+       unsigned short src_width,
+       unsigned short src_height,
+       short dest_x, /* upper left offset in surface */
+       short dest_y,
+       unsigned short dest_width,
+       unsigned short dest_height,
+       /*
+        * whether to enable chroma-keying or global-alpha
+        * see VA_SUBPICTURE_XXX values
+        */
+       unsigned int flags
+)
+{
+    INIT_DRIVER_DATA
+    
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
 VAStatus dummy_DeassociateSubpicture(
        VADriverContextP ctx,
        VASubpictureID subpicture,
@@ -678,6 +736,12 @@ VAStatus dummy_CreateContext(
     obj_context->picture_height = picture_height;
     obj_context->num_render_targets = num_render_targets;
     obj_context->render_targets = (VASurfaceID *) malloc(num_render_targets * sizeof(VASurfaceID));
+    if (obj_context->render_targets == NULL)
+    {
+        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+        return vaStatus;
+    }
+    
     for(i = 0; i < num_render_targets; i++)
     {
         if (NULL == SURFACE(render_targets[i]))
@@ -734,11 +798,28 @@ VAStatus dummy_DestroyContext(
 }
 
 
+
+static VAStatus dummy__allocate_buffer(object_buffer_p obj_buffer, int size)
+{
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+
+    obj_buffer->buffer_data = realloc(obj_buffer->buffer_data, size);
+    if (NULL == obj_buffer->buffer_data)
+    {
+        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+    }
+    return vaStatus;
+}
+
 VAStatus dummy_CreateBuffer(
                VADriverContextP ctx,
-               VABufferType type,  /* in */
-               VABufferID *buf_desc    /* out */
-       )
+                VAContextID context,   /* in */
+                VABufferType type,     /* in */
+                unsigned int size,             /* in */
+                unsigned int num_elements,     /* in */
+                void *data,                    /* in */
+                VABufferID *buf_id             /* out */
+)
 {
     INIT_DRIVER_DATA
     VAStatus vaStatus = VA_STATUS_SUCCESS;
@@ -775,36 +856,6 @@ VAStatus dummy_CreateBuffer(
 
     obj_buffer->buffer_data = NULL;
 
-    *buf_desc = bufferID;
-
-    return vaStatus;
-}
-
-static VAStatus dummy__allocate_buffer(object_buffer_p obj_buffer, int size)
-{
-    VAStatus vaStatus = VA_STATUS_SUCCESS;
-
-    obj_buffer->buffer_data = realloc(obj_buffer->buffer_data, size);
-    if (NULL == obj_buffer->buffer_data)
-    {
-        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
-    }
-    return vaStatus;
-}
-
-VAStatus dummy_BufferData(
-               VADriverContextP ctx,
-               VABufferID buf_id,      /* in */
-        unsigned int size,     /* in */
-        unsigned int num_elements,     /* in */
-        void *data             /* in */
-       )
-{
-    INIT_DRIVER_DATA
-    VAStatus vaStatus = VA_STATUS_SUCCESS;
-    object_buffer_p obj_buffer = BUFFER(buf_id);
-    ASSERT(obj_buffer);
-
     vaStatus = dummy__allocate_buffer(obj_buffer, size * num_elements);
     if (VA_STATUS_SUCCESS == vaStatus)
     {
@@ -816,9 +867,15 @@ VAStatus dummy_BufferData(
         }
     }
 
+    if (VA_STATUS_SUCCESS == vaStatus)
+    {
+        *buf_id = bufferID;
+    }
+
     return vaStatus;
 }
 
+
 VAStatus dummy_BufferSetNumElements(
                VADriverContextP ctx,
                VABufferID buf_id,      /* in */
@@ -951,6 +1008,14 @@ VAStatus dummy_RenderPicture(
             break;
         }
     }
+    
+    /* Release buffers */
+    for(i = 0; i < num_buffers; i++)
+    {
+        object_buffer_p obj_buffer = BUFFER(buffers[i]);
+        ASSERT(obj_buffer);
+        dummy__destroy_buffer(driver_data, obj_buffer);
+    }
 
     return vaStatus;
 }
@@ -1089,11 +1154,17 @@ VAStatus dummy_SetDisplayAttributes (
 }
 
 
-VAStatus dummy_DbgCopySurfaceToBuffer(
+VAStatus dummy_CopySurfaceToBuffer(
                VADriverContextP ctx,
                VASurfaceID surface,
-               void **buffer, /* out */
-               unsigned int *stride /* out */
+                unsigned int *fourcc, /* following are output argument */
+                unsigned int *luma_stride,
+                unsigned int *chroma_u_stride,
+                unsigned int *chroma_v_stride,
+                unsigned int *luma_offset,
+                unsigned int *chroma_u_offset,
+                unsigned int *chroma_v_offset,
+               void **buffer
        )
 {
     /* TODO */
@@ -1140,7 +1211,7 @@ VAStatus dummy_Terminate( VADriverContextP ctx )
     return VA_STATUS_SUCCESS;
 }
 
-VAStatus __vaDriverInit_0_25(  VADriverContextP ctx )
+VAStatus __vaDriverInit_0_29(  VADriverContextP ctx )
 {
     object_base_p obj;
     int result;
@@ -1148,7 +1219,7 @@ VAStatus __vaDriverInit_0_25(  VADriverContextP ctx )
     int i;
 
     ctx->version_major = 0;
-    ctx->version_minor = 25;
+    ctx->version_minor = 29;
     ctx->max_profiles = DUMMY_MAX_PROFILES;
     ctx->max_entrypoints = DUMMY_MAX_ENTRYPOINTS;
     ctx->max_attributes = DUMMY_MAX_CONFIG_ATTRIBUTES;
@@ -1170,7 +1241,6 @@ VAStatus __vaDriverInit_0_25(  VADriverContextP ctx )
     ctx->vtable.vaCreateContext = dummy_CreateContext;
     ctx->vtable.vaDestroyContext = dummy_DestroyContext;
     ctx->vtable.vaCreateBuffer = dummy_CreateBuffer;
-    ctx->vtable.vaBufferData = dummy_BufferData;
     ctx->vtable.vaBufferSetNumElements = dummy_BufferSetNumElements;
     ctx->vtable.vaMapBuffer = dummy_MapBuffer;
     ctx->vtable.vaUnmapBuffer = dummy_UnmapBuffer;
@@ -1183,24 +1253,26 @@ VAStatus __vaDriverInit_0_25(  VADriverContextP ctx )
     ctx->vtable.vaPutSurface = dummy_PutSurface;
     ctx->vtable.vaQueryImageFormats = dummy_QueryImageFormats;
     ctx->vtable.vaCreateImage = dummy_CreateImage;
+    ctx->vtable.vaDeriveImage = dummy_DeriveImage;
     ctx->vtable.vaDestroyImage = dummy_DestroyImage;
     ctx->vtable.vaSetImagePalette = dummy_SetImagePalette;
     ctx->vtable.vaGetImage = dummy_GetImage;
     ctx->vtable.vaPutImage = dummy_PutImage;
+    ctx->vtable.vaPutImage2 = dummy_PutImage2;
     ctx->vtable.vaQuerySubpictureFormats = dummy_QuerySubpictureFormats;
     ctx->vtable.vaCreateSubpicture = dummy_CreateSubpicture;
     ctx->vtable.vaDestroySubpicture = dummy_DestroySubpicture;
     ctx->vtable.vaSetSubpictureImage = dummy_SetSubpictureImage;
-    ctx->vtable.vaSetSubpicturePalette = dummy_SetSubpicturePalette;
     ctx->vtable.vaSetSubpictureChromakey = dummy_SetSubpictureChromakey;
     ctx->vtable.vaSetSubpictureGlobalAlpha = dummy_SetSubpictureGlobalAlpha;
     ctx->vtable.vaAssociateSubpicture = dummy_AssociateSubpicture;
+    ctx->vtable.vaAssociateSubpicture2 = dummy_AssociateSubpicture2;
     ctx->vtable.vaDeassociateSubpicture = dummy_DeassociateSubpicture;
     ctx->vtable.vaQueryDisplayAttributes = dummy_QueryDisplayAttributes;
     ctx->vtable.vaGetDisplayAttributes = dummy_GetDisplayAttributes;
     ctx->vtable.vaSetDisplayAttributes = dummy_SetDisplayAttributes;
     
-    ctx->vtable.vaDbgCopySurfaceToBuffer = dummy_DbgCopySurfaceToBuffer;
+    ctx->vtable.vaCopySurfaceToBuffer = dummy_CopySurfaceToBuffer;
 
     driver_data = (struct dummy_driver_data *) malloc( sizeof(*driver_data) );
     ctx->pDriverData = (void *) driver_data;