Correct the miscalculation in uv dimensions
The calculation of required extension used in HBD case was wrong due to rounding for UV when y dimension is odd. This commit replace the computation with correct version. This fixes a crash caused by writting beyond buffer boundary. Change-Id: Ic7c9afeb7388cd1341ec4974a611dacfb74ac6b6
This commit is contained in:
		@@ -122,17 +122,17 @@ void vp8_yv12_extend_frame_borders_c(YV12_BUFFER_CONFIG *ybf) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    extend_plane_high(
 | 
					    extend_plane_high(
 | 
				
			||||||
        ybf->u_buffer, ybf->uv_stride,
 | 
					        ybf->u_buffer, ybf->uv_stride,
 | 
				
			||||||
        (ybf->y_crop_width + 1) / 2, (ybf->y_crop_height + 1) / 2,
 | 
					        ybf->uv_crop_width, ybf->uv_crop_height,
 | 
				
			||||||
        ybf->border / 2, ybf->border / 2,
 | 
					        uv_border, uv_border,
 | 
				
			||||||
        (ybf->border + ybf->y_height - ybf->y_crop_height + 1) / 2,
 | 
					        uv_border + ybf->uv_height - ybf->uv_crop_height,
 | 
				
			||||||
        (ybf->border + ybf->y_width - ybf->y_crop_width + 1) / 2);
 | 
					        uv_border + ybf->uv_width - ybf->uv_crop_width);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    extend_plane_high(
 | 
					    extend_plane_high(
 | 
				
			||||||
        ybf->v_buffer, ybf->uv_stride,
 | 
					        ybf->v_buffer, ybf->uv_stride,
 | 
				
			||||||
        (ybf->y_crop_width + 1) / 2, (ybf->y_crop_height + 1) / 2,
 | 
					        ybf->uv_crop_width, ybf->uv_crop_height,
 | 
				
			||||||
        ybf->border / 2, ybf->border / 2,
 | 
					        uv_border, uv_border,
 | 
				
			||||||
        (ybf->border + ybf->y_height - ybf->y_crop_height + 1) / 2,
 | 
					        uv_border + ybf->uv_height - ybf->uv_crop_height,
 | 
				
			||||||
        (ybf->border + ybf->y_width - ybf->y_crop_width + 1) / 2);
 | 
					        uv_border + ybf->uv_width - ybf->uv_crop_width);
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user