H264_encoding: Reset the last_packed_header_type to avoid the unpaired packed header...
authorZhao, Yakui <yakui.zhao@intel.com>
Mon, 26 May 2014 00:40:15 +0000 (08:40 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 16 Jun 2014 03:53:35 +0000 (11:53 +0800)
After adding the support of inserting the packed rawdata, more group of packed header data
can be passed. In order to insert the packed rawdata correctly, the packed header type/
data should be paired.

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit fd78866bd64d7ab57fe8cb0c4b25e8357973b0b1)

src/i965_drv_video.c

index d8b50dc..cf42b68 100755 (executable)
@@ -2508,7 +2508,11 @@ i965_encoder_render_picture(VADriverContextP ctx,
 
         case VAEncPackedHeaderDataBufferType:
         {
-
+            if (encode->last_packed_header_type == 0) {
+                WARN_ONCE("the packed header data is passed without type!\n");
+                vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER;
+                return vaStatus;
+            }
             if (encode->last_packed_header_type == VAEncPackedHeaderRawData) {
                 vaStatus = I965_RENDER_ENCODE_BUFFER(packed_header_data_ext);
                 if (vaStatus == VA_STATUS_SUCCESS) {
@@ -2531,6 +2535,7 @@ i965_encoder_render_picture(VADriverContextP ctx,
                                                                      obj_buffer,
                                                                      va_enc_packed_type_to_idx(encode->last_packed_header_type));
             }
+            encode->last_packed_header_type = 0;
             break;       
         }