diff options
Diffstat (limited to 'src/psb_surface.h')
-rw-r--r-- | src/psb_surface.h | 32 |
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_ */ |