From: Sreerenj Balachandran <sreerenj.balachand...@intel.com> Avoid storing packed slice header index as packed raw data index. This patch is a preparation for submitting all the packed slice headers as a group , instead of pairing with VAEncSliceParameterBuffer in multi slice per frame encoding. If the user only passes the packed slice_header data for one slice before VAEncSliceParameterbuffer one by one, it still can work without this patch. --- src/i965_drv_video.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index 44da864..4854a62 100755 --- a/src/i965_drv_video.c +++ b/src/i965_drv_video.c @@ -2341,8 +2341,7 @@ i965_encoder_render_picture(VADriverContextP ctx, vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; return vaStatus; } - if (encode->last_packed_header_type == VAEncPackedHeaderRawData || - encode->last_packed_header_type == VAEncPackedHeaderSlice) { + if (encode->last_packed_header_type == VAEncPackedHeaderRawData) { vaStatus = I965_RENDER_ENCODE_BUFFER(packed_header_data_ext); if (vaStatus == VA_STATUS_SUCCESS) { /* store the first index of the packed header data for current slice */ @@ -2351,6 +2350,10 @@ i965_encoder_render_picture(VADriverContextP ctx, SLICE_PACKED_DATA_INDEX_TYPE | (encode->num_packed_header_data_ext - 1); } encode->slice_rawdata_count[encode->num_slice_params_ext]++; + } + } else if (encode->last_packed_header_type == VAEncPackedHeaderSlice) { + vaStatus = I965_RENDER_ENCODE_BUFFER(packed_header_data_ext); + if (vaStatus == VA_STATUS_SUCCESS) { if (encode->last_packed_header_type == VAEncPackedHeaderSlice) { if (encode->slice_header_index[encode->num_slice_params_ext] == 0) { encode->slice_header_index[encode->num_slice_params_ext] = -- 1.9.1 _______________________________________________ Libva mailing list Libva@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libva