summaryrefslogtreecommitdiff
path: root/vp8/encoder
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/encoder')
-rw-r--r--vp8/encoder/arm/arm_csystemdependent.c8
-rw-r--r--vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm84
-rw-r--r--vp8/encoder/arm/boolhuff_arm.c4
-rw-r--r--vp8/encoder/arm/encodemb_arm.c14
-rw-r--r--vp8/encoder/arm/picklpf_arm.c8
-rw-r--r--vp8/encoder/arm/quantize_arm.c6
-rw-r--r--vp8/encoder/arm/variance_arm.c6
-rw-r--r--vp8/encoder/arm/variance_arm.h4
-rw-r--r--vp8/encoder/bitstream.c10
-rw-r--r--vp8/encoder/block.h8
-rw-r--r--vp8/encoder/boolhuff.c2
-rw-r--r--vp8/encoder/encodeframe.c18
-rw-r--r--vp8/encoder/encodeintra.c12
-rw-r--r--vp8/encoder/encodemb.c8
-rw-r--r--vp8/encoder/encodemv.c6
-rw-r--r--vp8/encoder/ethreading.c6
-rw-r--r--vp8/encoder/firstpass.c10
-rw-r--r--vp8/encoder/generic/csystemdependent.c4
-rw-r--r--vp8/encoder/modecosts.c4
-rw-r--r--vp8/encoder/onyx_if.c45
-rw-r--r--vp8/encoder/onyx_int.h10
-rw-r--r--vp8/encoder/parms.cpp2
-rw-r--r--vp8/encoder/pickinter.c12
-rw-r--r--vp8/encoder/pickinter.h2
-rw-r--r--vp8/encoder/picklpf.c4
-rw-r--r--vp8/encoder/ppc/csystemdependent.c4
-rw-r--r--vp8/encoder/psnr.c2
-rw-r--r--vp8/encoder/quantize.c4
-rw-r--r--vp8/encoder/ratectrl.c6
-rw-r--r--vp8/encoder/rdopt.c18
-rw-r--r--vp8/encoder/segmentation.h2
-rw-r--r--vp8/encoder/temporal_filter.c20
-rw-r--r--vp8/encoder/tokenize.h2
-rw-r--r--vp8/encoder/treewriter.h2
-rw-r--r--vp8/encoder/x86/variance_mmx.c4
-rw-r--r--vp8/encoder/x86/variance_sse2.c4
-rw-r--r--vp8/encoder/x86/x86_csystemdependent.c4
37 files changed, 220 insertions, 149 deletions
diff --git a/vp8/encoder/arm/arm_csystemdependent.c b/vp8/encoder/arm/arm_csystemdependent.c
index 6c17a7984..5852afddb 100644
--- a/vp8/encoder/arm/arm_csystemdependent.c
+++ b/vp8/encoder/arm/arm_csystemdependent.c
@@ -11,8 +11,8 @@
#include "vpx_ports/config.h"
#include "vpx_ports/arm.h"
-#include "variance.h"
-#include "onyx_int.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/encoder/onyx_int.h"
extern void (*vp8_yv12_copy_partial_frame_ptr)(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc, int Fraction);
extern void vp8_yv12_copy_partial_frame(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc, int Fraction);
@@ -29,8 +29,8 @@ void vp8_arch_arm_encoder_init(VP8_COMP *cpi)
#if HAVE_ARMV6
if (has_media)
{
- /*cpi->rtcd.variance.sad16x16 = vp8_sad16x16_c;
- cpi->rtcd.variance.sad16x8 = vp8_sad16x8_c;
+ cpi->rtcd.variance.sad16x16 = vp8_sad16x16_armv6;
+ /*cpi->rtcd.variance.sad16x8 = vp8_sad16x8_c;
cpi->rtcd.variance.sad8x16 = vp8_sad8x16_c;
cpi->rtcd.variance.sad8x8 = vp8_sad8x8_c;
cpi->rtcd.variance.sad4x4 = vp8_sad4x4_c;*/
diff --git a/vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm b/vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm
new file mode 100644
index 000000000..c759f7c65
--- /dev/null
+++ b/vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm
@@ -0,0 +1,84 @@
+;
+; Copyright (c) 2011 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.
+;
+
+
+ EXPORT |vp8_sad16x16_armv6|
+
+ ARM
+ REQUIRE8
+ PRESERVE8
+
+ AREA ||.text||, CODE, READONLY, ALIGN=2
+
+; r0 const unsigned char *src_ptr
+; r1 int src_stride
+; r2 const unsigned char *ref_ptr
+; r3 int ref_stride
+; stack max_sad (not used)
+|vp8_sad16x16_armv6| PROC
+ stmfd sp!, {r4-r12, lr}
+ mov r4, #0 ; sad = 0;
+ mov r5, #8 ; loop count
+
+loop
+ ; 1st row
+ ldr r6, [r0, #0x0] ; load 4 src pixels (1A)
+ ldr r8, [r2, #0x0] ; load 4 ref pixels (1A)
+ ldr r7, [r0, #0x4] ; load 4 src pixels (1A)
+ ldr r9, [r2, #0x4] ; load 4 ref pixels (1A)
+ ldr r10, [r0, #0x8] ; load 4 src pixels (1B)
+ ldr r11, [r0, #0xC] ; load 4 src pixels (1B)
+
+ usada8 r4, r8, r6, r4 ; calculate sad for 4 pixels
+ usad8 r8, r7, r9 ; calculate sad for 4 pixels
+
+ ldr r12, [r2, #0x8] ; load 4 ref pixels (1B)
+ ldr lr, [r2, #0xC] ; load 4 ref pixels (1B)
+
+ add r0, r0, r1 ; set src pointer to next row
+ add r2, r2, r3 ; set dst pointer to next row
+
+ usada8 r4, r10, r12, r4 ; calculate sad for 4 pixels
+ usada8 r8, r11, lr, r8 ; calculate sad for 4 pixels
+
+ ldr r6, [r0, #0x0] ; load 4 src pixels (2A)
+ ldr r7, [r0, #0x4] ; load 4 src pixels (2A)
+ add r4, r4, r8 ; add partial sad values
+
+ ; 2nd row
+ ldr r8, [r2, #0x0] ; load 4 ref pixels (2A)
+ ldr r9, [r2, #0x4] ; load 4 ref pixels (2A)
+ ldr r10, [r0, #0x8] ; load 4 src pixels (2B)
+ ldr r11, [r0, #0xC] ; load 4 src pixels (2B)
+
+ usada8 r4, r6, r8, r4 ; calculate sad for 4 pixels
+ usad8 r8, r7, r9 ; calculate sad for 4 pixels
+
+ ldr r12, [r2, #0x8] ; load 4 ref pixels (2B)
+ ldr lr, [r2, #0xC] ; load 4 ref pixels (2B)
+
+ add r0, r0, r1 ; set src pointer to next row
+ add r2, r2, r3 ; set dst pointer to next row
+
+ usada8 r4, r10, r12, r4 ; calculate sad for 4 pixels
+ usada8 r8, r11, lr, r8 ; calculate sad for 4 pixels
+
+ subs r5, r5, #1 ; decrement loop counter
+ add r4, r4, r8 ; add partial sad values
+
+ bne loop
+
+ mov r0, r4 ; return sad
+ ldmfd sp!, {r4-r12, pc}
+
+ ENDP
+
+ END
+
diff --git a/vp8/encoder/arm/boolhuff_arm.c b/vp8/encoder/arm/boolhuff_arm.c
index fe8e70c16..9089663ca 100644
--- a/vp8/encoder/arm/boolhuff_arm.c
+++ b/vp8/encoder/arm/boolhuff_arm.c
@@ -9,8 +9,8 @@
*/
-#include "boolhuff.h"
-#include "blockd.h"
+#include "vp8/encoder/boolhuff.h"
+#include "vp8/common/blockd.h"
const unsigned int vp8_prob_cost[256] =
{
diff --git a/vp8/encoder/arm/encodemb_arm.c b/vp8/encoder/arm/encodemb_arm.c
index cc9e014b2..88ad3fcff 100644
--- a/vp8/encoder/arm/encodemb_arm.c
+++ b/vp8/encoder/arm/encodemb_arm.c
@@ -9,13 +9,13 @@
*/
-#include "encodemb.h"
-#include "reconinter.h"
-#include "quantize.h"
-#include "invtrans.h"
-#include "recon.h"
-#include "reconintra.h"
-#include "dct.h"
+#include "vp8/encoder/encodemb.h"
+#include "vp8/common/reconinter.h"
+#include "vp8/encoder/quantize.h"
+#include "vp8/common/invtrans.h"
+#include "vp8/common/recon.h"
+#include "vp8/common/reconintra.h"
+#include "vp8/encoder/dct.h"
#include "vpx_mem/vpx_mem.h"
extern void vp8_subtract_b_neon_func(short *diff, unsigned char *src, unsigned char *pred, int stride, int pitch);
diff --git a/vp8/encoder/arm/picklpf_arm.c b/vp8/encoder/arm/picklpf_arm.c
index b2d8f2b2c..3fb370c3d 100644
--- a/vp8/encoder/arm/picklpf_arm.c
+++ b/vp8/encoder/arm/picklpf_arm.c
@@ -9,13 +9,13 @@
*/
-#include "onyxc_int.h"
-#include "onyx_int.h"
-#include "quantize.h"
+#include "vp8/common/onyxc_int.h"
+#include "vp8/encoder/onyx_int.h"
+#include "vp8/encoder/quantize.h"
#include "vpx_mem/vpx_mem.h"
#include "vpx_scale/yv12extend.h"
#include "vpx_scale/vpxscale.h"
-#include "alloccommon.h"
+#include "vp8/common/alloccommon.h"
extern void vp8_memcpy_neon(unsigned char *dst_ptr, unsigned char *src_ptr, int sz);
diff --git a/vp8/encoder/arm/quantize_arm.c b/vp8/encoder/arm/quantize_arm.c
index 225feaca6..75ec205cc 100644
--- a/vp8/encoder/arm/quantize_arm.c
+++ b/vp8/encoder/arm/quantize_arm.c
@@ -12,9 +12,9 @@
#include <math.h>
#include "vpx_mem/vpx_mem.h"
-#include "quantize.h"
-#include "entropy.h"
-#include "predictdc.h"
+#include "vp8/encoder/quantize.h"
+#include "vp8/common/entropy.h"
+#include "vp8/common/predictdc.h"
DECLARE_ALIGNED(16, const short, vp8_rvsplus1_default_zig_zag1d[16]) =
{
diff --git a/vp8/encoder/arm/variance_arm.c b/vp8/encoder/arm/variance_arm.c
index 9737bef46..1cf9fd8f0 100644
--- a/vp8/encoder/arm/variance_arm.c
+++ b/vp8/encoder/arm/variance_arm.c
@@ -9,9 +9,9 @@
*/
#include "vpx_config.h"
-#include "variance.h"
-#include "filter.h"
-#include "arm/bilinearfilter_arm.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/common/filter.h"
+#include "vp8/common/arm/bilinearfilter_arm.h"
#if HAVE_ARMV6
diff --git a/vp8/encoder/arm/variance_arm.h b/vp8/encoder/arm/variance_arm.h
index 06d72873e..c807e29c0 100644
--- a/vp8/encoder/arm/variance_arm.h
+++ b/vp8/encoder/arm/variance_arm.h
@@ -14,11 +14,15 @@
#if HAVE_ARMV6
+extern prototype_sad(vp8_sad16x16_armv6);
extern prototype_variance(vp8_variance16x16_armv6);
extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_armv6);
#if !CONFIG_RUNTIME_CPU_DETECT
+#undef vp8_variance_sad16x16
+#define vp8_variance_sad16x16 vp8_sad16x16_armv6
+
#undef vp8_variance_subpixvar16x16
#define vp8_variance_subpixvar16x16 vp8_sub_pixel_variance16x16_armv6
diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c
index 52ad0d6fa..2c7f7881d 100644
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -9,15 +9,15 @@
*/
-#include "header.h"
+#include "vp8/common/header.h"
#include "encodemv.h"
-#include "entropymode.h"
-#include "findnearmv.h"
+#include "vp8/common/entropymode.h"
+#include "vp8/common/findnearmv.h"
#include "mcomp.h"
-#include "systemdependent.h"
+#include "vp8/common/systemdependent.h"
#include <assert.h>
#include <stdio.h>
-#include "pragmas.h"
+#include "vp8/common/pragmas.h"
#include "vpx_mem/vpx_mem.h"
#include "bitstream.h"
diff --git a/vp8/encoder/block.h b/vp8/encoder/block.h
index 3ad40efc0..2fd67822b 100644
--- a/vp8/encoder/block.h
+++ b/vp8/encoder/block.h
@@ -12,10 +12,10 @@
#ifndef __INC_BLOCK_H
#define __INC_BLOCK_H
-#include "onyx.h"
-#include "blockd.h"
-#include "entropymv.h"
-#include "entropy.h"
+#include "vp8/common/onyx.h"
+#include "vp8/common/blockd.h"
+#include "vp8/common/entropymv.h"
+#include "vp8/common/entropy.h"
#include "vpx_ports/mem.h"
// motion search site
diff --git a/vp8/encoder/boolhuff.c b/vp8/encoder/boolhuff.c
index 82006b196..788d2b05f 100644
--- a/vp8/encoder/boolhuff.c
+++ b/vp8/encoder/boolhuff.c
@@ -10,7 +10,7 @@
#include "boolhuff.h"
-#include "blockd.h"
+#include "vp8/common/blockd.h"
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index c871e60a9..0ced6e7b0 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -12,22 +12,22 @@
#include "vpx_ports/config.h"
#include "encodemb.h"
#include "encodemv.h"
-#include "common.h"
+#include "vp8/common/common.h"
#include "onyx_int.h"
-#include "extend.h"
-#include "entropymode.h"
-#include "quant_common.h"
+#include "vp8/common/extend.h"
+#include "vp8/common/entropymode.h"
+#include "vp8/common/quant_common.h"
#include "segmentation.h"
-#include "setupintrarecon.h"
+#include "vp8/common/setupintrarecon.h"
#include "encodeintra.h"
-#include "reconinter.h"
+#include "vp8/common/reconinter.h"
#include "rdopt.h"
#include "pickinter.h"
-#include "findnearmv.h"
-#include "reconintra.h"
+#include "vp8/common/findnearmv.h"
+#include "vp8/common/reconintra.h"
#include <stdio.h>
#include <limits.h>
-#include "subpixel.h"
+#include "vp8/common/subpixel.h"
#include "vpx_ports/vpx_timer.h"
#if CONFIG_RUNTIME_CPU_DETECT
diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c
index e016fa35b..cd66016cc 100644
--- a/vp8/encoder/encodeintra.c
+++ b/vp8/encoder/encodeintra.c
@@ -10,15 +10,15 @@
#include "vpx_ports/config.h"
-#include "idct.h"
+#include "vp8/common/idct.h"
#include "quantize.h"
-#include "reconintra.h"
-#include "reconintra4x4.h"
+#include "vp8/common/reconintra.h"
+#include "vp8/common/reconintra4x4.h"
#include "encodemb.h"
-#include "invtrans.h"
-#include "recon.h"
+#include "vp8/common/invtrans.h"
+#include "vp8/common/recon.h"
#include "dct.h"
-#include "g_common.h"
+#include "vp8/common/g_common.h"
#include "encodeintra.h"
#define intra4x4ibias_rate 128
diff --git a/vp8/encoder/encodemb.c b/vp8/encoder/encodemb.c
index efcea745b..30ef299ec 100644
--- a/vp8/encoder/encodemb.c
+++ b/vp8/encoder/encodemb.c
@@ -11,12 +11,12 @@
#include "vpx_ports/config.h"
#include "encodemb.h"
-#include "reconinter.h"
+#include "vp8/common/reconinter.h"
#include "quantize.h"
#include "tokenize.h"
-#include "invtrans.h"
-#include "recon.h"
-#include "reconintra.h"
+#include "vp8/common/invtrans.h"
+#include "vp8/common/recon.h"
+#include "vp8/common/reconintra.h"
#include "dct.h"
#include "vpx_mem/vpx_mem.h"
diff --git a/vp8/encoder/encodemv.c b/vp8/encoder/encodemv.c
index 4cb4c6e55..6b1e6f965 100644
--- a/vp8/encoder/encodemv.c
+++ b/vp8/encoder/encodemv.c
@@ -9,10 +9,10 @@
*/
-#include "common.h"
+#include "vp8/common/common.h"
#include "encodemv.h"
-#include "entropymode.h"
-#include "systemdependent.h"
+#include "vp8/common/entropymode.h"
+#include "vp8/common/systemdependent.h"
#include <math.h>
diff --git a/vp8/encoder/ethreading.c b/vp8/encoder/ethreading.c
index 4ce306ff0..12d5f66d3 100644
--- a/vp8/encoder/ethreading.c
+++ b/vp8/encoder/ethreading.c
@@ -9,9 +9,9 @@
*/
#include "onyx_int.h"
-#include "threading.h"
-#include "common.h"
-#include "extend.h"
+#include "vp8/common/threading.h"
+#include "vp8/common/common.h"
+#include "vp8/common/extend.h"
#if CONFIG_MULTITHREAD
diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c
index fc6f043c3..9f0a9722f 100644
--- a/vp8/encoder/firstpass.c
+++ b/vp8/encoder/firstpass.c
@@ -14,18 +14,18 @@
#include "onyx_int.h"
#include "variance.h"
#include "encodeintra.h"
-#include "setupintrarecon.h"
+#include "vp8/common/setupintrarecon.h"
#include "mcomp.h"
#include "vpx_scale/vpxscale.h"
#include "encodemb.h"
-#include "extend.h"
-#include "systemdependent.h"
+#include "vp8/common/extend.h"
+#include "vp8/common/systemdependent.h"
#include "vpx_scale/yv12extend.h"
#include "vpx_mem/vpx_mem.h"
-#include "swapyv12buffer.h"
+#include "vp8/common/swapyv12buffer.h"
#include <stdio.h>
#include "rdopt.h"
-#include "quant_common.h"
+#include "vp8/common/quant_common.h"
#include "encodemv.h"
//#define OUTPUT_FPF 1
diff --git a/vp8/encoder/generic/csystemdependent.c b/vp8/encoder/generic/csystemdependent.c
index 4738a5b28..d9f5474a9 100644
--- a/vp8/encoder/generic/csystemdependent.c
+++ b/vp8/encoder/generic/csystemdependent.c
@@ -10,8 +10,8 @@
#include "vpx_ports/config.h"
-#include "variance.h"
-#include "onyx_int.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/encoder/onyx_int.h"
void vp8_arch_x86_encoder_init(VP8_COMP *cpi);
diff --git a/vp8/encoder/modecosts.c b/vp8/encoder/modecosts.c
index d23c97e6e..c636c482b 100644
--- a/vp8/encoder/modecosts.c
+++ b/vp8/encoder/modecosts.c
@@ -9,10 +9,10 @@
*/
-#include "blockd.h"
+#include "vp8/common/blockd.h"
#include "onyx_int.h"
#include "treewriter.h"
-#include "entropymode.h"
+#include "vp8/common/entropymode.h"
void vp8_init_mode_costs(VP8_COMP *c)
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c
index 3f787d6da..6ab1b39f7 100644
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -9,27 +9,27 @@
*/
-#include "onyxc_int.h"
+#include "vp8/common/onyxc_int.h"
#include "onyx_int.h"
-#include "systemdependent.h"
+#include "vp8/common/systemdependent.h"
#include "quantize.h"
-#include "alloccommon.h"
+#include "vp8/common/alloccommon.h"
#include "mcomp.h"
#include "firstpass.h"
#include "psnr.h"
#include "vpx_scale/vpxscale.h"
-#include "extend.h"
+#include "vp8/common/extend.h"
#include "ratectrl.h"
-#include "quant_common.h"
+#include "vp8/common/quant_common.h"
#include "segmentation.h"
-#include "g_common.h"
+#include "vp8/common/g_common.h"
#include "vpx_scale/yv12extend.h"
-#include "postproc.h"
+#include "vp8/common/postproc.h"
#include "vpx_mem/vpx_mem.h"
-#include "swapyv12buffer.h"
-#include "threading.h"
+#include "vp8/common/swapyv12buffer.h"
+#include "vp8/common/threading.h"
#include "vpx_ports/vpx_timer.h"
-#include "vpxerrors.h"
+#include "vp8/common/vpxerrors.h"
#include "temporal_filter.h"
#if ARCH_ARM
#include "vpx_ports/arm.h"
@@ -262,39 +262,32 @@ static void setup_features(VP8_COMP *cpi)
void vp8_dealloc_compressor_data(VP8_COMP *cpi)
{
- if(cpi->tplist!=0)
vpx_free(cpi->tplist);
cpi->tplist = NULL;
// Delete last frame MV storage buffers
- if (cpi->lfmv != 0)
vpx_free(cpi->lfmv);
cpi->lfmv = 0;
- if (cpi->lf_ref_frame_sign_bias != 0)
vpx_free(cpi->lf_ref_frame_sign_bias);
cpi->lf_ref_frame_sign_bias = 0;
- if (cpi->lf_ref_frame != 0)
vpx_free(cpi->lf_ref_frame);
cpi->lf_ref_frame = 0;
// Delete sementation map
- if (cpi->segmentation_map != 0)
vpx_free(cpi->segmentation_map);
cpi->segmentation_map = 0;
- if (cpi->active_map != 0)
vpx_free(cpi->active_map);
cpi->active_map = 0;
// Delete first pass motion map
- if (cpi->fp_motion_map != 0)
vpx_free(cpi->fp_motion_map);
cpi->fp_motion_map = 0;
@@ -319,23 +312,19 @@ void vp8_dealloc_compressor_data(VP8_COMP *cpi)
cpi->tok = 0;
// Structure used to monitor GF usage
- if (cpi->gf_active_flags != 0)
vpx_free(cpi->gf_active_flags);
cpi->gf_active_flags = 0;
- if(cpi->mb.pip)
vpx_free(cpi->mb.pip);
cpi->mb.pip = 0;
#if !(CONFIG_REALTIME_ONLY)
- if(cpi->total_stats)
vpx_free(cpi->total_stats);
cpi->total_stats = 0;
- if(cpi->this_frame_stats)
vpx_free(cpi->this_frame_stats);
cpi->this_frame_stats = 0;
@@ -442,7 +431,6 @@ static void segmentation_test_function(VP8_PTR ptr)
set_segment_data(ptr, &feature_data[0][0], SEGMENT_DELTADATA);
// Delete sementation map
- if (seg_map != 0)
vpx_free(seg_map);
seg_map = 0;
@@ -536,7 +524,6 @@ static void cyclic_background_refresh(VP8_COMP *cpi, int Q, int lf_adjustment)
set_segment_data((VP8_PTR)cpi, &feature_data[0][0], SEGMENT_DELTADATA);
// Delete sementation map
- if (seg_map != 0)
vpx_free(seg_map);
seg_map = 0;
@@ -1280,6 +1267,8 @@ void vp8_set_speed_features(VP8_COMP *cpi)
static void alloc_raw_frame_buffers(VP8_COMP *cpi)
{
int i, buffers;
+ /* allocate source_buffer to be multiples of 16 */
+ int width = (cpi->oxcf.Width + 15) & ~15;
buffers = cpi->oxcf.lag_in_frames;
@@ -1291,7 +1280,7 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
for (i = 0; i < buffers; i++)
if (vp8_yv12_alloc_frame_buffer(&cpi->src_buffer[i].source_buffer,
- cpi->oxcf.Width, cpi->oxcf.Height,
+ width, cpi->oxcf.Height,
16))
vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,
"Failed to allocate lag buffer");
@@ -1299,7 +1288,7 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
#if VP8_TEMPORAL_ALT_REF
if (vp8_yv12_alloc_frame_buffer(&cpi->alt_ref_buffer.source_buffer,
- cpi->oxcf.Width, cpi->oxcf.Height, 16))
+ width, cpi->oxcf.Height, 16))
vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,
"Failed to allocate altref buffer");
@@ -1310,7 +1299,6 @@ static void alloc_raw_frame_buffers(VP8_COMP *cpi)
static int vp8_alloc_partition_data(VP8_COMP *cpi)
{
- if(cpi->mb.pip)
vpx_free(cpi->mb.pip);
cpi->mb.pip = vpx_calloc((cpi->common.mb_cols + 1) *
@@ -1357,7 +1345,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
"Failed to allocate scaled source buffer");
- if (cpi->tok != 0)
vpx_free(cpi->tok);
{
@@ -1373,7 +1360,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
// Structures used to minitor GF usage
- if (cpi->gf_active_flags != 0)
vpx_free(cpi->gf_active_flags);
CHECK_MEM_ERROR(cpi->gf_active_flags, vpx_calloc(1, cm->mb_rows * cm->mb_cols));
@@ -1381,12 +1367,10 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
cpi->gf_active_count = cm->mb_rows * cm->mb_cols;
#if !(CONFIG_REALTIME_ONLY)
- if(cpi->total_stats)
vpx_free(cpi->total_stats);
cpi->total_stats = vpx_calloc(1, vp8_firstpass_stats_sz(cpi->common.MBs));
- if(cpi->this_frame_stats)
vpx_free(cpi->this_frame_stats);
cpi->this_frame_stats = vpx_calloc(1, vp8_firstpass_stats_sz(cpi->common.MBs));
@@ -1407,7 +1391,6 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
cpi->mt_sync_range = 16;
#endif
- if(cpi->tplist);
vpx_free(cpi->tplist);
CHECK_MEM_ERROR(cpi->tplist, vpx_malloc(sizeof(TOKENLIST) * cpi->common.mb_rows));
diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h
index d6e494282..a9ccc89d7 100644
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -14,21 +14,21 @@
#include <stdio.h>
#include "vpx_ports/config.h"
-#include "onyx.h"
+#include "vp8/common/onyx.h"
#include "treewriter.h"
#include "tokenize.h"
-#include "onyxc_int.h"
+#include "vp8/common/onyxc_int.h"
#include "variance.h"
#include "dct.h"
#include "encodemb.h"
#include "quantize.h"
-#include "entropy.h"
-#include "threading.h"
+#include "vp8/common/entropy.h"
+#include "vp8/common/threading.h"
#include "vpx_ports/mem.h"
#include "vpx/internal/vpx_codec_internal.h"
#include "mcomp.h"
#include "temporal_filter.h"
-#include "findnearmv.h"
+#include "vp8/common/findnearmv.h"
//#define SPEEDSTATS 1
#define MIN_GF_INTERVAL 4
diff --git a/vp8/encoder/parms.cpp b/vp8/encoder/parms.cpp
index 6cc450121..2a39b2ca3 100644
--- a/vp8/encoder/parms.cpp
+++ b/vp8/encoder/parms.cpp
@@ -16,7 +16,7 @@
#include <fstream>
extern "C"
{
- #include "onyx.h"
+ #include "vp8/common/onyx.h"
}
diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c
index 1a58257a3..6ab85adbc 100644
--- a/vp8/encoder/pickinter.c
+++ b/vp8/encoder/pickinter.c
@@ -14,14 +14,14 @@
#include "onyx_int.h"
#include "modecosts.h"
#include "encodeintra.h"
-#include "entropymode.h"
+#include "vp8/common/entropymode.h"
#include "pickinter.h"
-#include "findnearmv.h"
+#include "vp8/common/findnearmv.h"
#include "encodemb.h"
-#include "reconinter.h"
-#include "reconintra.h"
-#include "reconintra4x4.h"
-#include "g_common.h"
+#include "vp8/common/reconinter.h"
+#include "vp8/common/reconintra.h"
+#include "vp8/common/reconintra4x4.h"
+#include "vp8/common/g_common.h"
#include "variance.h"
#include "mcomp.h"
#include "rdopt.h"
diff --git a/vp8/encoder/pickinter.h b/vp8/encoder/pickinter.h
index b80e4c86f..af060d701 100644
--- a/vp8/encoder/pickinter.h
+++ b/vp8/encoder/pickinter.h
@@ -12,7 +12,7 @@
#ifndef __INC_PICKINTER_H
#define __INC_PICKINTER_H
#include "vpx_ports/config.h"
-#include "onyxc_int.h"
+#include "vp8/common/onyxc_int.h"
#define RD_ESTIMATE(RM,DM,R,D) ( ((128+(R)*(RM)) >> 8) + (DM)*(D) )
extern int vp8_pick_intra4x4mby_modes(const VP8_ENCODER_RTCD *, MACROBLOCK *mb, int *Rate, int *Distortion);
diff --git a/vp8/encoder/picklpf.c b/vp8/encoder/picklpf.c
index 78aa866dd..d294af6c0 100644
--- a/vp8/encoder/picklpf.c
+++ b/vp8/encoder/picklpf.c
@@ -9,13 +9,13 @@
*/
-#include "onyxc_int.h"
+#include "vp8/common/onyxc_int.h"
#include "onyx_int.h"
#include "quantize.h"
#include "vpx_mem/vpx_mem.h"
#include "vpx_scale/yv12extend.h"
#include "vpx_scale/vpxscale.h"
-#include "alloccommon.h"
+#include "vp8/common/alloccommon.h"
#if ARCH_ARM
#include "vpx_ports/arm.h"
#endif
diff --git a/vp8/encoder/ppc/csystemdependent.c b/vp8/encoder/ppc/csystemdependent.c
index 588656b97..8dfd2a543 100644
--- a/vp8/encoder/ppc/csystemdependent.c
+++ b/vp8/encoder/ppc/csystemdependent.c
@@ -9,8 +9,8 @@
*/
-#include "variance.h"
-#include "onyx_int.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/encoder/onyx_int.h"
SADFunction *vp8_sad16x16;
SADFunction *vp8_sad16x8;
diff --git a/vp8/encoder/psnr.c b/vp8/encoder/psnr.c
index dc2a03b69..96b0ea890 100644
--- a/vp8/encoder/psnr.c
+++ b/vp8/encoder/psnr.c
@@ -11,7 +11,7 @@
#include "vpx_scale/yv12config.h"
#include "math.h"
-#include "systemdependent.h" /* for vp8_clear_system_state() */
+#include "vp8/common/systemdependent.h" /* for vp8_clear_system_state() */
#define MAX_PSNR 60
diff --git a/vp8/encoder/quantize.c b/vp8/encoder/quantize.c
index 4a2329fc1..02b9d7bd9 100644
--- a/vp8/encoder/quantize.c
+++ b/vp8/encoder/quantize.c
@@ -13,8 +13,8 @@
#include "vpx_mem/vpx_mem.h"
#include "quantize.h"
-#include "entropy.h"
-#include "predictdc.h"
+#include "vp8/common/entropy.h"
+#include "vp8/common/predictdc.h"
#define EXACT_QUANT
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index b69a1965e..bfffe43d9 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -16,11 +16,11 @@
#include <assert.h>
#include "math.h"
-#include "common.h"
+#include "vp8/common/common.h"
#include "ratectrl.h"
-#include "entropymode.h"
+#include "vp8/common/entropymode.h"
#include "vpx_mem/vpx_mem.h"
-#include "systemdependent.h"
+#include "vp8/common/systemdependent.h"
#include "encodemv.h"
diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c
index 3449e4532..ba5d337d2 100644
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -13,28 +13,28 @@
#include <math.h>
#include <limits.h>
#include <assert.h>
-#include "pragmas.h"
+#include "vp8/common/pragmas.h"
#include "tokenize.h"
#include "treewriter.h"
#include "onyx_int.h"
#include "modecosts.h"
#include "encodeintra.h"
-#include "entropymode.h"
-#include "reconinter.h"
-#include "reconintra.h"
-#include "reconintra4x4.h"
-#include "findnearmv.h"
+#include "vp8/common/entropymode.h"
+#include "vp8/common/reconinter.h"
+#include "vp8/common/reconintra.h"
+#include "vp8/common/reconintra4x4.h"
+#include "vp8/common/findnearmv.h"
#include "encodemb.h"
#include "quantize.h"
-#include "idct.h"
-#include "g_common.h"
+#include "vp8/common/idct.h"
+#include "vp8/common/g_common.h"
#include "variance.h"
#include "mcomp.h"
#include "vpx_mem/vpx_mem.h"
#include "dct.h"
-#include "systemdependent.h"
+#include "vp8/common/systemdependent.h"
#if CONFIG_RUNTIME_CPU_DETECT
#define IF_RTCD(x) (x)
diff --git a/vp8/encoder/segmentation.h b/vp8/encoder/segmentation.h
index 216e194c2..12815b087 100644
--- a/vp8/encoder/segmentation.h
+++ b/vp8/encoder/segmentation.h
@@ -10,7 +10,7 @@
#include "string.h"
-#include "blockd.h"
+#include "vp8/common/blockd.h"
#include "onyx_int.h"
extern void vp8_update_gf_useage_maps(VP8_COMP *cpi, VP8_COMMON *cm, MACROBLOCK *x);
diff --git a/vp8/encoder/temporal_filter.c b/vp8/encoder/temporal_filter.c
index e4c3db1b8..9ff8887e5 100644
--- a/vp8/encoder/temporal_filter.c
+++ b/vp8/encoder/temporal_filter.c
@@ -9,27 +9,27 @@
*/
-#include "onyxc_int.h"
+#include "vp8/common/onyxc_int.h"
#include "onyx_int.h"
-#include "systemdependent.h"
+#include "vp8/common/systemdependent.h"
#include "quantize.h"
-#include "alloccommon.h"
+#include "vp8/common/alloccommon.h"
#include "mcomp.h"
#include "firstpass.h"
#include "psnr.h"
#include "vpx_scale/vpxscale.h"
-#include "extend.h"
+#include "vp8/common/extend.h"
#include "ratectrl.h"
-#include "quant_common.h"
+#include "vp8/common/quant_common.h"
#include "segmentation.h"
-#include "g_common.h"
+#include "vp8/common/g_common.h"
#include "vpx_scale/yv12extend.h"
-#include "postproc.h"
+#include "vp8/common/postproc.h"
#include "vpx_mem/vpx_mem.h"
-#include "swapyv12buffer.h"
-#include "threading.h"
+#include "vp8/common/swapyv12buffer.h"
+#include "vp8/common/threading.h"
#include "vpx_ports/vpx_timer.h"
-#include "vpxerrors.h"
+#include "vp8/common/vpxerrors.h"
#include <math.h>
#include <limits.h>
diff --git a/vp8/encoder/tokenize.h b/vp8/encoder/tokenize.h
index ed5eb0ce9..d87c1a3e7 100644
--- a/vp8/encoder/tokenize.h
+++ b/vp8/encoder/tokenize.h
@@ -12,7 +12,7 @@
#ifndef tokenize_h
#define tokenize_h
-#include "entropy.h"
+#include "vp8/common/entropy.h"
#include "block.h"
void vp8_tokenize_initialize();
diff --git a/vp8/encoder/treewriter.h b/vp8/encoder/treewriter.h
index 88096d875..c28a0fa37 100644
--- a/vp8/encoder/treewriter.h
+++ b/vp8/encoder/treewriter.h
@@ -15,7 +15,7 @@
/* Trees map alphabets into huffman-like codes suitable for an arithmetic
bit coder. Timothy S Murphy 11 October 2004 */
-#include "treecoder.h"
+#include "vp8/common/treecoder.h"
#include "boolhuff.h" /* for now */
diff --git a/vp8/encoder/x86/variance_mmx.c b/vp8/encoder/x86/variance_mmx.c
index 2df73a635..6eed98e07 100644
--- a/vp8/encoder/x86/variance_mmx.c
+++ b/vp8/encoder/x86/variance_mmx.c
@@ -9,8 +9,8 @@
*/
-#include "variance.h"
-#include "pragmas.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/common/pragmas.h"
#include "vpx_ports/mem.h"
extern void filter_block1d_h6_mmx
diff --git a/vp8/encoder/x86/variance_sse2.c b/vp8/encoder/x86/variance_sse2.c
index 6f79f0d23..7cf6a6308 100644
--- a/vp8/encoder/x86/variance_sse2.c
+++ b/vp8/encoder/x86/variance_sse2.c
@@ -9,8 +9,8 @@
*/
-#include "variance.h"
-#include "pragmas.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/common/pragmas.h"
#include "vpx_ports/mem.h"
extern void filter_block1d_h6_mmx(const unsigned char *src_ptr, unsigned short *output_ptr, unsigned int src_pixels_per_line, unsigned int pixel_step, unsigned int output_height, unsigned int output_width, short *vp7_filter);
diff --git a/vp8/encoder/x86/x86_csystemdependent.c b/vp8/encoder/x86/x86_csystemdependent.c
index 31438f916..4e3ce070d 100644
--- a/vp8/encoder/x86/x86_csystemdependent.c
+++ b/vp8/encoder/x86/x86_csystemdependent.c
@@ -11,8 +11,8 @@
#include "vpx_ports/config.h"
#include "vpx_ports/x86.h"
-#include "variance.h"
-#include "onyx_int.h"
+#include "vp8/encoder/variance.h"
+#include "vp8/encoder/onyx_int.h"
#if HAVE_MMX