diff options
Diffstat (limited to 'vp8')
-rw-r--r-- | vp8/encoder/generic/csystemdependent.c | 3 | ||||
-rw-r--r-- | vp8/encoder/onyx_if.c | 53 | ||||
-rw-r--r-- | vp8/encoder/onyx_int.h | 6 | ||||
-rw-r--r-- | vp8/encoder/x86/x86_csystemdependent.c | 2 | ||||
-rw-r--r-- | vp8/vp8_cx_iface.c | 88 | ||||
-rw-r--r-- | vp8/vp8cx.mk | 6 |
6 files changed, 79 insertions, 79 deletions
diff --git a/vp8/encoder/generic/csystemdependent.c b/vp8/encoder/generic/csystemdependent.c index d9f5474a9..fc0580d55 100644 --- a/vp8/encoder/generic/csystemdependent.c +++ b/vp8/encoder/generic/csystemdependent.c @@ -95,9 +95,10 @@ 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: vp8_yv12_copy_partial_frame_ptr = vp8_yv12_copy_partial_frame; diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index e6c83a125..5dc579d10 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 @@ -5233,23 +5227,6 @@ int vp8_get_compressed_data(VP8_PTR ptr, unsigned int *frame_flags, unsigned lon if (cpi->compressor_speed == 2) { vp8_check_gf_quality(cpi); - } - - if (!cpi) - { -#if HAVE_ARMV7 -#if CONFIG_RUNTIME_CPU_DETECT - if (cm->rtcd.flags & HAS_NEON) -#endif - { - vp8_pop_neon(store_reg); - } -#endif - return 0; - } - - if (cpi->compressor_speed == 2) - { vpx_usec_timer_start(&tsctimer); vpx_usec_timer_start(&ticktimer); } diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index a9ccc89d7..b66131d15 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 4e3ce070d..61c603229 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/vp8_cx_iface.c b/vp8/vp8_cx_iface.c index f182b4fca..5d805cea8 100644 --- a/vp8/vp8_cx_iface.c +++ b/vp8/vp8_cx_iface.c @@ -492,57 +492,67 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx) { priv = calloc(1, sizeof(struct vpx_codec_alg_priv)); - if (priv) + if (!priv) { - ctx->priv = &priv->base; - ctx->priv->sz = sizeof(*ctx->priv); - ctx->priv->iface = ctx->iface; - ctx->priv->alg_priv = priv; - ctx->priv->init_flags = ctx->init_flags; - - if (ctx->config.enc) - { - /* Update the reference to the config structure to an - * internal copy. - */ - ctx->priv->alg_priv->cfg = *ctx->config.enc; - ctx->config.enc = &ctx->priv->alg_priv->cfg; - } + return VPX_CODEC_MEM_ERROR; + } - cfg = &ctx->priv->alg_priv->cfg; + ctx->priv = &priv->base; + ctx->priv->sz = sizeof(*ctx->priv); + ctx->priv->iface = ctx->iface; + ctx->priv->alg_priv = priv; + ctx->priv->init_flags = ctx->init_flags; - /* Select the extra vp6 configuration table based on the current - * usage value. If the current usage value isn't found, use the - * values for usage case 0. + if (ctx->config.enc) + { + /* Update the reference to the config structure to an + * internal copy. */ - for (i = 0; - extracfg_map[i].usage && extracfg_map[i].usage != cfg->g_usage; - i++); + ctx->priv->alg_priv->cfg = *ctx->config.enc; + ctx->config.enc = &ctx->priv->alg_priv->cfg; + } - priv->vp8_cfg = extracfg_map[i].cfg; - priv->vp8_cfg.pkt_list = &priv->pkt_list.head; + cfg = &ctx->priv->alg_priv->cfg; - priv->cx_data_sz = priv->cfg.g_w * priv->cfg.g_h * 3 / 2 * 2; + /* Select the extra vp6 configuration table based on the current + * usage value. If the current usage value isn't found, use the + * values for usage case 0. + */ + for (i = 0; + extracfg_map[i].usage && extracfg_map[i].usage != cfg->g_usage; + i++); - if (priv->cx_data_sz < 4096) priv->cx_data_sz = 4096; + priv->vp8_cfg = extracfg_map[i].cfg; + priv->vp8_cfg.pkt_list = &priv->pkt_list.head; - priv->cx_data = malloc(priv->cx_data_sz); - priv->deprecated_mode = NO_MODE_SET; + priv->cx_data_sz = priv->cfg.g_w * priv->cfg.g_h * 3 / 2 * 2; - vp8_initialize(); + if (priv->cx_data_sz < 4096) priv->cx_data_sz = 4096; - res = validate_config(priv, &priv->cfg, &priv->vp8_cfg); + priv->cx_data = malloc(priv->cx_data_sz); - if (!res) - { - set_vp8e_config(&ctx->priv->alg_priv->oxcf, ctx->priv->alg_priv->cfg, ctx->priv->alg_priv->vp8_cfg); - optr = vp8_create_compressor(&ctx->priv->alg_priv->oxcf); + if (!priv->cx_data) + { + return VPX_CODEC_MEM_ERROR; + } - if (!optr) - res = VPX_CODEC_MEM_ERROR; - else - ctx->priv->alg_priv->cpi = optr; - } + priv->deprecated_mode = NO_MODE_SET; + + vp8_initialize(); + + res = validate_config(priv, &priv->cfg, &priv->vp8_cfg); + + if (!res) + { + set_vp8e_config(&ctx->priv->alg_priv->oxcf, + ctx->priv->alg_priv->cfg, + ctx->priv->alg_priv->vp8_cfg); + optr = vp8_create_compressor(&ctx->priv->alg_priv->oxcf); + + if (!optr) + res = VPX_CODEC_MEM_ERROR; + else + ctx->priv->alg_priv->cpi = optr; } } diff --git a/vp8/vp8cx.mk b/vp8/vp8cx.mk index a84188f0c..ed2feddae 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)) |