From patchwork Fri Nov 22 07:49:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guo, Yejun" X-Patchwork-Id: 16383 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7408A446051 for ; Fri, 22 Nov 2019 09:56:56 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4AEFE68AB75; Fri, 22 Nov 2019 09:56:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C3F3B68A97C for ; Fri, 22 Nov 2019 09:56:48 +0200 (EET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Nov 2019 23:56:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,229,1571727600"; d="scan'208";a="219383526" Received: from yguo18-skl-u1604.sh.intel.com ([10.239.13.25]) by orsmga002.jf.intel.com with ESMTP; 21 Nov 2019 23:56:45 -0800 From: "Guo, Yejun" To: ffmpeg-devel@ffmpeg.org Date: Fri, 22 Nov 2019 15:49:57 +0800 Message-Id: <1574408997-15741-1-git-send-email-yejun.guo@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH 1/4] avfilter/vf_dnn_processing: refine code for better naming X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: yejun.guo@intel.com MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Guo, Yejun --- libavfilter/vf_dnn_processing.c | 90 ++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/libavfilter/vf_dnn_processing.c b/libavfilter/vf_dnn_processing.c index f59cfb0..ce976ec 100644 --- a/libavfilter/vf_dnn_processing.c +++ b/libavfilter/vf_dnn_processing.c @@ -136,40 +136,40 @@ static int config_input(AVFilterLink *inlink) AVFilterContext *context = inlink->dst; DnnProcessingContext *ctx = context->priv; DNNReturnType result; - DNNData dnn_data; + DNNData model_input; - result = ctx->model->get_input(ctx->model->model, &dnn_data, ctx->model_inputname); + result = ctx->model->get_input(ctx->model->model, &model_input, ctx->model_inputname); if (result != DNN_SUCCESS) { av_log(ctx, AV_LOG_ERROR, "could not get input from the model\n"); return AVERROR(EIO); } // the design is to add explicit scale filter before this filter - if (dnn_data.height != -1 && dnn_data.height != inlink->h) { + if (model_input.height != -1 && model_input.height != inlink->h) { av_log(ctx, AV_LOG_ERROR, "the model requires frame height %d but got %d\n", - dnn_data.height, inlink->h); + model_input.height, inlink->h); return AVERROR(EIO); } - if (dnn_data.width != -1 && dnn_data.width != inlink->w) { + if (model_input.width != -1 && model_input.width != inlink->w) { av_log(ctx, AV_LOG_ERROR, "the model requires frame width %d but got %d\n", - dnn_data.width, inlink->w); + model_input.width, inlink->w); return AVERROR(EIO); } - if (dnn_data.channels != 3) { + if (model_input.channels != 3) { av_log(ctx, AV_LOG_ERROR, "the model requires input channels %d\n", - dnn_data.channels); + model_input.channels); return AVERROR(EIO); } - if (dnn_data.dt != DNN_FLOAT && dnn_data.dt != DNN_UINT8) { + if (model_input.dt != DNN_FLOAT && model_input.dt != DNN_UINT8) { av_log(ctx, AV_LOG_ERROR, "only support dnn models with input data type as float32 and uint8.\n"); return AVERROR(EIO); } ctx->input.width = inlink->w; ctx->input.height = inlink->h; - ctx->input.channels = dnn_data.channels; - ctx->input.dt = dnn_data.dt; + ctx->input.channels = model_input.channels; + ctx->input.dt = model_input.dt; result = (ctx->model->set_input_output)(ctx->model->model, &ctx->input, ctx->model_inputname, @@ -201,28 +201,28 @@ static int config_output(AVFilterLink *outlink) return 0; } -static int copy_from_frame_to_dnn(DNNData *dnn_data, const AVFrame *in) +static int copy_from_frame_to_dnn(DNNData *dnn_input, const AVFrame *frame) { // extend this function to support more formats - av_assert0(in->format == AV_PIX_FMT_RGB24 || in->format == AV_PIX_FMT_BGR24); - - if (dnn_data->dt == DNN_FLOAT) { - float *dnn_input = dnn_data->data; - for (int i = 0; i < in->height; i++) { - for(int j = 0; j < in->width * 3; j++) { - int k = i * in->linesize[0] + j; - int t = i * in->width * 3 + j; - dnn_input[t] = in->data[0][k] / 255.0f; + av_assert0(frame->format == AV_PIX_FMT_RGB24 || frame->format == AV_PIX_FMT_BGR24); + + if (dnn_input->dt == DNN_FLOAT) { + float *dnn_input_data = dnn_input->data; + for (int i = 0; i < frame->height; i++) { + for(int j = 0; j < frame->width * 3; j++) { + int k = i * frame->linesize[0] + j; + int t = i * frame->width * 3 + j; + dnn_input_data[t] = frame->data[0][k] / 255.0f; } } } else { - uint8_t *dnn_input = dnn_data->data; - av_assert0(dnn_data->dt == DNN_UINT8); - for (int i = 0; i < in->height; i++) { - for(int j = 0; j < in->width * 3; j++) { - int k = i * in->linesize[0] + j; - int t = i * in->width * 3 + j; - dnn_input[t] = in->data[0][k]; + uint8_t *dnn_input_data = dnn_input->data; + av_assert0(dnn_input->dt == DNN_UINT8); + for (int i = 0; i < frame->height; i++) { + for(int j = 0; j < frame->width * 3; j++) { + int k = i * frame->linesize[0] + j; + int t = i * frame->width * 3 + j; + dnn_input_data[t] = frame->data[0][k]; } } } @@ -230,28 +230,28 @@ static int copy_from_frame_to_dnn(DNNData *dnn_data, const AVFrame *in) return 0; } -static int copy_from_dnn_to_frame(AVFrame *out, const DNNData *dnn_data) +static int copy_from_dnn_to_frame(AVFrame *frame, const DNNData *dnn_output) { // extend this function to support more formats - av_assert0(out->format == AV_PIX_FMT_RGB24 || out->format == AV_PIX_FMT_BGR24); - - if (dnn_data->dt == DNN_FLOAT) { - float *dnn_output = dnn_data->data; - for (int i = 0; i < out->height; i++) { - for(int j = 0; j < out->width * 3; j++) { - int k = i * out->linesize[0] + j; - int t = i * out->width * 3 + j; - out->data[0][k] = av_clip_uintp2((int)(dnn_output[t] * 255.0f), 8); + av_assert0(frame->format == AV_PIX_FMT_RGB24 || frame->format == AV_PIX_FMT_BGR24); + + if (dnn_output->dt == DNN_FLOAT) { + float *dnn_output_data = dnn_output->data; + for (int i = 0; i < frame->height; i++) { + for(int j = 0; j < frame->width * 3; j++) { + int k = i * frame->linesize[0] + j; + int t = i * frame->width * 3 + j; + frame->data[0][k] = av_clip_uintp2((int)(dnn_output_data[t] * 255.0f), 8); } } } else { - uint8_t *dnn_output = dnn_data->data; - av_assert0(dnn_data->dt == DNN_UINT8); - for (int i = 0; i < out->height; i++) { - for(int j = 0; j < out->width * 3; j++) { - int k = i * out->linesize[0] + j; - int t = i * out->width * 3 + j; - out->data[0][k] = dnn_output[t]; + uint8_t *dnn_output_data = dnn_output->data; + av_assert0(dnn_output->dt == DNN_UINT8); + for (int i = 0; i < frame->height; i++) { + for(int j = 0; j < frame->width * 3; j++) { + int k = i * frame->linesize[0] + j; + int t = i * frame->width * 3 + j; + frame->data[0][k] = dnn_output_data[t]; } } }