History

avfilter/af_astats: accessing outlink in uninit is not valid

Paul B Mahol committed 3 years ago

Commit 754fa301 parent 33e70dc1 file · +5 −2Browse files

Unified · Split

libavfilter/af_astats.c+5−2
@@ -99,6 +99,7 @@ typedef struct AudioStatsContext { · 98 unmodified lines
9999 double time_constant;
100100 double mult;
101101 int metadata;
102+ int used;
102103 int reset_count;
103104 int nb_frames;
104105 int maxbitdepth;
@@ -637,6 +638,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) · 532 unmodified lines
637638 s->nb_frames++;
638639 }
639640
641+ if (s->used == 0)
642+ s->used = buf->nb_samples > 0;
640643 ff_filter_execute(ctx, filter_channel, buf, NULL,
641644 FFMIN(inlink->ch_layout.nb_channels, ff_filter_get_nb_threads(ctx)));
642645
@@ -668,7 +671,7 @@ static void print_stats(AVFilterContext *ctx) · 25 unmodified lines
668671 for (c = 0; c < s->nb_channels; c++) {
669672 ChannelStats *p = &s->chstats[c];
670673
671− if (p->nb_samples == 0 && ctx->outputs[0]->sample_count_in == 0)
674+ if (p->nb_samples == 0 && !s->used)
672675 continue;
673676
674677 if (p->nb_samples < s->tc_samples)
@@ -757,7 +760,7 @@ static void print_stats(AVFilterContext *ctx) · 82 unmodified lines
757760 av_log(ctx, AV_LOG_INFO, "Number of denormals: %"PRId64"\n", p->nb_denormals);
758761 }
759762
760− if (nb_samples == 0 && ctx->outputs[0]->sample_count_in == 0)
763+ if (nb_samples == 0 && !s->used)
761764 return;
762765
763766 if (s->measure_overall != MEASURE_NONE)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t