[FFmpeg-devel] [PATCH]lavu/hwaccel_vaapi: Add a fixme for the missing byte_order check
wm4
nfxjfg at googlemail.com
Thu Oct 6 14:45:25 EEST 2016
On Thu, 6 Oct 2016 10:34:35 +0100
Mark Thompson <sw at jkqxz.net> wrote:
> On 06/10/16 09:05, Carl Eugen Hoyos wrote:
> > 2016-10-05 21:55 GMT+02:00 Mark Thompson <sw at jkqxz.net>:
> >
> > What I meant is:
> > How can "LE" make sense for an 8bit planar format?
>
> It does not. So, another reason to ignore that field.
>
> > (And what does it tell us about the author?)
> > This of course assumes that "YV12" is planar, if it
> > isn't, I simply misunderstand the whole code.
>
> Yes, YV12 is planar: it is ffmpeg YUV420P with the two chroma planes swapped.
>
> >> For example, I can do screen capture in X with:
> >>
> >> ffmpeg -y -vaapi_device /dev/dri/renderD128 -video_size 1920x1080 -framerate 30 -f x11grab -i :0 -vf 'hwupload,scale_vaapi=1920:1080:nv12' -c:v h264_vaapi out.mp4
> >>
> >> which captures in bgr0, uploads it to the GPU, converts it to
> >> nv12 and encodes it as H.264 there. Alternatively, I can add
> >> 'format=rgb0' at the start of the filter chain to convert and
> >> upload in a different RGB format, and that produces the
> >> correct output too.
> >
> > Thank you for confirming this.
> >
> > Do you think vaapi's P010 should be mapped to FFmpeg's
> > P010LE instead of P010?
>
> P010 is defined as format with a 16-bit unit size, so the native format on a BE
> system should be P010BE. I admit that confusion is likely, though, given that
> the actual hardware may be a graphics card which normally works with an LE host.
> We may need to look somewhere else for the answer at that point (possibly the
> byte_order field, assuming the drivers manage to fill it correctly in such cases).
>
> I would prefer to only consider this problem once we have some working system to
> test on. On the other hand, if you wish to submit a patch changing it now I
> would not mind - it would have no effect on current use because the one system
> with working 10-bit support is LE-only.
Is it even theoretically possible to have hardware using vaapi on big
endian systems? vaapi is for modern Intel GPUs, which AFAIK are all
little endian.
More information about the ffmpeg-devel
mailing list