[FFmpeg-devel] [PATCH 4/6] lavfi: add a Vulkan chromatic aberration filter
Mark Thompson
sw at jkqxz.net
Sun Sep 2 23:42:09 EEST 2018
On 21/06/18 17:55, Rostislav Pehlivanov wrote:
> It tries to do something similar to it with YUV images, but RGB images
> are done properly.
I agree that it's something similar and kindof cute, but it definitely isn't the separation of colours you would expect from the name of the filter. I think it might be better to constrain the filter to be RGB-only, since a video-processing case is likely to have YUV input by default and a user may be somewhat confused by what this does.
> Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>
> ---
> configure | 1 +
> libavfilter/Makefile | 1 +
> libavfilter/allfilters.c | 1 +
> libavfilter/vf_chromaticaberration_vulkan.c | 342 ++++++++++++++++++++
> 4 files changed, 345 insertions(+)
> create mode 100644 libavfilter/vf_chromaticaberration_vulkan.c
What is the behaviour around the edges of the frame meant to be? Currently it bleeds the empty edges into the frame, which looks pretty weird.
> ...
> diff --git a/libavfilter/vf_chromaticaberration_vulkan.c b/libavfilter/vf_chromaticaberration_vulkan.c
> new file mode 100644
> index 0000000000..1d1aeb95a0
> --- /dev/null
> +++ b/libavfilter/vf_chromaticaberration_vulkan.c
> ...> +
> +#define OFFSET(x) offsetof(ChromaticAberrationVulkanContext, x)
> +#define FLAGS (AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
> +static const AVOption chromaticaberration_vulkan_options[] = {
> + { "dist_x", "Set horizontal distortion amount", OFFSET(dist_x), AV_OPT_TYPE_FLOAT, {.dbl = 0.0f}, 0.0f, 10.0f, .flags = FLAGS },
> + { "dist_y", "Set vertical distortion amount", OFFSET(dist_y), AV_OPT_TYPE_FLOAT, {.dbl = 0.0f}, 0.0f, 10.0f, .flags = FLAGS },
Can you say anything about what the units of this are?
It looks like dist_y has exactly half the effect of dist_x - is that intended?
> + { NULL },
> +};
> ...
The code parts of this filter all look fine.
More information about the ffmpeg-devel
mailing list