diff --git a/vp8/encoder/generic/csystemdependent.c b/vp8/encoder/generic/csystemdependent.c index d9f5474a9b35eeeee37e6e17220ceaf3171164a7..fc0580d555618411eddeb255885b516fb93aa65c 100644 --- a/vp8/encoder/generic/csystemdependent.c +++ b/vp8/encoder/generic/csystemdependent.c @@ -95,8 +95,9 @@ void vp8_cmachine_specific_config(VP8_COMP *cpi) 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: diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index f7c2c4aeabba7f974cbe9776227a494f634ed8c4..e1a1ed64d149501f6d607bc3b430ac25de10eaef 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -261,35 +261,31 @@ static void setup_features(VP8_COMP *cpi) 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 @@ void vp8_dealloc_compressor_data(VP8_COMP *cpi) 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 @@ VP8_PTR vp8_create_compressor(VP8_CONFIG *oxcf) 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 diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index a9ccc89d73fa97bc013c3468258adbe334cd2722..b66131d159f729fc2136b0cb7066ce1fee41cd59 100644 --- 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 @@ typedef struct 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 diff --git a/vp8/encoder/x86/x86_csystemdependent.c b/vp8/encoder/x86/x86_csystemdependent.c index 4e3ce070d278d2d3a2d4b5d561092cb184565179..61c6032293d2b0065046f68f5babaa097ee229da 100644 --- a/vp8/encoder/x86/x86_csystemdependent.c +++ b/vp8/encoder/x86/x86_csystemdependent.c @@ -301,7 +301,9 @@ void vp8_arch_x86_encoder_init(VP8_COMP *cpi) #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 diff --git a/vp8/vp8cx.mk b/vp8/vp8cx.mk index a84188f0c3062eb63dc01df0379bf61314807f2d..ed2feddaeda44cf83bf44937f77bafca813247d9 100644 --- a/vp8/vp8cx.mk +++ b/vp8/vp8cx.mk @@ -85,6 +85,7 @@ VP8_CX_SRCS-yes += encoder/temporal_filter.h 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 @@ -114,4 +115,9 @@ 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))