ref: 4d1c5aa413a8a0d8dbced6e48a75ac8c1198e6bc
parent: b02fdf098a4140f87b03b4ce80dd3ab7998a3a94
parent: 6f9457ec12a98b3aceefbcb79783c084268d0b36
author: John Koleszar <jkoleszar@google.com>
date: Thu Sep 22 20:05:07 EDT 2011
Merge remote branch 'origin/master' into experimental Change-Id: I44db27204081ef238cefb521f3ae728091c5c71b
--- a/examples.mk
+++ b/examples.mk
@@ -16,7 +16,7 @@
vpxdec.SRCS += md5_utils.c md5_utils.h
vpxdec.SRCS += vpx_ports/vpx_timer.h
vpxdec.SRCS += vpx/vpx_integer.h
-vpxdec.SRCS += args.c args.h vpx_ports/config.h
+vpxdec.SRCS += args.c args.h
vpxdec.SRCS += tools_common.c tools_common.h
vpxdec.SRCS += nestegg/halloc/halloc.h
vpxdec.SRCS += nestegg/halloc/src/align.h
@@ -30,7 +30,7 @@
UTILS-$(CONFIG_ENCODERS) += vpxenc.c
vpxenc.SRCS += args.c args.h y4minput.c y4minput.h
vpxenc.SRCS += tools_common.c tools_common.h
-vpxenc.SRCS += vpx_ports/config.h vpx_ports/mem_ops.h
+vpxenc.SRCS += vpx_ports/mem_ops.h
vpxenc.SRCS += vpx_ports/mem_ops_aligned.h
vpxenc.SRCS += libmkv/EbmlIDs.h
vpxenc.SRCS += libmkv/EbmlWriter.c
--- a/vp8/common/alloccommon.c
+++ b/vp8/common/alloccommon.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "blockd.h"
#include "vpx_mem/vpx_mem.h"
#include "onyxc_int.h"
--- a/vp8/common/arm/arm_systemdependent.c
+++ b/vp8/common/arm/arm_systemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/arm.h"
#include "vp8/common/g_common.h"
#include "vp8/common/pragmas.h"
--- a/vp8/common/arm/filter_arm.c
+++ b/vp8/common/arm/filter_arm.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include <math.h>
#include "vp8/common/filter.h"
#include "vp8/common/subpixel.h"
--- a/vp8/common/arm/neon/recon_neon.c
+++ b/vp8/common/arm/neon/recon_neon.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/recon.h"
#include "vp8/common/blockd.h"
--- a/vp8/common/arm/reconintra_arm.c
+++ b/vp8/common/arm/reconintra_arm.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/blockd.h"
#include "vp8/common/reconintra.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/common/blockd.h
+++ b/vp8/common/blockd.h
@@ -14,7 +14,7 @@
void vpx_log(const char *format, ...);
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_scale/yv12config.h"
#include "mv.h"
#include "treecoder.h"
--- a/vp8/common/generic/systemdependent.c
+++ b/vp8/common/generic/systemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/g_common.h"
#include "vp8/common/subpixel.h"
#include "vp8/common/loopfilter.h"
--- a/vp8/common/invtrans.h
+++ b/vp8/common/invtrans.h
@@ -12,7 +12,7 @@
#ifndef __INC_INVTRANS_H
#define __INC_INVTRANS_H
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "idct.h"
#include "blockd.h"
extern void vp8_inverse_transform_b(const vp8_idct_rtcd_vtable_t *rtcd, BLOCKD *b, int pitch);
--- a/vp8/common/postproc.c
+++ b/vp8/common/postproc.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_scale/yv12config.h"
#include "postproc.h"
#include "vpx_scale/yv12extend.h"
--- a/vp8/common/recon.c
+++ b/vp8/common/recon.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "recon.h"
#include "blockd.h"
--- a/vp8/common/reconinter.c
+++ b/vp8/common/reconinter.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx/vpx_integer.h"
#include "recon.h"
#include "subpixel.h"
@@ -325,6 +325,42 @@
}
}
+static void clamp_mv_to_umv_border(MV *mv, const MACROBLOCKD *xd)
+{
+ /* If the MV points so far into the UMV border that no visible pixels
+ * are used for reconstruction, the subpel part of the MV can be
+ * discarded and the MV limited to 16 pixels with equivalent results.
+ *
+ * This limit kicks in at 19 pixels for the top and left edges, for
+ * the 16 pixels plus 3 taps right of the central pixel when subpel
+ * filtering. The bottom and right edges use 16 pixels plus 2 pixels
+ * left of the central pixel when filtering.
+ */
+ if (mv->col < (xd->mb_to_left_edge - (19 << 3)))
+ mv->col = xd->mb_to_left_edge - (16 << 3);
+ else if (mv->col > xd->mb_to_right_edge + (18 << 3))
+ mv->col = xd->mb_to_right_edge + (16 << 3);
+
+ if (mv->row < (xd->mb_to_top_edge - (19 << 3)))
+ mv->row = xd->mb_to_top_edge - (16 << 3);
+ else if (mv->row > xd->mb_to_bottom_edge + (18 << 3))
+ mv->row = xd->mb_to_bottom_edge + (16 << 3);
+}
+
+/* A version of the above function for chroma block MVs.*/
+static void clamp_uvmv_to_umv_border(MV *mv, const MACROBLOCKD *xd)
+{
+ mv->col = (2*mv->col < (xd->mb_to_left_edge - (19 << 3))) ?
+ (xd->mb_to_left_edge - (16 << 3)) >> 1 : mv->col;
+ mv->col = (2*mv->col > xd->mb_to_right_edge + (18 << 3)) ?
+ (xd->mb_to_right_edge + (16 << 3)) >> 1 : mv->col;
+
+ mv->row = (2*mv->row < (xd->mb_to_top_edge - (19 << 3))) ?
+ (xd->mb_to_top_edge - (16 << 3)) >> 1 : mv->row;
+ mv->row = (2*mv->row > xd->mb_to_bottom_edge + (18 << 3)) ?
+ (xd->mb_to_bottom_edge + (16 << 3)) >> 1 : mv->row;
+}
+
void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x,
unsigned char *dst_y,
unsigned char *dst_u,
@@ -336,18 +372,24 @@
unsigned char *ptr;
unsigned char *uptr, *vptr;
- int mv_row = x->mode_info_context->mbmi.mv.as_mv.row;
- int mv_col = x->mode_info_context->mbmi.mv.as_mv.col;
+ int_mv _16x16mv;
unsigned char *ptr_base = x->pre.y_buffer;
int pre_stride = x->block[0].pre_stride;
- ptr = ptr_base + (mv_row >> 3) * pre_stride + (mv_col >> 3);
+ _16x16mv.as_int = x->mode_info_context->mbmi.mv.as_int;
- if ((mv_row | mv_col) & 7)
+ if (x->mode_info_context->mbmi.need_to_clamp_mvs)
{
- x->subpixel_predict16x16(ptr, pre_stride, mv_col & 7, mv_row & 7, dst_y, dst_ystride);
+ clamp_mv_to_umv_border(&_16x16mv.as_mv, x);
}
+
+ ptr = ptr_base + ( _16x16mv.as_mv.row >> 3) * pre_stride + (_16x16mv.as_mv.col >> 3);
+
+ if ( _16x16mv.as_int & 0x00070007)
+ {
+ x->subpixel_predict16x16(ptr, pre_stride, _16x16mv.as_mv.col & 7, _16x16mv.as_mv.row & 7, dst_y, dst_ystride);
+ }
else
{
RECON_INVOKE(&x->rtcd->recon, copy16x16)(ptr, pre_stride, dst_y, dst_ystride);
@@ -354,31 +396,31 @@
}
/* calc uv motion vectors */
- if (mv_row < 0)
- mv_row -= 1;
+ if ( _16x16mv.as_mv.row < 0)
+ _16x16mv.as_mv.row -= 1;
else
- mv_row += 1;
+ _16x16mv.as_mv.row += 1;
- if (mv_col < 0)
- mv_col -= 1;
+ if (_16x16mv.as_mv.col < 0)
+ _16x16mv.as_mv.col -= 1;
else
- mv_col += 1;
+ _16x16mv.as_mv.col += 1;
- mv_row /= 2;
- mv_col /= 2;
+ _16x16mv.as_mv.row /= 2;
+ _16x16mv.as_mv.col /= 2;
- mv_row &= x->fullpixel_mask;
- mv_col &= x->fullpixel_mask;
+ _16x16mv.as_mv.row &= x->fullpixel_mask;
+ _16x16mv.as_mv.col &= x->fullpixel_mask;
pre_stride >>= 1;
- offset = (mv_row >> 3) * pre_stride + (mv_col >> 3);
+ offset = ( _16x16mv.as_mv.row >> 3) * pre_stride + (_16x16mv.as_mv.col >> 3);
uptr = x->pre.u_buffer + offset;
vptr = x->pre.v_buffer + offset;
- if ((mv_row | mv_col) & 7)
+ if ( _16x16mv.as_int & 0x00070007)
{
- x->subpixel_predict8x8(uptr, pre_stride, mv_col & 7, mv_row & 7, dst_u, dst_uvstride);
- x->subpixel_predict8x8(vptr, pre_stride, mv_col & 7, mv_row & 7, dst_v, dst_uvstride);
+ x->subpixel_predict8x8(uptr, pre_stride, _16x16mv.as_mv.col & 7, _16x16mv.as_mv.row & 7, dst_u, dst_uvstride);
+ x->subpixel_predict8x8(vptr, pre_stride, _16x16mv.as_mv.col & 7, _16x16mv.as_mv.row & 7, dst_v, dst_uvstride);
}
else
{
@@ -385,7 +427,6 @@
RECON_INVOKE(&x->rtcd->recon, copy8x8)(uptr, pre_stride, dst_u, dst_uvstride);
RECON_INVOKE(&x->rtcd->recon, copy8x8)(vptr, pre_stride, dst_v, dst_uvstride);
}
-
}
static void build_inter4x4_predictors_mb(MACROBLOCKD *x)
@@ -398,6 +439,13 @@
x->block[ 2].bmi = x->mode_info_context->bmi[ 2];
x->block[ 8].bmi = x->mode_info_context->bmi[ 8];
x->block[10].bmi = x->mode_info_context->bmi[10];
+ if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+ {
+ clamp_mv_to_umv_border(&x->block[ 0].bmi.mv.as_mv, x);
+ clamp_mv_to_umv_border(&x->block[ 2].bmi.mv.as_mv, x);
+ clamp_mv_to_umv_border(&x->block[ 8].bmi.mv.as_mv, x);
+ clamp_mv_to_umv_border(&x->block[10].bmi.mv.as_mv, x);
+ }
build_inter_predictors4b(x, &x->block[ 0], 16);
build_inter_predictors4b(x, &x->block[ 2], 16);
@@ -413,6 +461,11 @@
x->block[i+0].bmi = x->mode_info_context->bmi[i+0];
x->block[i+1].bmi = x->mode_info_context->bmi[i+1];
+ if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+ {
+ clamp_mv_to_umv_border(&x->block[i+0].bmi.mv.as_mv, x);
+ clamp_mv_to_umv_border(&x->block[i+1].bmi.mv.as_mv, x);
+ }
if (d0->bmi.mv.as_int == d1->bmi.mv.as_int)
build_inter_predictors2b(x, d0, 16);
@@ -431,6 +484,8 @@
BLOCKD *d0 = &x->block[i];
BLOCKD *d1 = &x->block[i+1];
+ /* Note: uv mvs already clamped in build_4x4uvmvs() */
+
if (d0->bmi.mv.as_int == d1->bmi.mv.as_int)
build_inter_predictors2b(x, d0, 8);
else
@@ -475,6 +530,9 @@
else temp += 4;
x->block[uoffset].bmi.mv.as_mv.col = (temp / 8) & x->fullpixel_mask;
+
+ if (x->mode_info_context->mbmi.need_to_clamp_mvs)
+ clamp_uvmv_to_umv_border(&x->block[uoffset].bmi.mv.as_mv, x);
x->block[voffset].bmi.mv.as_mv.row =
x->block[uoffset].bmi.mv.as_mv.row ;
--- a/vp8/common/reconintra.c
+++ b/vp8/common/reconintra.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "recon.h"
#include "reconintra.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/common/reconintra4x4.c
+++ b/vp8/common/reconintra4x4.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "recon.h"
#include "vpx_mem/vpx_mem.h"
#include "reconintra.h"
--- a/vp8/common/systemdependent.h
+++ b/vp8/common/systemdependent.h
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#if ARCH_X86 || ARCH_X86_64
void vpx_reset_mmx_state(void);
#define vp8_clear_system_state() vpx_reset_mmx_state()
--- a/vp8/common/x86/recon_wrapper_sse2.c
+++ b/vp8/common/x86/recon_wrapper_sse2.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/recon.h"
#include "recon_x86.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/common/x86/vp8_asm_stubs.c
+++ b/vp8/common/x86/vp8_asm_stubs.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/mem.h"
#include "vp8/common/subpixel.h"
--- a/vp8/decoder/arm/arm_dsystemdependent.c
+++ b/vp8/decoder/arm/arm_dsystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/arm.h"
#include "vp8/common/blockd.h"
#include "vp8/common/pragmas.h"
--- a/vp8/decoder/arm/armv6/idct_blk_v6.c
+++ b/vp8/decoder/arm/armv6/idct_blk_v6.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "vp8/decoder/dequantize.h"
--- a/vp8/decoder/arm/dequantize_arm.c
+++ b/vp8/decoder/arm/dequantize_arm.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/decoder/dequantize.h"
#include "vp8/common/idct.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/decoder/arm/neon/idct_blk_neon.c
+++ b/vp8/decoder/arm/neon/idct_blk_neon.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "vp8/decoder/dequantize.h"
--- a/vp8/decoder/dboolhuff.h
+++ b/vp8/decoder/dboolhuff.h
@@ -13,7 +13,7 @@
#define DBOOLHUFF_H
#include <stddef.h>
#include <limits.h>
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/mem.h"
#include "vpx/vpx_integer.h"
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -128,57 +128,6 @@
}
}
-static void clamp_mv_to_umv_border(MV *mv, const MACROBLOCKD *xd)
-{
- /* If the MV points so far into the UMV border that no visible pixels
- * are used for reconstruction, the subpel part of the MV can be
- * discarded and the MV limited to 16 pixels with equivalent results.
- *
- * This limit kicks in at 19 pixels for the top and left edges, for
- * the 16 pixels plus 3 taps right of the central pixel when subpel
- * filtering. The bottom and right edges use 16 pixels plus 2 pixels
- * left of the central pixel when filtering.
- */
- if (mv->col < (xd->mb_to_left_edge - (19 << 3)))
- mv->col = xd->mb_to_left_edge - (16 << 3);
- else if (mv->col > xd->mb_to_right_edge + (18 << 3))
- mv->col = xd->mb_to_right_edge + (16 << 3);
-
- if (mv->row < (xd->mb_to_top_edge - (19 << 3)))
- mv->row = xd->mb_to_top_edge - (16 << 3);
- else if (mv->row > xd->mb_to_bottom_edge + (18 << 3))
- mv->row = xd->mb_to_bottom_edge + (16 << 3);
-}
-
-/* A version of the above function for chroma block MVs.*/
-static void clamp_uvmv_to_umv_border(MV *mv, const MACROBLOCKD *xd)
-{
- mv->col = (2*mv->col < (xd->mb_to_left_edge - (19 << 3))) ? (xd->mb_to_left_edge - (16 << 3)) >> 1 : mv->col;
- mv->col = (2*mv->col > xd->mb_to_right_edge + (18 << 3)) ? (xd->mb_to_right_edge + (16 << 3)) >> 1 : mv->col;
-
- mv->row = (2*mv->row < (xd->mb_to_top_edge - (19 << 3))) ? (xd->mb_to_top_edge - (16 << 3)) >> 1 : mv->row;
- mv->row = (2*mv->row > xd->mb_to_bottom_edge + (18 << 3)) ? (xd->mb_to_bottom_edge + (16 << 3)) >> 1 : mv->row;
-}
-
-void clamp_mvs(MACROBLOCKD *xd)
-{
- if (xd->mode_info_context->mbmi.mode == SPLITMV)
- {
- int i;
-
- for (i=0; i<16; i++)
- clamp_mv_to_umv_border(&xd->block[i].bmi.mv.as_mv, xd);
- for (i=16; i<24; i++)
- clamp_uvmv_to_umv_border(&xd->block[i].bmi.mv.as_mv, xd);
- }
- else
- {
- clamp_mv_to_umv_border(&xd->mode_info_context->mbmi.mv.as_mv, xd);
- clamp_uvmv_to_umv_border(&xd->block[16].bmi.mv.as_mv, xd);
- }
-
-}
-
static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
unsigned int mb_idx)
{
@@ -196,11 +145,7 @@
eobtotal = vp8_decode_mb_tokens(pbi, xd);
}
- /* Perform temporary clamping of the MV to be used for prediction */
- if (xd->mode_info_context->mbmi.need_to_clamp_mvs)
- {
- clamp_mvs(xd);
- }
+
mode = xd->mode_info_context->mbmi.mode;
--- a/vp8/decoder/dequantize.c
+++ b/vp8/decoder/dequantize.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "dequantize.h"
#include "vp8/common/idct.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/decoder/generic/dsystemdependent.c
+++ b/vp8/decoder/generic/dsystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/decoder/dequantize.h"
#include "vp8/decoder/onyxd_int.h"
--- a/vp8/decoder/idct_blk.c
+++ b/vp8/decoder/idct_blk.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "dequantize.h"
--- a/vp8/decoder/onyxd_int.h
+++ b/vp8/decoder/onyxd_int.h
@@ -11,7 +11,7 @@
#ifndef __INC_VP8D_INT_H
#define __INC_VP8D_INT_H
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/onyxd.h"
#include "treereader.h"
#include "vp8/common/onyxc_int.h"
--- a/vp8/decoder/reconintra_mt.c
+++ b/vp8/decoder/reconintra_mt.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/recon.h"
#include "vp8/common/reconintra.h"
#include "vpx_mem/vpx_mem.h"
--- a/vp8/decoder/threading.c
+++ b/vp8/decoder/threading.c
@@ -27,7 +27,6 @@
#endif
extern void mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd);
-extern void clamp_mvs(MACROBLOCKD *xd);
#if CONFIG_RUNTIME_CPU_DETECT
#define RTCD_VTABLE(x) (&(pbi)->common.rtcd.x)
@@ -98,7 +97,7 @@
{
int eobtotal = 0;
int throw_residual = 0;
- int i, do_clamp = xd->mode_info_context->mbmi.need_to_clamp_mvs;
+ int i;
if (xd->mode_info_context->mbmi.mb_skip_coeff)
{
@@ -107,12 +106,6 @@
else if (!vp8dx_bool_error(xd->current_bc))
{
eobtotal = vp8_decode_mb_tokens(pbi, xd);
- }
-
- /* Perform temporary clamping of the MV to be used for prediction */
- if (do_clamp)
- {
- clamp_mvs(xd);
}
eobtotal |= (xd->mode_info_context->mbmi.mode == B_PRED ||
--- a/vp8/decoder/x86/idct_blk_mmx.c
+++ b/vp8/decoder/x86/idct_blk_mmx.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "vp8/decoder/dequantize.h"
--- a/vp8/decoder/x86/idct_blk_sse2.c
+++ b/vp8/decoder/x86/idct_blk_sse2.c
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "vp8/decoder/dequantize.h"
--- a/vp8/decoder/x86/x86_dsystemdependent.c
+++ b/vp8/decoder/x86/x86_dsystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/x86.h"
#include "vp8/decoder/onyxd_int.h"
--- a/vp8/encoder/arm/arm_csystemdependent.c
+++ b/vp8/encoder/arm/arm_csystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/arm.h"
#include "vp8/encoder/variance.h"
#include "vp8/encoder/onyx_int.h"
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "encodemb.h"
#include "encodemv.h"
#include "vp8/common/common.h"
--- a/vp8/encoder/encodeintra.c
+++ b/vp8/encoder/encodeintra.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/idct.h"
#include "quantize.h"
#include "vp8/common/reconintra.h"
--- a/vp8/encoder/encodemb.c
+++ b/vp8/encoder/encodemb.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "encodemb.h"
#include "vp8/common/reconinter.h"
#include "quantize.h"
--- a/vp8/encoder/encodemb.h
+++ b/vp8/encoder/encodemb.h
@@ -12,7 +12,7 @@
#ifndef __INC_ENCODEMB_H
#define __INC_ENCODEMB_H
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "block.h"
#define prototype_mberr(sym) \
--- a/vp8/encoder/generic/csystemdependent.c
+++ b/vp8/encoder/generic/csystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/encoder/variance.h"
#include "vp8/encoder/onyx_int.h"
--- a/vp8/encoder/mcomp.c
+++ b/vp8/encoder/mcomp.c
@@ -11,7 +11,7 @@
#include "mcomp.h"
#include "vpx_mem/vpx_mem.h"
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include <stdio.h>
#include <limits.h>
#include <math.h>
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -13,7 +13,7 @@
#define __INC_VP8_INT_H
#include <stdio.h>
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/onyx.h"
#include "treewriter.h"
#include "tokenize.h"
--- a/vp8/encoder/pickinter.c
+++ b/vp8/encoder/pickinter.c
@@ -10,7 +10,7 @@
#include <limits.h>
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "onyx_int.h"
#include "modecosts.h"
#include "encodeintra.h"
--- a/vp8/encoder/pickinter.h
+++ b/vp8/encoder/pickinter.h
@@ -11,7 +11,7 @@
#ifndef __INC_PICKINTER_H
#define __INC_PICKINTER_H
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vp8/common/onyxc_int.h"
extern void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset, int *returnrate, int *returndistortion, int *returnintra);
--- a/vp8/encoder/sad_c.c
+++ b/vp8/encoder/sad_c.c
@@ -10,7 +10,7 @@
#include <stdlib.h>
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx/vpx_integer.h"
unsigned int vp8_sad16x16_c(
--- a/vp8/encoder/x86/x86_csystemdependent.c
+++ b/vp8/encoder/x86/x86_csystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/x86.h"
#include "vp8/encoder/variance.h"
#include "vp8/encoder/onyx_int.h"
--- a/vp8/vp8_common.mk
+++ b/vp8/vp8_common.mk
@@ -19,6 +19,7 @@
VP8_COMMON_SRCS-yes += common/blockd.c
VP8_COMMON_SRCS-yes += common/coefupdateprobs.h
VP8_COMMON_SRCS-yes += common/debugmodes.c
+VP8_COMMON_SRCS-yes += common/default_coef_probs.h
VP8_COMMON_SRCS-yes += common/entropy.c
VP8_COMMON_SRCS-yes += common/entropymode.c
VP8_COMMON_SRCS-yes += common/entropymv.c
--- a/vpx_mem/include/vpx_mem_intrnl.h
+++ b/vpx_mem/include/vpx_mem_intrnl.h
@@ -11,7 +11,7 @@
#ifndef __VPX_MEM_INTRNL_H__
#define __VPX_MEM_INTRNL_H__
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#ifndef CONFIG_MEM_MANAGER
# if defined(VXWORKS)
--- a/vpx_mem/vpx_mem_tracker.c
+++ b/vpx_mem/vpx_mem_tracker.c
@@ -22,7 +22,7 @@
in the memory_tracker struct as well as calls to create/destroy/lock/unlock
the mutex in vpx_memory_tracker_init/Destroy and memory_tracker_lock_mutex/unlock_mutex
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#if defined(__uClinux__)
# include <lddk.h>
--- a/vpx_ports/arm.h
+++ b/vpx_ports/arm.h
@@ -12,7 +12,7 @@
#ifndef VPX_PORTS_ARM_H
#define VPX_PORTS_ARM_H
#include <stdlib.h>
-#include "config.h"
+#include "vpx_config.h"
/*ARMv5TE "Enhanced DSP" instructions.*/
#define HAS_EDSP 0x01
--- a/vpx_ports/config.h
+++ /dev/null
@@ -1,10 +1,0 @@
-/*
- * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-#include "vpx_config.h"
--- a/vpx_ports/mem_ops_aligned.h
+++ b/vpx_ports/mem_ops_aligned.h
@@ -80,7 +80,7 @@
*mem = (uint##sz##_t)raw;\
}
-#include "config.h"
+#include "vpx_config.h"
#if CONFIG_BIG_ENDIAN
#define mem_get_be_aligned_generic(sz) mem_get_ne_aligned_generic(be,sz)
#define mem_get_sbe_aligned_generic(sz) mem_get_sne_aligned_generic(be,sz)
--- a/vpx_ports/vpxtypes.h
+++ b/vpx_ports/vpxtypes.h
@@ -12,7 +12,7 @@
#ifndef __VPXTYPES_H__
#define __VPXTYPES_H__
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
//#include <sys/types.h>
#ifdef _MSC_VER
--- a/vpx_ports/x86.h
+++ b/vpx_ports/x86.h
@@ -12,7 +12,7 @@
#ifndef VPX_PORTS_X86_H
#define VPX_PORTS_X86_H
#include <stdlib.h>
-#include "config.h"
+#include "vpx_config.h"
typedef enum
{
--- a/vpx_scale/arm/scalesystemdependent.c
+++ b/vpx_scale/arm/scalesystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_ports/arm.h"
#include "vpx_scale/vpxscale.h"
--- a/vpx_scale/generic/scalesystemdependent.c
+++ b/vpx_scale/generic/scalesystemdependent.c
@@ -9,7 +9,7 @@
*/
-#include "vpx_ports/config.h"
+#include "vpx_config.h"
#include "vpx_scale/vpxscale.h"
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -32,7 +32,6 @@
#include <fcntl.h>
#include <unistd.h>
#endif
-#include "vpx_version.h"
#include "vpx/vp8cx.h"
#include "vpx_ports/mem_ops.h"
#include "vpx_ports/vpx_timer.h"
@@ -624,7 +623,19 @@
//segment info
EbmlLoc startInfo;
uint64_t frame_time;
+ char version_string[64];
+ /* Assemble version string */
+ if(ebml->debug)
+ strcpy(version_string, "vpxenc");
+ else
+ {
+ strcpy(version_string, "vpxenc ");
+ strncat(version_string,
+ vpx_codec_version_str(),
+ sizeof(version_string) - 1 - strlen(version_string));
+ }
+
frame_time = (uint64_t)1000 * ebml->framerate.den
/ ebml->framerate.num;
ebml->segment_info_pos = ftello(ebml->stream);
@@ -632,10 +643,8 @@
Ebml_SerializeUnsigned(ebml, TimecodeScale, 1000000);
Ebml_SerializeFloat(ebml, Segment_Duration,
ebml->last_pts_ms + frame_time);
- Ebml_SerializeString(ebml, 0x4D80,
- ebml->debug ? "vpxenc" : "vpxenc" VERSION_STRING);
- Ebml_SerializeString(ebml, 0x5741,
- ebml->debug ? "vpxenc" : "vpxenc" VERSION_STRING);
+ Ebml_SerializeString(ebml, 0x4D80, version_string);
+ Ebml_SerializeString(ebml, 0x5741, version_string);
Ebml_EndSubElement(ebml, &startInfo);
}
}
--
⑨