OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 (ybf->y_crop_width + 1) / 2, (ybf->y_crop_height + 1) / 2, | 77 (ybf->y_crop_width + 1) / 2, (ybf->y_crop_height + 1) / 2, |
78 ybf->border / 2, ybf->border / 2, | 78 ybf->border / 2, ybf->border / 2, |
79 (ybf->border + ybf->y_height - ybf->y_crop_height + 1) / 2, | 79 (ybf->border + ybf->y_height - ybf->y_crop_height + 1) / 2, |
80 (ybf->border + ybf->y_width - ybf->y_crop_width + 1) / 2); | 80 (ybf->border + ybf->y_width - ybf->y_crop_width + 1) / 2); |
81 } | 81 } |
82 | 82 |
83 #if CONFIG_VP9 | 83 #if CONFIG_VP9 |
84 static void extend_frame(YV12_BUFFER_CONFIG *const ybf, int ext_size) { | 84 static void extend_frame(YV12_BUFFER_CONFIG *const ybf, int ext_size) { |
85 const int c_w = ybf->uv_crop_width; | 85 const int c_w = ybf->uv_crop_width; |
86 const int c_h = ybf->uv_crop_height; | 86 const int c_h = ybf->uv_crop_height; |
87 const int c_ext_size = ext_size >> 1; | 87 const int ss_x = ybf->uv_width < ybf->y_width; |
88 const int c_et = c_ext_size; | 88 const int ss_y = ybf->uv_height < ybf->y_height; |
89 const int c_el = c_ext_size; | 89 const int c_et = ext_size >> ss_y; |
90 const int c_eb = c_ext_size + ybf->uv_height - ybf->uv_crop_height; | 90 const int c_el = ext_size >> ss_x; |
91 const int c_er = c_ext_size + ybf->uv_width - ybf->uv_crop_width; | 91 const int c_eb = c_et + ybf->uv_height - ybf->uv_crop_height; |
| 92 const int c_er = c_el + ybf->uv_width - ybf->uv_crop_width; |
92 | 93 |
93 assert(ybf->y_height - ybf->y_crop_height < 16); | 94 assert(ybf->y_height - ybf->y_crop_height < 16); |
94 assert(ybf->y_width - ybf->y_crop_width < 16); | 95 assert(ybf->y_width - ybf->y_crop_width < 16); |
95 assert(ybf->y_height - ybf->y_crop_height >= 0); | 96 assert(ybf->y_height - ybf->y_crop_height >= 0); |
96 assert(ybf->y_width - ybf->y_crop_width >= 0); | 97 assert(ybf->y_width - ybf->y_crop_width >= 0); |
97 | 98 |
98 extend_plane(ybf->y_buffer, ybf->y_stride, | 99 extend_plane(ybf->y_buffer, ybf->y_stride, |
99 ybf->y_crop_width, ybf->y_crop_height, | 100 ybf->y_crop_width, ybf->y_crop_height, |
100 ext_size, ext_size, | 101 ext_size, ext_size, |
101 ext_size + ybf->y_height - ybf->y_crop_height, | 102 ext_size + ybf->y_height - ybf->y_crop_height, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 int row; | 169 int row; |
169 const uint8_t *src = src_ybc->y_buffer; | 170 const uint8_t *src = src_ybc->y_buffer; |
170 uint8_t *dst = dst_ybc->y_buffer; | 171 uint8_t *dst = dst_ybc->y_buffer; |
171 | 172 |
172 for (row = 0; row < src_ybc->y_height; ++row) { | 173 for (row = 0; row < src_ybc->y_height; ++row) { |
173 vpx_memcpy(dst, src, src_ybc->y_width); | 174 vpx_memcpy(dst, src, src_ybc->y_width); |
174 src += src_ybc->y_stride; | 175 src += src_ybc->y_stride; |
175 dst += dst_ybc->y_stride; | 176 dst += dst_ybc->y_stride; |
176 } | 177 } |
177 } | 178 } |
OLD | NEW |