Fix vp9_build_intra_predictors_sbuv_s for non-4:2:0
Remove an assumption about chroma size, and the number of planes. Change-Id: I286a7fac296ec334c6a8ad847f663f3adbb9f43e
This commit is contained in:
		@@ -378,19 +378,21 @@ void vp9_build_intra_predictors_sby_s(MACROBLOCKD *xd,
 | 
			
		||||
 | 
			
		||||
void vp9_build_intra_predictors_sbuv_s(MACROBLOCKD *xd,
 | 
			
		||||
                                       BLOCK_SIZE_TYPE bsize) {
 | 
			
		||||
  const int bwl = b_width_log2(bsize), bw = 2 << bwl;
 | 
			
		||||
  const int bhl = b_height_log2(bsize), bh = 2 << bhl;
 | 
			
		||||
  int p;
 | 
			
		||||
 | 
			
		||||
  vp9_build_intra_predictors(xd->plane[1].dst.buf, xd->plane[1].dst.stride,
 | 
			
		||||
                             xd->plane[1].dst.buf, xd->plane[1].dst.stride,
 | 
			
		||||
                             xd->mode_info_context->mbmi.uv_mode,
 | 
			
		||||
                             bw, bh, xd->up_available,
 | 
			
		||||
                             xd->left_available, 0 /*xd->right_available*/);
 | 
			
		||||
  vp9_build_intra_predictors(xd->plane[2].dst.buf, xd->plane[1].dst.stride,
 | 
			
		||||
                             xd->plane[2].dst.buf, xd->plane[1].dst.stride,
 | 
			
		||||
                             xd->mode_info_context->mbmi.uv_mode,
 | 
			
		||||
                             bw, bh, xd->up_available,
 | 
			
		||||
                             xd->left_available, 0 /*xd->right_available*/);
 | 
			
		||||
  for (p = 1; p < MAX_MB_PLANE; p++) {
 | 
			
		||||
    const struct macroblockd_plane* const pd = &xd->plane[p];
 | 
			
		||||
    const int bwl = b_width_log2(bsize) - pd->subsampling_x;
 | 
			
		||||
    const int bw = 4 << bwl;
 | 
			
		||||
    const int bhl = b_height_log2(bsize) - pd->subsampling_y;
 | 
			
		||||
    const int bh = 4 << bhl;
 | 
			
		||||
 | 
			
		||||
    vp9_build_intra_predictors(pd->dst.buf, pd->dst.stride,
 | 
			
		||||
                               pd->dst.buf, pd->dst.stride,
 | 
			
		||||
                               xd->mode_info_context->mbmi.uv_mode,
 | 
			
		||||
                               bw, bh, xd->up_available,
 | 
			
		||||
                               xd->left_available, 0 /*xd->right_available*/);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void vp9_intra4x4_predict(MACROBLOCKD *xd,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user