diff options
Diffstat (limited to 'vp8')
-rw-r--r-- | vp8/vp8_cx_iface.c | 24 | ||||
-rw-r--r-- | vp8/vp8_dx_iface.c | 52 |
2 files changed, 35 insertions, 41 deletions
diff --git a/vp8/vp8_cx_iface.c b/vp8/vp8_cx_iface.c index 1654cd821..5be645c71 100644 --- a/vp8/vp8_cx_iface.c +++ b/vp8/vp8_cx_iface.c @@ -620,7 +620,6 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx, { vpx_codec_err_t res = VPX_CODEC_OK; struct vpx_codec_alg_priv *priv; - struct VP8_COMP *optr; vp8_rtcd(); @@ -633,9 +632,8 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx, return VPX_CODEC_MEM_ERROR; } - ctx->priv = &priv->base; - ctx->priv->sz = sizeof(*ctx->priv); - ctx->priv->alg_priv = priv; + ctx->priv = (vpx_codec_priv_t *)priv; + ctx->priv->sz = sizeof(struct vpx_codec_alg_priv); ctx->priv->init_flags = ctx->init_flags; if (ctx->config.enc) @@ -643,11 +641,10 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx, /* 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; + priv->cfg = *ctx->config.enc; + ctx->config.enc = &priv->cfg; } - priv->vp8_cfg = default_extracfg; priv->vp8_cfg.pkt_list = &priv->pkt_list.head; @@ -671,17 +668,10 @@ static vpx_codec_err_t vp8e_init(vpx_codec_ctx_t *ctx, if (!res) { - set_vp8e_config(&ctx->priv->alg_priv->oxcf, - ctx->priv->alg_priv->cfg, - ctx->priv->alg_priv->vp8_cfg, - mr_cfg); - - optr = vp8_create_compressor(&ctx->priv->alg_priv->oxcf); - - if (!optr) + set_vp8e_config(&priv->oxcf, priv->cfg, priv->vp8_cfg, mr_cfg); + priv->cpi = vp8_create_compressor(&priv->oxcf); + if (!priv->cpi) res = VPX_CODEC_MEM_ERROR; - else - ctx->priv->alg_priv->cpi = optr; } } diff --git a/vp8/vp8_dx_iface.c b/vp8/vp8_dx_iface.c index 05f32ba20..282032055 100644 --- a/vp8/vp8_dx_iface.c +++ b/vp8/vp8_dx_iface.c @@ -80,29 +80,32 @@ static unsigned long vp8_priv_sz(const vpx_codec_dec_cfg_t *si, vpx_codec_flags_ static void vp8_init_ctx(vpx_codec_ctx_t *ctx) { - ctx->priv = - (vpx_codec_priv_t *)vpx_memalign(8, sizeof(vpx_codec_alg_priv_t)); - vpx_memset(ctx->priv, 0, sizeof(vpx_codec_alg_priv_t)); + vpx_codec_alg_priv_t *priv = + (vpx_codec_alg_priv_t *)vpx_memalign(8, sizeof(*priv)); + vpx_memset(priv, 0, sizeof(*priv)); + + ctx->priv = (vpx_codec_priv_t *)priv; ctx->priv->sz = sizeof(*ctx->priv); - ctx->priv->alg_priv = (vpx_codec_alg_priv_t *)ctx->priv; - ctx->priv->alg_priv->si.sz = sizeof(ctx->priv->alg_priv->si); - ctx->priv->alg_priv->decrypt_cb = NULL; - ctx->priv->alg_priv->decrypt_state = NULL; - ctx->priv->alg_priv->flushed = 0; ctx->priv->init_flags = ctx->init_flags; + priv->si.sz = sizeof(priv->si); + priv->decrypt_cb = NULL; + priv->decrypt_state = NULL; + priv->flushed = 0; + if (ctx->config.dec) { /* Update the reference to the config structure to an internal copy. */ - ctx->priv->alg_priv->cfg = *ctx->config.dec; - ctx->config.dec = &ctx->priv->alg_priv->cfg; + priv->cfg = *ctx->config.dec; + ctx->config.dec = &priv->cfg; } } static vpx_codec_err_t vp8_init(vpx_codec_ctx_t *ctx, vpx_codec_priv_enc_mr_cfg_t *data) { - vpx_codec_err_t res = VPX_CODEC_OK; + vpx_codec_err_t res = VPX_CODEC_OK; + vpx_codec_alg_priv_t *priv = NULL; (void) data; vp8_rtcd(); @@ -114,29 +117,30 @@ static vpx_codec_err_t vp8_init(vpx_codec_ctx_t *ctx, if (!ctx->priv) { vp8_init_ctx(ctx); + priv = (vpx_codec_alg_priv_t *)ctx->priv; /* initialize number of fragments to zero */ - ctx->priv->alg_priv->fragments.count = 0; + priv->fragments.count = 0; /* is input fragments enabled? */ - ctx->priv->alg_priv->fragments.enabled = - (ctx->priv->alg_priv->base.init_flags & - VPX_CODEC_USE_INPUT_FRAGMENTS); + priv->fragments.enabled = + (priv->base.init_flags & VPX_CODEC_USE_INPUT_FRAGMENTS); /*post processing level initialized to do nothing */ } + else + { + priv = (vpx_codec_alg_priv_t *)ctx->priv; + } - ctx->priv->alg_priv->yv12_frame_buffers.use_frame_threads = - (ctx->priv->alg_priv->base.init_flags & - VPX_CODEC_USE_FRAME_THREADING); + priv->yv12_frame_buffers.use_frame_threads = + (ctx->priv->init_flags & VPX_CODEC_USE_FRAME_THREADING); /* for now, disable frame threading */ - ctx->priv->alg_priv->yv12_frame_buffers.use_frame_threads = 0; + priv->yv12_frame_buffers.use_frame_threads = 0; - if(ctx->priv->alg_priv->yv12_frame_buffers.use_frame_threads && - (( ctx->priv->alg_priv->base.init_flags & - VPX_CODEC_USE_ERROR_CONCEALMENT) - || ( ctx->priv->alg_priv->base.init_flags & - VPX_CODEC_USE_INPUT_FRAGMENTS) ) ) + if (priv->yv12_frame_buffers.use_frame_threads && + ((ctx->priv->init_flags & VPX_CODEC_USE_ERROR_CONCEALMENT) || + (ctx->priv->init_flags & VPX_CODEC_USE_INPUT_FRAGMENTS))) { /* row-based threading, error concealment, and input fragments will * not be supported when using frame-based threading */ |