i965_drv_video: miss some changes in commit cd75047
authorXiang, Haihao <haihao.xiang@intel.com>
Wed, 29 Jun 2011 08:23:57 +0000 (16:23 +0800)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 25 Aug 2011 12:29:00 +0000 (14:29 +0200)
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
src/gen6_mfc.h
src/i965_drv_video.c

index 899dd46..4c37550 100644 (file)
@@ -86,6 +86,7 @@ struct gen6_mfc_context
     struct {
         dri_bo *bo;
         int offset;
+        int end_offset;
     } mfc_indirect_pak_bse_object;                                             //OUTPUT: the compressed bitstream 
 
     //MFX_BSP_BUF_BASE_ADDR_STATE
index 1b81f4d..6cff9b2 100644 (file)
@@ -993,6 +993,7 @@ i965_create_buffer_internal(VADriverContextP ctx,
 
     if (type == VAEncCodedBufferType) {
         size += ALIGN(sizeof(VACodedBufferSegment), 64);
+        size += 0x1000; /* for upper bound check */
     }
 
     obj_buffer->max_num_elements = num_elements;
@@ -1121,7 +1122,7 @@ i965_MapBuffer(VADriverContextP ctx,
 
             coded_buffer_segment->buf = buffer = (unsigned char *)(obj_buffer->buffer_store->bo->virtual) + ALIGN(sizeof(VACodedBufferSegment), 64);
             
-            for (i = 0; i < obj_buffer->size_element - ALIGN(sizeof(VACodedBufferSegment), 64) - 3; i++) {
+            for (i = 0; i < obj_buffer->size_element - ALIGN(sizeof(VACodedBufferSegment), 64) - 3 - 0x1000; i++) {
                 if (!buffer[i] &&
                     !buffer[i + 1] &&
                     !buffer[i + 2] &&
@@ -1129,9 +1130,10 @@ i965_MapBuffer(VADriverContextP ctx,
                     break;
             }
 
-            if (i == obj_buffer->size_element - ALIGN(sizeof(VACodedBufferSegment), 64) - 3)
+            if (i == obj_buffer->size_element - ALIGN(sizeof(VACodedBufferSegment), 64) - 3 - 0x1000) {
                 coded_buffer_segment->status |= VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK;
-            
+            }
+
             coded_buffer_segment->size = i;
         }