On 10/02/2020 12:03, Paul B Mahol wrote: > Signed-off-by: Paul B Mahol <one...@gmail.com> > --- > configure | 1 + > doc/filters.texi | 77 +++++++ > libavfilter/Makefile | 1 + > libavfilter/allfilters.c | 1 + > libavfilter/opencl/pad.cl | 36 ++++ > libavfilter/opencl_source.h | 1 + > libavfilter/vf_pad_opencl.c | 397 ++++++++++++++++++++++++++++++++++++ > 7 files changed, 514 insertions(+) > create mode 100644 libavfilter/opencl/pad.cl > create mode 100644 libavfilter/vf_pad_opencl.c > > ... > + > +The @var{x} expression can reference the value set by the @var{y} > +expression, and vice versa. > + > +The default value of @var{x} and @var{y} is 0. > + > +If @var{x} or @var{y} evaluate to a negative number, they'll be changed > +so the input image is centered on the padded area. > + > +@item color > +Specify the color of the padded area. For the syntax of this option, > +check the @ref{color syntax,,"Color" section in the ffmpeg-utils > +manual,ffmpeg-utils}. > + > +@item aspect > +Pad to aspect instead to a resolution.
Funny phrasing. "Pad to an aspect ratio instead of to a resolution.", maybe. > +@end table > + > +The value for the @var{width}, @var{height}, @var{x}, and @var{y} > +options are expressions containing the following constants: > + > +@table @option > +@item in_w > +@item in_h > +The input video width and height. > + > +@item iw > +@item ih > +These are the same as @var{in_w} and @var{in_h}. > + > ... > + > +static int pad_opencl_init(AVFilterContext *avctx, AVFrame *input_frame) > +{ > + PadOpenCLContext *ctx = avctx->priv; > + AVHWFramesContext *input_frames_ctx = (AVHWFramesContext > *)input_frame->hw_frames_ctx->data; > + const AVPixFmtDescriptor *desc = > av_pix_fmt_desc_get(input_frames_ctx->sw_format); > + uint8_t rgba_map[4]; > + cl_int cle; > + int err; > + > + ff_fill_rgba_map(rgba_map, input_frames_ctx->sw_format); Ah, cute. It's nice that a function already exists for this case :) > + ctx->is_rgb = !!(desc->flags & AV_PIX_FMT_FLAG_RGB); > + ctx->is_packed = !(desc->flags & AV_PIX_FMT_FLAG_PLANAR); > + ctx->hsub = desc->log2_chroma_w; > + ctx->vsub = desc->log2_chroma_h; > + > + err = ff_opencl_filter_load_program(avctx, &ff_opencl_source_pad, 1); > + if (err < 0) > + goto fail; > + > ... I tested a bit on Mali and everything else LGTM. Thanks, - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".