[FFmpeg-devel] [PATCH]lavu/hwaccel_vaapi: Add a fixme for the missing byte_order check

Mark Thompson sw at jkqxz.net
Wed Oct 5 17:39:56 EEST 2016


On 05/10/16 13:06, Carl Eugen Hoyos wrote:
> ---
> Hi!
> 
> I cannot test here but afaict, the current implementation of 
> vaapi_pix_fmt_from_fourcc() can't be correct.
> 
> Please comment, Carl Eugen
>
>  libavutil/hwcontext_vaapi.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
> index 92fa235..3319839 100644
> --- a/libavutil/hwcontext_vaapi.c
> +++ b/libavutil/hwcontext_vaapi.c
> @@ -92,6 +92,7 @@ typedef struct VAAPISurfaceMap {
>      }
>  // The map fourcc <-> pix_fmt isn't bijective because of the annoying U/V
>  // plane swap cases.  The frame handling below tries to hide these.
> +// FIXME: Take VAImageFormat->byte_order into account
>  static struct {
>      unsigned int fourcc;
>      unsigned int rt_format;
> --
> 1.7.10.4

Hi Carl,

Have you found / had reported to you some case which causes a problem here?  If
so, please could you offer some more detail about it (especially the driver
being used).

In the cases I know of, the VAImageFormat structures are are all hard-coded such
that the fourcc is really the only meaningful information in them:

*
<https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/state_trackers/va/image.c#n41>
* <https://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n246>

This is reflected by the use in hwcontext_vaapi.c, which only fetches the
driver's version of the structure in order to pass it back in vaCreateImage()
calls - the other fields are never touched at all.

So, I don't think this comment adds any value.

Thanks,

- Mark


PS:  Testing with mesa (or any other driver) on a big-endian machine would be
very welcome, if someone has the hardware to do it.



More information about the ffmpeg-devel mailing list