gecko-dev/media/libvpx/input_frame_validation.patch
Johann ea398a02dc Bug 1331498: Update libvpx to v1.6.1. r=rillian
Removes armv6 and mmx optimizations.

Removes x86inc.asm distinction. This was put in place because of issues
with 32bit PIC builds but x86inc.asm has since been improved to support
those.

Switch to '.S' for arm assembly. There is now an #include for a helper
file. All build systems appear to support .S so switch to it for
consistency.

Remove clang-cl.patch. There have been numerous changes upstream to
improve clang support.

MozReview-Commit-ID: IHVTbqSY2U7

--HG--
extra : rebase_source : 788796674e3eabed0c178ca327bc5e7628e03382
2017-01-17 13:46:42 -08:00

45 lines
1.8 KiB
Diff

# HG changeset patch
# User Randell Jesup <rjesup@jesup.org>
# Parent 1b77af186da211485fa9c5573d843d96c708a829
Bug 1263384: validate input frames against configured resolution in vp8 r=rillian
MozReview-Commit-ID: BxDCnJe0mzs
diff --git a/media/libvpx/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
--- a/media/libvpx/libvpx/vp8/vp8_cx_iface.c
+++ b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
@@ -855,20 +855,29 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
dst_time_stamp =
pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
dst_end_time_stamp = (pts + duration) * 10000000 * ctx->cfg.g_timebase.num /
ctx->cfg.g_timebase.den;
if (img != NULL) {
res = image2yuvconfig(img, &sd);
- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags, &sd,
- dst_time_stamp, dst_end_time_stamp)) {
- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
- res = update_error_state(ctx, &cpi->common.error);
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
+ /* from vpx_encoder.h for g_w/g_h:
+ "Note that the frames passed as input to the encoder must have this
+ resolution"
+ */
+ ctx->base.err_detail = "Invalid input frame resolution";
+ res = VPX_CODEC_INVALID_PARAM;
+ } else {
+ if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
+ &sd, dst_time_stamp, dst_end_time_stamp)) {
+ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
+ res = update_error_state(ctx, &cpi->common.error);
+ }
}
/* reset for next frame */
ctx->next_frame_flag = 0;
}
cx_data = ctx->cx_data;
cx_data_sz = ctx->cx_data_sz;