bs1770_nd_t *bs1770_nd_cleanup(bs1770_nd_t *node) { bs1770_cleanup(&node->bs1770); bs1770_stats_cleanup(&node->lra); bs1770_stats_cleanup(&node->lufs); return node; }
bs1770_ctx_t *bs1770_ctx_cleanup(bs1770_ctx_t *ctx) { bs1770_cleanup(&ctx->bs1770); bs1770_stats_cleanup(&ctx->track); return ctx; }
bs1770_stats_t *bs1770_stats_init(bs1770_stats_t *stats, bs1770_hist_t *album, const bs1770_ps_t *ps) { memset(stats,0,sizeof *stats); stats->album=album; if (NULL==bs1770_hist_init(&stats->track,ps)) goto error; else if (NULL==bs1770_aggr_init(&stats->aggr,ps,&stats->track,album)) goto error; stats->active=1; return stats; error: bs1770_stats_cleanup(stats); return NULL; }