From patchwork Tue Apr 2 08:13:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chen, Wenbin" X-Patchwork-Id: 47733 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1205512pzb; Tue, 2 Apr 2024 01:13:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWRhf9mh4p1z3XfMhZyvq+zN7vG+b6HAh4KdPo9Uf4SmjVqTK8OOiZbtrAvnfFyaQb/zhWyN9gkzVJzAJVJVMw0rrzfAW9be2hDcg== X-Google-Smtp-Source: AGHT+IEPiyD1w2da8RpocYIWAfkdTOX+gCaXKzmGAPIw8Pb+TXh99UX5e42uvBf5OfIMgv3Qn5Ma X-Received: by 2002:a17:907:3605:b0:a47:398f:1a22 with SMTP id bk5-20020a170907360500b00a47398f1a22mr8509611ejc.0.1712045610991; Tue, 02 Apr 2024 01:13:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712045610; cv=none; d=google.com; s=arc-20160816; b=qG0wNUqBQXzw+Ynydi79aEQPt0MX8BfXAjvPCM0v0tr+WPXPvEs+KSZraAdC8KZRUs w89CAuNR1iqLPb5GVe4B+DzXgfYA3Pg2xhJ6C4l32iyDY56ni5CAIng9CSo4/bKl//ih /BiJ+HxDdFqPk+6ufDGdWgZFfUpI7j8TnEnhaU9nSw3NBFD9is4rh/lSjUgt0/Gq3TDn c8o89Pwf3I9yOOsJF7oHXgwu8pmHfijwxF6JjNL00FmmX9iVHrSi6KnZOQMgOtLA90lv Ad97C/MuiU1GHhtxCm+/TzOITP1ibqi9E7FNsqx1mFqPb8EK07zxkrY1ZpdiqKLQsg3C 2mlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=fk390G626k5sfaj4oEoU8eUaEzc5mhJlFRaN7et2NW4=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=V1ZzUwi5HJDSbnD63RM1PP+bjTr0LvLJvjF/sU3G8EaIOqvjMyx+ffPARtLEmE7Vza Gtf1unv8zJIOfaoJZ8ivUgU5+Chq5MJSgDxncecVbyzGiVq0oUpYIe4eq4Fw37qRh+kI 50jWUAuLG19T07KJ2EEph6YpPhNbBjG67gddfZ6o4xqpOOe4eRCTtckmAxaO976YuXc7 sUczocJOTAu4eUKMr989Q7f3/gsX3pbgv+uH1PcwCVZvYBZbGW5chxVrQgdaBXWqwx6C xIXlkVy7iABjXAZ9suLi41WYsBpHtf7MPxxtZ03TOjj5o9fSuNAyko0zJk7141FfFVAK apRQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b="hBH47/bd"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x22-20020a170906299600b00a4745ab9cb1si5253321eje.847.2024.04.02.01.13.30; Tue, 02 Apr 2024 01:13:30 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b="hBH47/bd"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AB9D968D02A; Tue, 2 Apr 2024 11:13:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 265C968CF1F for ; Tue, 2 Apr 2024 11:13:15 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712045601; x=1743581601; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=pk8ifvvswEmHLEiuNIrjZiyIi+P68UNa9ivrqKwDPWA=; b=hBH47/bd/kuLuiz+2Lp6JVJsp0/ytWx6UwN2b2Ft8jnndTNIdMbTg5Vn tce8aOHgIes71u720aRRUaxD3vJH3BYnNittWTtD6W28n6a0nhKU5u86V rLDrJZxcPqJ83TEHxNVDiyYECUpxCgd6Bmq3Z/mD7dlfgx1utuLWyTYH6 3Jc1Ys9wW+c6Qgy+alHQe4eqkxlu4JNpMJ8l7rrP0MGr8oJB3+Trn8qKg yoRdQBA7cqb8pecq0KhSTseBE+jvxd3y1GIUnF2Wz/4f22SZs83cVGYsY zlR0EvXHa8kol/DWkg6f9wb9RpMmpt+qPZuYV5RXvkRJs+ccRkrUjgypb Q==; X-CSE-ConnectionGUID: 4KdagK38TqmfQFUkq/a6FQ== X-CSE-MsgGUID: iq4A9XldROuMLP8+Zyn+3A== X-IronPort-AV: E=McAfee;i="6600,9927,11031"; a="17771346" X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="17771346" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2024 01:13:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="48994589" Received: from wenbin-z390-aorus-ultra.sh.intel.com ([10.239.156.43]) by orviesa002.jf.intel.com with ESMTP; 02 Apr 2024 01:13:08 -0700 From: wenbin.chen-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 16:13:06 +0800 Message-Id: <20240402081306.1314398-2-wenbin.chen@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402081306.1314398-1-wenbin.chen@intel.com> References: <20240402081306.1314398-1-wenbin.chen@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] libavfilter/dnn_io_proc: Take step into consideration when crop frame X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Vd3CPnZ4WZzY From: Wenbin Chen Signed-off-by: Wenbin Chen --- libavfilter/dnn/dnn_io_proc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavfilter/dnn/dnn_io_proc.c b/libavfilter/dnn/dnn_io_proc.c index e5d6edb301..d2ec9f63f5 100644 --- a/libavfilter/dnn/dnn_io_proc.c +++ b/libavfilter/dnn/dnn_io_proc.c @@ -350,6 +350,7 @@ int ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index const AVDetectionBBoxHeader *header; const AVDetectionBBox *bbox; AVFrameSideData *sd = av_frame_get_side_data(frame, AV_FRAME_DATA_DETECTION_BBOXES); + int max_step[4] = { 0 }; av_assert0(sd); /* (scale != 1 and scale != 0) or mean != 0 */ @@ -405,8 +406,9 @@ int ff_frame_to_dnn_classify(AVFrame *frame, DNNData *input, uint32_t bbox_index offsety[1] = offsety[2] = AV_CEIL_RSHIFT(top, desc->log2_chroma_h); offsety[0] = offsety[3] = top; + av_image_fill_max_pixsteps(max_step, NULL, desc); for (int k = 0; frame->data[k]; k++) - bbox_data[k] = frame->data[k] + offsety[k] * frame->linesize[k] + offsetx[k]; + bbox_data[k] = frame->data[k] + offsety[k] * frame->linesize[k] + offsetx[k] * max_step[k]; sws_scale(sws_ctx, (const uint8_t *const *)&bbox_data, frame->linesize, 0, height,