asyncts: ignore min_delta only if first_pts is set
authorJustin Ruggles <justin.ruggles@gmail.com>
Thu, 13 Dec 2012 23:30:20 +0000 (18:30 -0500)
committerJustin Ruggles <justin.ruggles@gmail.com>
Thu, 13 Dec 2012 23:51:56 +0000 (18:51 -0500)
libavfilter/af_asyncts.c

index d6d893210c9eee827ec0a37db7f0ed12ae84a466..40680c8559623aa8b84f1febc9f63398133db6cc 100644 (file)
@@ -215,7 +215,8 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf)
     delta    = pts - s->pts - get_delay(s);
     out_size = avresample_available(s->avr);
 
-    if (labs(delta) > s->min_delta || (s->first_frame && delta)) {
+    if (labs(delta) > s->min_delta ||
+        (s->first_frame && delta && s->first_pts != AV_NOPTS_VALUE)) {
         av_log(ctx, AV_LOG_VERBOSE, "Discontinuity - %"PRId64" samples.\n", delta);
         out_size = av_clipl_int32((int64_t)out_size + delta);
     } else {