summaryrefslogtreecommitdiff
path: root/libavfilter/vf_dnn_processing.c
diff options
context:
space:
mode:
authorShubhanshu Saxena <shubhanshu.e01@gmail.com>2021-08-26 02:40:46 +0530
committerGuo Yejun <yejun.guo@intel.com>2021-08-28 16:19:07 +0800
commit70b4dca054db007ee544e5cbeabaef8098d333fa (patch)
treea2513ff37afe60c6c012775eb2eb7d2f66301081 /libavfilter/vf_dnn_processing.c
parent60b4d07cf65c9dd949155989591979299a7ee9d4 (diff)
libavfilter: Remove synchronous functions from DNN filters
This commit removes the unused sync mode specific code from the DNN filters since the sync and async mode are now unified from the filters' perspective. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
Diffstat (limited to 'libavfilter/vf_dnn_processing.c')
-rw-r--r--libavfilter/vf_dnn_processing.c84
1 files changed, 2 insertions, 82 deletions
diff --git a/libavfilter/vf_dnn_processing.c b/libavfilter/vf_dnn_processing.c
index 7435dd4959..55634efde5 100644
--- a/libavfilter/vf_dnn_processing.c
+++ b/libavfilter/vf_dnn_processing.c
@@ -244,76 +244,6 @@ static int copy_uv_planes(DnnProcessingContext *ctx, AVFrame *out, const AVFrame
return 0;
}
-static int filter_frame(AVFilterLink *inlink, AVFrame *in)
-{
- AVFilterContext *context = inlink->dst;
- AVFilterLink *outlink = context->outputs[0];
- DnnProcessingContext *ctx = context->priv;
- DNNReturnType dnn_result;
- AVFrame *out;
-
- out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
- if (!out) {
- av_frame_free(&in);
- return AVERROR(ENOMEM);
- }
- av_frame_copy_props(out, in);
-
- dnn_result = ff_dnn_execute_model(&ctx->dnnctx, in, out);
- if (dnn_result != DNN_SUCCESS){
- av_log(ctx, AV_LOG_ERROR, "failed to execute model\n");
- av_frame_free(&in);
- av_frame_free(&out);
- return AVERROR(EIO);
- }
-
- if (isPlanarYUV(in->format))
- copy_uv_planes(ctx, out, in);
-
- av_frame_free(&in);
- return ff_filter_frame(outlink, out);
-}
-
-static int activate_sync(AVFilterContext *filter_ctx)
-{
- AVFilterLink *inlink = filter_ctx->inputs[0];
- AVFilterLink *outlink = filter_ctx->outputs[0];
- AVFrame *in = NULL;
- int64_t pts;
- int ret, status;
- int got_frame = 0;
-
- FF_FILTER_FORWARD_STATUS_BACK(outlink, inlink);
-
- do {
- // drain all input frames
- ret = ff_inlink_consume_frame(inlink, &in);
- if (ret < 0)
- return ret;
- if (ret > 0) {
- ret = filter_frame(inlink, in);
- if (ret < 0)
- return ret;
- got_frame = 1;
- }
- } while (ret > 0);
-
- // if frame got, schedule to next filter
- if (got_frame)
- return 0;
-
- if (ff_inlink_acknowledge_status(inlink, &status, &pts)) {
- if (status == AVERROR_EOF) {
- ff_outlink_set_status(outlink, status, pts);
- return ret;
- }
- }
-
- FF_FILTER_FORWARD_WANTED(outlink, inlink);
-
- return FFERROR_NOT_READY;
-}
-
static int flush_frame(AVFilterLink *outlink, int64_t pts, int64_t *out_pts)
{
DnnProcessingContext *ctx = outlink->src->priv;
@@ -345,7 +275,7 @@ static int flush_frame(AVFilterLink *outlink, int64_t pts, int64_t *out_pts)
return 0;
}
-static int activate_async(AVFilterContext *filter_ctx)
+static int activate(AVFilterContext *filter_ctx)
{
AVFilterLink *inlink = filter_ctx->inputs[0];
AVFilterLink *outlink = filter_ctx->outputs[0];
@@ -410,16 +340,6 @@ static int activate_async(AVFilterContext *filter_ctx)
return 0;
}
-static av_unused int activate(AVFilterContext *filter_ctx)
-{
- DnnProcessingContext *ctx = filter_ctx->priv;
-
- if (ctx->dnnctx.async)
- return activate_async(filter_ctx);
- else
- return activate_sync(filter_ctx);
-}
-
static av_cold void uninit(AVFilterContext *ctx)
{
DnnProcessingContext *context = ctx->priv;
@@ -454,5 +374,5 @@ const AVFilter ff_vf_dnn_processing = {
FILTER_INPUTS(dnn_processing_inputs),
FILTER_OUTPUTS(dnn_processing_outputs),
.priv_class = &dnn_processing_class,
- .activate = activate_async,
+ .activate = activate,
};