[FFmpeg-devel] [PATCH] avfilter: add alphamerge_cuda filter

Nicolas George george at nsup.org
Thu Aug 7 13:15:44 EEST 2025


Jorge Estrada (HE12025-08-06):
> This patch adds the alphamerge_cuda video filter

Thanks, but sorry, no: this is wrong, although not by your fault.

Your filter supports only planar formats. Changing a whole plane in a
planar format should involve a little reference counting gymnastics and
updating a pointer, no data copy.

See <https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/20153>:

# `vf_alphamerge` was added in July 2012 (82ecae8a70), it used memcpy() to
# replace the alpha plane of the frame, that was later (d6b9f2b7da)
# updated to use av_image_copy_plane().
# 
# But in March 2013 (c4e8821732), we gained the ability to share plane
# data between multiple frames, thanks to refcounted buffers.
# `vf_alphamerge` could have used that ability, but it was never done,
# probably because `vf_alphamerge` came from the FFmpeg side while the
# refcounting came from the libav side.
# 
# `vf_alphamerge` needs to be updated to only create a new reference to
# the alpha plane of the input frame and use it in the output frame. No
# data copy involved at all.

The same probably applies to vf_extractplanes.c, although the excuse of
having been added before refcounting is not valid for this one.

These are rather low-hanging fruits.

Regards,

-- 
  Nicolas George


More information about the ffmpeg-devel mailing list