static av_cold void uninit(AVFilterContext *ctx) { PSNRContext *s = ctx->priv; if (s->nb_frames > 0) { int j; char buf[256]; buf[0] = 0; for (j = 0; j < s->nb_components; j++) { int c = s->is_rgb ? s->rgba_map[j] : j; av_strlcatf(buf, sizeof(buf), " %c:%f", s->comps[j], get_psnr(s->mse_comp[c], s->nb_frames, s->max[c])); } av_log(ctx, AV_LOG_INFO, "PSNR%s average:%f min:%f max:%f\n", buf, get_psnr(s->mse, s->nb_frames, s->average_max), get_psnr(s->max_mse, 1, s->average_max), get_psnr(s->min_mse, 1, s->average_max)); } ff_dualinput_uninit(&s->dinput); if (s->stats_file && s->stats_file != stdout) fclose(s->stats_file); }
static av_cold void uninit(AVFilterContext *ctx) { PSNRContext *s = ctx->priv; if (s->nb_frames > 0) { av_log(ctx, AV_LOG_INFO, "PSNR average:%0.2f min:%0.2f max:%0.2f\n", get_psnr(s->mse, s->nb_frames, s->average_max), get_psnr(s->max_mse, 1, s->average_max), get_psnr(s->min_mse, 1, s->average_max)); } ff_dualinput_uninit(&s->dinput); if (s->stats_file) fclose(s->stats_file); }
static av_cold void uninit(AVFilterContext *ctx) { LIBVMAFContext *s = ctx->priv; ff_dualinput_uninit(&s->dinput); pthread_mutex_lock(&s->lock); s->eof = 1; pthread_cond_signal(&s->cond); pthread_mutex_unlock(&s->lock); pthread_join(s->vmaf_thread, NULL); av_frame_free(&s->gref); av_frame_free(&s->gmain); pthread_mutex_destroy(&s->lock); pthread_cond_destroy(&s->cond); }