summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNana GUo <nana.n.guo@intel.com>2014-07-22 14:25:20 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-07-22 14:25:20 +0000
commit9c4df2bafbcd3e2cf97eb706d72e047e0b18b30a (patch)
treeb27825170132e499acd7ef9224ca88ccde5763c1
parent4e6282790149a10aab39b3f1d08b5cbe67c88748 (diff)
parent99bacbcb8c68ddc6df38d36bfe912b66236c54b7 (diff)
downloadlibva-9c4df2bafbcd3e2cf97eb706d72e047e0b18b30a.tar.gz
am 99bacbcb: libva: add slice header parsing structure
* commit '99bacbcb8c68ddc6df38d36bfe912b66236c54b7': libva: add slice header parsing structure
-rwxr-xr-xva/va.h110
1 files changed, 108 insertions, 2 deletions
diff --git a/va/va.h b/va/va.h
index a80a526..e753f58 100755
--- a/va/va.h
+++ b/va/va.h
@@ -936,6 +936,10 @@ typedef enum
* color balance (#VAProcFilterParameterBufferColorBalance), etc.
*/
VAProcFilterParameterBufferType = 42,
+
+ VAParsePictureParameterBufferType = 43,
+ VAParseSliceHeaderGroupBufferType = 44,
+
VABufferTypeMax
} VABufferType;
@@ -1804,7 +1808,6 @@ VAStatus vaBufferSetNumElements (
unsigned int num_elements /* in */
);
-
/*
* device independent data structure for codedbuffer
*/
@@ -1872,7 +1875,110 @@ typedef struct _VACodedBufferSegment {
*/
void *next;
} VACodedBufferSegment;
-
+
+/*
+ * H.264 Parsed Slice Header Group Info
+ * After slice header is parsed by decode hardware,
+ * group slice header buffer will be returned to client.
+ * client will retrieve multiple parsed slice header infos from that buffer
+ */
+
+/* H.264 Parsed Slice Header Info */
+typedef struct _VAParseSliceHeaderGroupBuffer
+{
+ unsigned int size;
+
+ unsigned char nal_ref_idc;
+ unsigned char nal_unit_type;
+ unsigned char slice_type;
+ unsigned char redundant_pic_cnt;
+
+ unsigned short first_mb_in_slice;
+ char slice_qp_delta;
+ char slice_qs_delta;
+
+ unsigned char luma_log2_weight_denom;
+ unsigned char chroma_log2_weight_denom;
+ unsigned char cabac_init_idc;
+ unsigned char pic_order_cnt_lsb;
+
+ unsigned char pic_parameter_set_id;
+ unsigned short idr_pic_id;
+ unsigned char colour_plane_id;
+
+ char slice_alpha_c0_offset_div2;
+ char slice_beta_offset_div2;
+ unsigned char slice_group_change_cycle;
+ unsigned char disable_deblocking_filter_idc;
+
+ unsigned int frame_num;
+ int delta_pic_order_cnt_bottom;
+ int delta_pic_order_cnt[2];
+
+ unsigned char num_reorder_cmds[2];
+ unsigned char num_ref_active_minus1[2];
+
+ unsigned int weights_present[2][2];
+
+ unsigned short num_mem_man_ops;
+
+ union {
+ struct {
+ unsigned field_pic_flag : 1;
+ unsigned bottom_field_flag : 1;
+ unsigned num_ref_idx_active_override_flag : 1;
+ unsigned direct_spatial_mv_pred_flag : 1;
+ unsigned no_output_of_prior_pics_flag : 1;
+ unsigned long_term_reference_flag : 1;
+ unsigned idr_flag : 1;
+ unsigned anchor_pic_flag : 1;
+ unsigned inter_view_flag : 1;
+ } bits;
+
+ unsigned short value;
+ } flags;
+
+//MVC
+ unsigned short view_id;
+ unsigned char priority_id;
+ unsigned char temporal_id;
+} VAParseSliceHeaderGroupBuffer;
+
+typedef struct _VAParsePictureParameterBuffer {
+ VABufferID frame_buf_id;
+ VABufferID slice_headers_buf_id;
+ unsigned int frame_size;
+ unsigned int slice_headers_size;
+ union {
+ struct {
+ unsigned frame_mbs_only_flag : 1;
+ unsigned pic_order_present_flag : 1;
+ unsigned delta_pic_order_always_zero_flag : 1;
+ unsigned redundant_pic_cnt_present_flag : 1;
+ unsigned weighted_pred_flag : 1;
+ unsigned entropy_coding_mode_flag : 1;
+ unsigned deblocking_filter_control_present_flag : 1;
+ unsigned weighted_bipred_idc : 1;
+ } bits;
+ unsigned int value;
+ } flags;
+
+ unsigned short expected_pic_parameter_set_id;
+ unsigned char num_slice_groups_minus1;
+ unsigned char slice_group_map_type;
+ unsigned char log2_slice_group_change_cycle;
+ unsigned char chroma_format_idc;
+
+ unsigned char log2_max_pic_order_cnt_lsb_minus4;
+ unsigned char pic_order_cnt_type;
+ unsigned char log2_max_frame_num_minus4;
+
+ /* additionally */
+ unsigned char residual_colour_transform_flag;
+ unsigned char num_ref_idc_l0_active_minus1;
+ unsigned char num_ref_idc_l1_active_minus1;
+} VAParsePictureParameterBuffer;
+
/*
* Map data store of the buffer into the client's address space
* vaCreateBuffer() needs to be called with "data" set to NULL before