Commit 3af39b99 authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

Merge "Fix src frame buffer copy and extend"

parents 924af1ed d602500d
...@@ -110,10 +110,10 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src, ...@@ -110,10 +110,10 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src,
// Motion estimation may use src block variance with the block size up // Motion estimation may use src block variance with the block size up
// to 64x64, so the right and bottom need to be extended to 64 multiple // to 64x64, so the right and bottom need to be extended to 64 multiple
// or up to 16, whichever is greater. // or up to 16, whichever is greater.
const int eb_y = MAX(ALIGN_POWER_OF_TWO(src->y_width, 6) - src->y_width, const int eb_y = MAX(src->y_width + 16, ALIGN_POWER_OF_TWO(src->y_width, 6))
16); - src->y_crop_width;
const int er_y = MAX(ALIGN_POWER_OF_TWO(src->y_height, 6) - src->y_height, const int er_y = MAX(src->y_height + 16, ALIGN_POWER_OF_TWO(src->y_height, 6))
16); - src->y_crop_height;
const int uv_width_subsampling = (src->uv_width != src->y_width); const int uv_width_subsampling = (src->uv_width != src->y_width);
const int uv_height_subsampling = (src->uv_height != src->y_height); const int uv_height_subsampling = (src->uv_height != src->y_height);
const int et_uv = et_y >> uv_height_subsampling; const int et_uv = et_y >> uv_height_subsampling;
...@@ -125,17 +125,17 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src, ...@@ -125,17 +125,17 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src,
if (src->flags & YV12_FLAG_HIGHBITDEPTH) { if (src->flags & YV12_FLAG_HIGHBITDEPTH) {
highbd_copy_and_extend_plane(src->y_buffer, src->y_stride, highbd_copy_and_extend_plane(src->y_buffer, src->y_stride,
dst->y_buffer, dst->y_stride, dst->y_buffer, dst->y_stride,
src->y_width, src->y_height, src->y_crop_width, src->y_crop_height,
et_y, el_y, eb_y, er_y); et_y, el_y, eb_y, er_y);
highbd_copy_and_extend_plane(src->u_buffer, src->uv_stride, highbd_copy_and_extend_plane(src->u_buffer, src->uv_stride,
dst->u_buffer, dst->uv_stride, dst->u_buffer, dst->uv_stride,
src->uv_width, src->uv_height, src->uv_crop_width, src->uv_crop_height,
et_uv, el_uv, eb_uv, er_uv); et_uv, el_uv, eb_uv, er_uv);
highbd_copy_and_extend_plane(src->v_buffer, src->uv_stride, highbd_copy_and_extend_plane(src->v_buffer, src->uv_stride,
dst->v_buffer, dst->uv_stride, dst->v_buffer, dst->uv_stride,
src->uv_width, src->uv_height, src->uv_crop_width, src->uv_crop_height,
et_uv, el_uv, eb_uv, er_uv); et_uv, el_uv, eb_uv, er_uv);
return; return;
} }
...@@ -143,17 +143,17 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src, ...@@ -143,17 +143,17 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src,
copy_and_extend_plane(src->y_buffer, src->y_stride, copy_and_extend_plane(src->y_buffer, src->y_stride,
dst->y_buffer, dst->y_stride, dst->y_buffer, dst->y_stride,
src->y_width, src->y_height, src->y_crop_width, src->y_crop_height,
et_y, el_y, eb_y, er_y); et_y, el_y, eb_y, er_y);
copy_and_extend_plane(src->u_buffer, src->uv_stride, copy_and_extend_plane(src->u_buffer, src->uv_stride,
dst->u_buffer, dst->uv_stride, dst->u_buffer, dst->uv_stride,
src->uv_width, src->uv_height, src->uv_crop_width, src->uv_crop_height,
et_uv, el_uv, eb_uv, er_uv); et_uv, el_uv, eb_uv, er_uv);
copy_and_extend_plane(src->v_buffer, src->uv_stride, copy_and_extend_plane(src->v_buffer, src->uv_stride,
dst->v_buffer, dst->uv_stride, dst->v_buffer, dst->uv_stride,
src->uv_width, src->uv_height, src->uv_crop_width, src->uv_crop_height,
et_uv, el_uv, eb_uv, er_uv); et_uv, el_uv, eb_uv, er_uv);
} }
......
...@@ -87,6 +87,8 @@ static vpx_codec_err_t image2yuvconfig(const vpx_image_t *img, ...@@ -87,6 +87,8 @@ static vpx_codec_err_t image2yuvconfig(const vpx_image_t *img,
: yv12->y_width; : yv12->y_width;
yv12->uv_height = img->y_chroma_shift == 1 ? (1 + yv12->y_height) / 2 yv12->uv_height = img->y_chroma_shift == 1 ? (1 + yv12->y_height) / 2
: yv12->y_height; : yv12->y_height;
yv12->uv_crop_width = yv12->uv_width;
yv12->uv_crop_height = yv12->uv_height;
yv12->y_stride = img->stride[VPX_PLANE_Y]; yv12->y_stride = img->stride[VPX_PLANE_Y];
yv12->uv_stride = img->stride[VPX_PLANE_U]; yv12->uv_stride = img->stride[VPX_PLANE_U];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment