ffmpeg | branch: master | Steven Liu <liuq...@kuaishou.com> | Mon May 31 15:16:43 2021 +0800| [282b9f4cba7ca361c43ac9f94031a43109df0a4f] | committer: Timo Rothenpieler
avfilter/overlay_cuda: add hsub and vsub compute x and y positions fix problem when set x to odd number in nv12 by cuda test step: 1. ffmpeg -f lavfi testsrc2=s=176x144 -pix_fmt nv12 -t 1 output_overlay.yuv 2. ffmpeg -f lavfi testsrc2=s=352x288 -pix_fmt nv12 -t 1 output_main.yuv before this patch: overlay_cuda=x=0:y=0 will right, overlay_cuda=x=3:y=0 will wrong, both will right after patch. Signed-off-by: Steven Liu <liuq...@kuaishou.com> Signed-off-by: Timo Rothenpieler <t...@rothenpieler.org> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=282b9f4cba7ca361c43ac9f94031a43109df0a4f --- libavfilter/vf_overlay_cuda.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavfilter/vf_overlay_cuda.c b/libavfilter/vf_overlay_cuda.c index b91ac9a713..8a4d2c4312 100644 --- a/libavfilter/vf_overlay_cuda.c +++ b/libavfilter/vf_overlay_cuda.c @@ -145,11 +145,16 @@ static int overlay_cuda_blend(FFFrameSync *fs) AVFilterContext *avctx = fs->parent; OverlayCUDAContext *ctx = avctx->priv; AVFilterLink *outlink = avctx->outputs[0]; + AVFilterLink *inlink = avctx->inputs[0]; CudaFunctions *cu = ctx->hwctx->internal->cuda_dl; CUcontext dummy, cuda_ctx = ctx->hwctx->cuda_ctx; AVFrame *input_main, *input_overlay; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); + + int hsub = pix_desc->log2_chroma_w; + int vsub = pix_desc->log2_chroma_h; ctx->cu_ctx = cuda_ctx; @@ -178,6 +183,9 @@ static int overlay_cuda_blend(FFFrameSync *fs) return ret; } + ctx->x_position &= (1 << hsub) - 1; + ctx->y_position &= (1 << vsub) - 1; + // overlay first plane overlay_cuda_call_kernel(ctx, _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".