summaryrefslogtreecommitdiff
path: root/src/psb_surface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/psb_surface.h')
-rw-r--r--src/psb_surface.h32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/psb_surface.h b/src/psb_surface.h
index 53c11f8..9274c54 100644
--- a/src/psb_surface.h
+++ b/src/psb_surface.h
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011 Intel Corporation. All Rights Reserved.
- * Copyright (c) Imagination Technologies Limited, UK
+ * Copyright (c) Imagination Technologies Limited, UK
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
@@ -9,11 +9,11 @@
* distribute, sub license, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
- *
+ *
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
@@ -60,9 +60,10 @@ struct psb_surface_s {
/* Used to store driver private data, e.g. decoder specific intermediate status data
* extra_info[0-3]: used for decode
* extra_info[4]: surface fourcc
- * extra_info[5]: surface skippeded or not for encode
+ * extra_info[5]: surface skippeded or not for encode, rotate info for decode
+ * extra_info[6]: mfld protected surface
*/
- int extra_info[6];
+ int extra_info[8];
int size;
unsigned int bc_buffer;
};
@@ -89,6 +90,20 @@ VAStatus psb_surface_create_for_userptr(
psb_surface_p psb_surface /* out */
);
+VAStatus psb_surface_create_from_kbuf(
+ psb_driver_data_p driver_data,
+ int width, int height,
+ unsigned size, /* total buffer size need to be allocated */
+ unsigned int fourcc, /* expected fourcc */
+ int kbuf_handle, /*kernel handle */
+ unsigned int luma_stride, /* luma stride, could be width aligned with a special value */
+ unsigned int chroma_u_stride, /* chroma stride */
+ unsigned int chroma_v_stride,
+ unsigned int luma_offset, /* could be 0 */
+ unsigned int chroma_u_offset, /* UV offset from the beginning of the memory */
+ unsigned int chroma_v_offset,
+ psb_surface_p psb_surface /* out */
+);
VAStatus psb_surface_create_camera(psb_driver_data_p driver_data,
@@ -130,4 +145,11 @@ VAStatus psb_surface_sync(psb_surface_p psb_surface);
*/
VAStatus psb_surface_query_status(psb_surface_p psb_surface, VASurfaceStatus *status);
+/*
+ * Set current displaying surface info to kernel
+ */
+int psb_surface_set_displaying(psb_driver_data_p driver_data,
+ int width, int height,
+ psb_surface_p psb_surface);
+
#endif /* _PSB_SURFACE_H_ */