Fix encoder crashes for odd size input
Change-Id: Id5c30c419282369cc8c3280d9a70b34a859a71d8
This commit is contained in:
parent
5adb43b8be
commit
98431cde07
@ -992,6 +992,7 @@ static vpx_codec_frame_flags_t get_frame_pkt_flags(const VP9_COMP *cpi,
|
|||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const size_t kMinCompressedSize = 8192;
|
||||||
static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
||||||
const vpx_image_t *img,
|
const vpx_image_t *img,
|
||||||
vpx_codec_pts_t pts,
|
vpx_codec_pts_t pts,
|
||||||
@ -1013,8 +1014,8 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
|||||||
// instance for its status to determine the compressed data size.
|
// instance for its status to determine the compressed data size.
|
||||||
data_sz = ctx->cfg.g_w * ctx->cfg.g_h * get_image_bps(img) / 8 *
|
data_sz = ctx->cfg.g_w * ctx->cfg.g_h * get_image_bps(img) / 8 *
|
||||||
(cpi->multi_arf_allowed ? 8 : 2);
|
(cpi->multi_arf_allowed ? 8 : 2);
|
||||||
if (data_sz < 4096)
|
if (data_sz < kMinCompressedSize)
|
||||||
data_sz = 4096;
|
data_sz = kMinCompressedSize;
|
||||||
if (ctx->cx_data == NULL || ctx->cx_data_sz < data_sz) {
|
if (ctx->cx_data == NULL || ctx->cx_data_sz < data_sz) {
|
||||||
ctx->cx_data_sz = data_sz;
|
ctx->cx_data_sz = data_sz;
|
||||||
free(ctx->cx_data);
|
free(ctx->cx_data);
|
||||||
|
@ -245,6 +245,8 @@ static double calc_psnrhvs(const unsigned char *src, int _systride,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (pixels <=0)
|
||||||
|
return 0;
|
||||||
ret /= pixels;
|
ret /= pixels;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user