[FFmpeg-devel] [PATCH V10] libavfilter: add transpose_vaapi filter
Mark Thompson
sw at jkqxz.net
Thu Jan 24 01:33:01 EET 2019
On 17/01/2019 03:33, Zachary Zhou wrote:
> Swap width and height when do clock/cclock rotation
> Add reversal/hflip/vflip options
>
> ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
> -hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
> -c:v h264_vaapi output.h264
>
> Signed-off-by: Zachary Zhou <zachary.zhou at intel.com>
> ---
> configure | 2 +
> libavfilter/Makefile | 1 +
> libavfilter/allfilters.c | 1 +
> libavfilter/transpose.h | 3 +
> libavfilter/vf_transpose_vaapi.c | 316 +++++++++++++++++++++++++++++++
> 5 files changed, 323 insertions(+)
> create mode 100644 libavfilter/vf_transpose_vaapi.c
>
> ...
> +static int transpose_vaapi_vpp_config_output(AVFilterLink *outlink)
> +{
> + AVFilterContext *avctx = outlink->src;
> + VAAPIVPPContext *vpp_ctx = avctx->priv;
> + TransposeVAAPIContext *ctx = avctx->priv;
> + AVFilterLink *inlink = avctx->inputs[0];
> +
> + if ((inlink->w >= inlink->h && ctx->passthrough == TRANSPOSE_PT_TYPE_LANDSCAPE) ||
> + (inlink->w <= inlink->h && ctx->passthrough == TRANSPOSE_PT_TYPE_PORTRAIT)) {
> + av_log(avctx, AV_LOG_VERBOSE,
> + "w:%d h:%d -> w:%d h:%d (passthrough mode)\n",
> + inlink->w, inlink->h, inlink->w, inlink->h);
> + return 0;
> + }
This case was missing the propagation of the hw_frames_ctx to the next link, which is required for all following processing - I added it.
With that change - tested, LGTM, applied.
Thanks,
- Mark
More information about the ffmpeg-devel
mailing list