Hi,
On 28.05.2014 11:07, Zhao, Yakui wrote:
On Wed, 2014-05-28 at 10:10 +0300, sreerenj.balachand...@intel.com
wrote:
From: Sreerenj Balachandran <sreerenj.balachand...@intel.com>
Avoid storing packed slice header index as packed raw data index.
This is necessary for handling the use case of having
only packed slice header and no packed raw data feeding from user.
Hi, Screerenj
Thanks for your patch. It looks good to me.
BTW: Can it handle the case of having only packed slice_header if this
patch is not applied?
The use case having only packed_slice_headers in a mulit-slice-per-frame
scenario won't work if the user submit all packed_slice headers before
submitting the VAEncSliceParameterBuffer. It should be possible to
submit the packed_slice_headers with out pairing with the submission of
VAEncSliceParameterBuffer. right? I am preparing another patch to handle
this case.
In fact when inserting the packing data, the packed slice_header info
will be deferred to the last step although it is also tracked in packed
rawdata type.
Thanks.
Yakui
---
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 c5a4f37..b69c606 100755
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -2334,8 +2334,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 */
@@ -2344,6 +2343,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] =
--
Thanks
Sree
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki
Business Identity Code: 0357606 - 4
Domiciled in Helsinki
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva