]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/f_settb.c
lavfi/blackdetect: switch to new ff_filter_frame() API
[ffmpeg] / libavfilter / f_settb.c
index f42a15c78d10817eb27aeb0cd89b857ca6059a63..99ea7a78267ffc408da6eb8e0398dd7950ba1521 100644 (file)
@@ -103,37 +103,20 @@ static int config_output_props(AVFilterLink *outlink)
     return 0;
 }
 
-static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
+static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *frame)
 {
     AVFilterContext *ctx = inlink->dst;
     AVFilterLink *outlink = ctx->outputs[0];
 
     if (av_cmp_q(inlink->time_base, outlink->time_base)) {
-        int64_t orig_pts = picref->pts;
-        picref->pts = av_rescale_q(picref->pts, inlink->time_base, outlink->time_base);
+        int64_t orig_pts = frame->pts;
+        frame->pts = av_rescale_q(frame->pts, inlink->time_base, outlink->time_base);
         av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
                inlink ->time_base.num, inlink ->time_base.den, orig_pts,
-               outlink->time_base.num, outlink->time_base.den, picref->pts);
+               outlink->time_base.num, outlink->time_base.den, frame->pts);
     }
-    inlink->cur_buf = NULL;
 
-    return ff_start_frame(outlink, picref);
-}
-
-static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
-{
-    AVFilterContext *ctx = inlink->dst;
-    AVFilterLink *outlink = ctx->outputs[0];
-
-    if (av_cmp_q(inlink->time_base, outlink->time_base)) {
-        int64_t orig_pts = samplesref->pts;
-        samplesref->pts = av_rescale_q(samplesref->pts, inlink->time_base, outlink->time_base);
-        av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
-               inlink ->time_base.num, inlink ->time_base.den, orig_pts,
-               outlink->time_base.num, outlink->time_base.den, samplesref->pts);
-    }
-
-    return ff_filter_samples(outlink, samplesref);
+    return ff_filter_frame(outlink, frame);
 }
 
 #if CONFIG_SETTB_FILTER
@@ -142,8 +125,7 @@ static const AVFilterPad avfilter_vf_settb_inputs[] = {
         .name             = "default",
         .type             = AVMEDIA_TYPE_VIDEO,
         .get_video_buffer = ff_null_get_video_buffer,
-        .start_frame      = start_frame,
-        .end_frame        = ff_null_end_frame
+        .filter_frame     = filter_frame,
     },
     { NULL }
 };
@@ -170,25 +152,32 @@ AVFilter avfilter_vf_settb = {
 #endif
 
 #if CONFIG_ASETTB_FILTER
+static const AVFilterPad avfilter_af_asettb_inputs[] = {
+    {
+        .name             = "default",
+        .type             = AVMEDIA_TYPE_AUDIO,
+        .get_audio_buffer = ff_null_get_audio_buffer,
+        .filter_frame     = filter_frame,
+    },
+    { NULL }
+};
+
+static const AVFilterPad avfilter_af_asettb_outputs[] = {
+    {
+        .name         = "default",
+        .type         = AVMEDIA_TYPE_AUDIO,
+        .config_props = config_output_props,
+    },
+    { NULL }
+};
+
 AVFilter avfilter_af_asettb = {
     .name      = "asettb",
     .description = NULL_IF_CONFIG_SMALL("Set timebase for the audio output link."),
     .init      = init,
 
     .priv_size = sizeof(SetTBContext),
-
-    .inputs    = (const AVFilterPad[]) {
-        { .name             = "default",
-          .type             = AVMEDIA_TYPE_AUDIO,
-          .get_audio_buffer = ff_null_get_audio_buffer,
-          .filter_samples   = filter_samples, },
-        { .name = NULL }
-    },
-    .outputs   = (const AVFilterPad[]) {
-        { .name            = "default",
-          .type            = AVMEDIA_TYPE_AUDIO,
-          .config_props    = config_output_props, },
-        { .name = NULL}
-    },
+    .inputs    = avfilter_af_asettb_inputs,
+    .outputs   = avfilter_af_asettb_outputs,
 };
 #endif