shithub: libvpx

Download patch

ref: 7af0d906e33439eb4d1c765e8d410f47058c6502
parent: 945dad277d3c09708956d60bf7844d47e0eeed1f
author: Attila Nagy <attilanagy@google.com>
date: Tue Feb 22 05:29:23 EST 2011

Remove temporal alt ref from realtime only build

It is not used in realtime mode. Reduces memory footprint.

Change-Id: I7f163225762368df5457cfd413050161d3704a3f

--- a/vp8/encoder/generic/csystemdependent.c
+++ b/vp8/encoder/generic/csystemdependent.c
@@ -95,8 +95,9 @@
     cpi->rtcd.search.full_search             = vp8_full_search_sad;
 #endif
     cpi->rtcd.search.diamond_search          = vp8_diamond_search_sad;
-
+#if !(CONFIG_REALTIME_ONLY)
     cpi->rtcd.temporal.apply                 = vp8_temporal_filter_apply_c;
+#endif
 #endif
 
     // Pure C:
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -261,35 +261,31 @@
 
 void vp8_dealloc_compressor_data(VP8_COMP *cpi)
 {
-        vpx_free(cpi->tplist);
+    vpx_free(cpi->tplist);
     cpi->tplist = NULL;
 
     // Delete last frame MV storage buffers
-        vpx_free(cpi->lfmv);
-
+    vpx_free(cpi->lfmv);
     cpi->lfmv = 0;
 
-        vpx_free(cpi->lf_ref_frame_sign_bias);
-
+    vpx_free(cpi->lf_ref_frame_sign_bias);
     cpi->lf_ref_frame_sign_bias = 0;
 
-        vpx_free(cpi->lf_ref_frame);
-
+    vpx_free(cpi->lf_ref_frame);
     cpi->lf_ref_frame = 0;
 
     // Delete sementation map
-        vpx_free(cpi->segmentation_map);
-
+    vpx_free(cpi->segmentation_map);
     cpi->segmentation_map = 0;
 
-        vpx_free(cpi->active_map);
-
+    vpx_free(cpi->active_map);
     cpi->active_map = 0;
 
+#if !(CONFIG_REALTIME_ONLY)
     // Delete first pass motion map
-        vpx_free(cpi->fp_motion_map);
-
+    vpx_free(cpi->fp_motion_map);
     cpi->fp_motion_map = 0;
+#endif
 
     vp8_de_alloc_frame_buffers(&cpi->common);
 
@@ -311,21 +307,17 @@
     cpi->tok = 0;
 
     // Structure used to monitor GF usage
-        vpx_free(cpi->gf_active_flags);
-
+    vpx_free(cpi->gf_active_flags);
     cpi->gf_active_flags = 0;
 
-        vpx_free(cpi->mb.pip);
-
+    vpx_free(cpi->mb.pip);
     cpi->mb.pip = 0;
 
 #if !(CONFIG_REALTIME_ONLY)
-        vpx_free(cpi->total_stats);
-
+    vpx_free(cpi->total_stats);
     cpi->total_stats = 0;
 
-        vpx_free(cpi->this_frame_stats);
-
+    vpx_free(cpi->this_frame_stats);
     cpi->this_frame_stats = 0;
 #endif
 }
@@ -2161,9 +2153,11 @@
     vpx_memset(cpi->active_map , 1, (cpi->common.mb_rows * cpi->common.mb_cols));
     cpi->active_map_enabled = 0;
 
+#if !(CONFIG_REALTIME_ONLY)
     // Create the first pass motion map structure and set to 0
     // Allocate space for maximum of 15 buffers
     CHECK_MEM_ERROR(cpi->fp_motion_map, vpx_calloc(15*cpi->common.MBs, 1));
+#endif
 
 #if 0
     // Experimental code for lagged and one pass
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -51,7 +51,9 @@
 #define MV_ZBIN_BOOST        4
 #define ZBIN_OQ_MAX 192
 
+#if !(CONFIG_REALTIME_ONLY)
 #define VP8_TEMPORAL_ALT_REF 1
+#endif
 
 typedef struct
 {
@@ -492,9 +494,11 @@
     FIRSTPASS_STATS *stats_in, *stats_in_end;
     struct vpx_codec_pkt_list  *output_pkt_list;
     int                          first_pass_done;
-    unsigned char *fp_motion_map;
 
+#if !(CONFIG_REALTIME_ONLY)
+    unsigned char *fp_motion_map;
     unsigned char *fp_motion_map_stats, *fp_motion_map_stats_save;
+#endif
 
 #if 0
     // Experimental code for lagged and one pass
--- a/vp8/encoder/x86/x86_csystemdependent.c
+++ b/vp8/encoder/x86/x86_csystemdependent.c
@@ -301,7 +301,9 @@
 #endif
         cpi->rtcd.quantize.fastquantb            = vp8_fast_quantize_b_sse2;
 
+#if !(CONFIG_REALTIME_ONLY)
         cpi->rtcd.temporal.apply                 = vp8_temporal_filter_apply_sse2;
+#endif
     }
 #endif
 
--- a/vp8/vp8cx.mk
+++ b/vp8/vp8cx.mk
@@ -85,6 +85,7 @@
 
 ifeq ($(CONFIG_REALTIME_ONLY),yes)
 VP8_CX_SRCS_REMOVE-yes += encoder/firstpass.c
+VP8_CX_SRCS_REMOVE-yes += encoder/temporal_filter.c
 endif
 
 VP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/encodemb_x86.h
@@ -113,5 +114,10 @@
 VP8_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/sad_sse4.asm
 VP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/quantize_mmx.asm
 VP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/encodeopt.asm
+
+ifeq ($(CONFIG_REALTIME_ONLY),yes)
+VP8_CX_SRCS_REMOVE-$(HAVE_SSE2) += encoder/x86/temporal_filter_apply_sse2.asm
+endif
+
 
 VP8_CX_SRCS-yes := $(filter-out $(VP8_CX_SRCS_REMOVE-yes),$(VP8_CX_SRCS-yes))