diff --git a/doc/filters.texi b/doc/filters.texi index 486398d31c..6a1596eef4 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -10226,7 +10226,8 @@ The description of the accepted parameters follows. @table @option @item stats_file, f If specified the filter will use the named file to save the SSIM of -each individual frame. +each individual frame. When filename equals "-" the data is sent to +standard output. @end table The file printed if @var{stats_file} is selected, contains a sequence of diff --git a/libavfilter/vf_ssim.c b/libavfilter/vf_ssim.c index 5cd9361f1f..b23d447003 100644 --- a/libavfilter/vf_ssim.c +++ b/libavfilter/vf_ssim.c @@ -223,7 +223,9 @@ static av_cold int init(AVFilterContext *ctx) { SSIMContext *s = ctx->priv; - if (s->stats_file_str) { + if (!strcmp(s->stats_file_str, "-")) { + s->stats_file = stdout; + } else if (s->stats_file_str) { s->stats_file = fopen(s->stats_file_str, "w"); if (!s->stats_file) { int err = AVERROR(errno); @@ -354,7 +356,7 @@ static av_cold void uninit(AVFilterContext *ctx) ff_dualinput_uninit(&s->dinput); - if (s->stats_file) + if (s->stats_file && s->stats_file != stdout) fclose(s->stats_file); av_freep(&s->temp);