ref: 28e44bbb0b71ef5343b87587cbbce6d8a3c25018
parent: 2117fe059319e87b101c39fe13bf523523c5a394
parent: d427fab587842abee67f0f29c1aa8a904fd0a2b0
author: Yaowu Xu <yaowu@google.com>
date: Fri Nov 22 12:01:07 EST 2013
Merge "Fix bug in extend_frame chroma extended too far"
--- a/vpx_scale/generic/yv12extend.c
+++ b/vpx_scale/generic/yv12extend.c
@@ -84,14 +84,13 @@
static void extend_frame(YV12_BUFFER_CONFIG *const ybf,
int subsampling_x, int subsampling_y,
int ext_size) {
- const int c_w = (ybf->y_crop_width + subsampling_x) >> subsampling_x;
- const int c_h = (ybf->y_crop_height + subsampling_y) >> subsampling_y;
- const int c_et = ext_size >> subsampling_y;
- const int c_el = ext_size >> subsampling_x;
- const int c_eb = (ext_size + ybf->y_height - ybf->y_crop_height +
- subsampling_y) >> subsampling_y;
- const int c_er = (ext_size + ybf->y_width - ybf->y_crop_width +
- subsampling_x) >> subsampling_x;
+ const int c_w = ybf->uv_crop_width;
+ const int c_h = ybf->uv_crop_height;
+ const int c_ext_size = ext_size >> 1;
+ const int c_et = c_ext_size;
+ const int c_el = c_ext_size;
+ const int c_eb = c_ext_size + ybf->uv_height - ybf->uv_crop_height;
+ const int c_er = c_ext_size + ybf->uv_width - ybf->uv_crop_width;
assert(ybf->y_height - ybf->y_crop_height < 16);
assert(ybf->y_width - ybf->y_crop_width < 16);
--- a/vpxdec.c
+++ b/vpxdec.c
@@ -864,7 +864,8 @@
fail:
if (vpx_codec_destroy(&decoder)) {
- fprintf(stderr, "Failed to destroy decoder: %s\n", vpx_codec_error(&decoder));
+ fprintf(stderr, "Failed to destroy decoder: %s\n",
+ vpx_codec_error(&decoder));
return EXIT_FAILURE;
}
@@ -875,6 +876,8 @@
webm_free(input.webm_ctx);
else
free(buf);
+
+ if (scaled_img) vpx_img_free(scaled_img);
fclose(infile);
free(argv);
--
⑨