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 <atomnu...@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. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel