[FFmpeg-devel] [PATCH 2/3] lavu/hwcontext_qsv: Add support for pix_fmt RGB32.

Carl Eugen Hoyos ceffmpeg at gmail.com
Thu Mar 22 18:54:55 EET 2018


2018-03-22 16:05 GMT+01:00, Zhong Li <zhong.li at intel.com>:
> RGB32 format may be used as overlay with alpha blending.
> So add RGB32 format support.
>
> Signed-off-by: ChaoX A Liu <chaox.a.liu at intel.com>
> Signed-off-by: Zhong Li <zhong.li at intel.com>
> ---
>  libavutil/hwcontext_qsv.c | 43 +++++++++++++++++++++++++++++++++----------
>  1 file changed, 33 insertions(+), 10 deletions(-)
>
> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
> index 0fefec3..dcaf072 100644
> --- a/libavutil/hwcontext_qsv.c
> +++ b/libavutil/hwcontext_qsv.c
> @@ -90,6 +90,7 @@ static const struct {
>      uint32_t           fourcc;
>  } supported_pixel_formats[] = {
>      { AV_PIX_FMT_NV12, MFX_FOURCC_NV12 },
> +    { AV_PIX_FMT_RGB32,MFX_FOURCC_RGB4 },

Imo, AV_PIX_FMT_BGRA would be more readable.

And please kindly confirm that you did test this, the
description on https://software.intel.com/en-us/node/628506
is so misleading that it cannot easily be used a source.

[...]

> +        case AV_PIX_FMT_RGB32:
> +            surface->Data.B = frame->data[0];
> +            surface->Data.G = frame->data[0] + 1;
> +            surface->Data.R = frame->data[0] + 2;
> +            surface->Data.A = frame->data[0] + 3;

Does this mean every FFmpeg rgb pix_fmt could be
supported with the appropriate matrix?

Wouldn't this be very little code for a great performance
gain given the "wrong" input?

Thank you, Carl Eugen


More information about the ffmpeg-devel mailing list