diff options
-rw-r--r-- | libavfilter/af_compand.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavfilter/af_compand.c b/libavfilter/af_compand.c index 5080ff709c..5ad0f49d7a 100644 --- a/libavfilter/af_compand.c +++ b/libavfilter/af_compand.c @@ -87,6 +87,7 @@ AVFILTER_DEFINE_CLASS(compand); static av_cold int init(AVFilterContext *ctx) { CompandContext *s = ctx->priv; + s->pts = AV_NOPTS_VALUE; if (!s->attacks || !s->decays || !s->points) { av_log(ctx, AV_LOG_ERROR, "Missing attacks and/or decays and/or points.\n"); @@ -223,6 +224,10 @@ static int compand_delay(AVFilterContext *ctx, AVFrame *frame) int chan, i, av_uninit(dindex), oindex, av_uninit(count); AVFrame *out_frame = NULL; + if (s->pts == AV_NOPTS_VALUE) { + s->pts = (frame->pts == AV_NOPTS_VALUE) ? 0 : frame->pts; + } + av_assert1(channels > 0); /* would corrupt delay_count and delay_index */ for (chan = 0; chan < channels; chan++) { |