avfilter/af_compand: pts init code from libavfilter/af_compand_fork.c
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 26 Feb 2014 11:44:01 +0000 (12:44 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 26 Feb 2014 11:46:04 +0000 (12:46 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavfilter/af_compand.c

index 5080ff7..5ad0f49 100644 (file)
@@ -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++) {