]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/af_asetnsamples.c
tests: stop using -vsync drop
[ffmpeg] / libavfilter / af_asetnsamples.c
index 30fabede2643acca20ffa3c3c432e517b4cbd77d..bbc391a4ff2930c1a707ef2c80060b05e34bab11 100644 (file)
@@ -67,12 +67,25 @@ static int activate(AVFilterContext *ctx)
         return ret;
 
     if (ret > 0) {
-        if ((!s->pad || (s->pad && frame->nb_samples == s->nb_out_samples)))
-            return ff_filter_frame(outlink, frame);
+        if (!s->pad || frame->nb_samples == s->nb_out_samples) {
+            ret = ff_filter_frame(outlink, frame);
+            if (ff_inlink_queued_samples(inlink) >= s->nb_out_samples)
+                ff_filter_set_ready(ctx, 100);
+            return ret;
+        }
 
         pad_frame = ff_get_audio_buffer(outlink, s->nb_out_samples);
-        if (!pad_frame)
+        if (!pad_frame) {
+            av_frame_free(&frame);
             return AVERROR(ENOMEM);
+        }
+
+        ret = av_frame_copy_props(pad_frame, frame);
+        if (ret < 0) {
+            av_frame_free(&pad_frame);
+            av_frame_free(&frame);
+            return ret;
+        }
 
         av_samples_copy(pad_frame->extended_data, frame->extended_data,
                         0, 0, frame->nb_samples, frame->channels, frame->format);