[FFmpeg-cvslog] libavfilter/dnn_io_proc: Take step into consideration when crop frame

Wenbin Chen git at videolan.org
Thu Apr 4 10:09:19 EEST 2024


ffmpeg | branch: master | Wenbin Chen <wenbin.chen at intel.com> | Tue Apr  2 16:13:06 2024 +0800| [478d97f3034fd7c0e1d8a1068b649e8fcc16f82f] | committer: Guo Yejun

libavfilter/dnn_io_proc: Take step into consideration when crop frame

Signed-off-by: Wenbin Chen <wenbin.chen at intel.com>
Reviewed-by: Guo Yejun <yejun.guo at intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=478d97f3034fd7c0e1d8a1068b649e8fcc16f82f
---

 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 f3a605f73c..826110dab0 100644
--- a/libavfilter/dnn/dnn_io_proc.c
+++ b/libavfilter/dnn/dnn_io_proc.c
@@ -351,6 +351,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 */
@@ -406,8 +407,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,



More information about the ffmpeg-cvslog mailing list