2017-01-26 16:36 GMT+01:00 Christian König <deathsim...@vodafone.de>:
> Am 26.01.2017 um 12:16 schrieb Peter Frühberger: > > Hi Christian, > > 2017-01-26 12:00 GMT+01:00 Christian König <deathsim...@vodafone.de>: > >> Hi Peter, >> >> Am 25.01.2017 um 19:45 schrieb Peter Frühberger: >> >>> >>> >>> Peter, Rainer any idea what I'm missing here? Do you guys use some >>> modified ffmpeg for Kodi or how does that work for you? >>> >>> >>> do you set the format correctly, e.g.: >>> <https://github.com/FernetMenta/kodi-agile/blob/master/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp#L2697> >>> https://github.com/FernetMenta/kodi-agile/blob/master/xbmc/c >>> ores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp#L2697 to create the surfaces? >>> >> >> Well the problem here is that the VA-API interface is not consistent and >> I'm not sure how to implement it correctly. >> >> See your code for example: >> >>> VASurfaceAttrib attribs[1], *attrib; >>> >>> attrib = attribs; >>> >>> attrib->flags = VA_SURFACE_ATTRIB_SETTABLE; >>> >>> attrib->type = VASurfaceAttribPixelFormat; >>> >>> attrib->value.type = VAGenericValueTypeInteger; >>> >>> attrib->value.value.i = VA_FOURCC_NV12; >>> >>> >>> >> First Kodi specifies that NV12 should be used which implies that this is >> a 8bit surface. >> >> // create surfaces >>> >>> VASurfaceID surfaces[32]; >>> >>> unsigned int format = VA_RT_FORMAT_YUV420; >>> >>> if (m_config.profile == VAProfileHEVCMain10) >>> >>> format = VA_RT_FORMAT_YUV420_10BPP; >>> >> But then Kodi requests a 10bit surface. Now what is the correct thing to >> do here? >> >> I can either create an NV12 surface, which would be 8bit but would result >> in either an error message or only 8bit dithering during decode. >> >> Or I can promote the surface to 10bit, which would result in a P010 or >> rather P016 format. >> >> Or and that is actually what I think would be best the VA-API driver >> should trow an error indicating that the application requested something >> impossible. > > > Yes you are right. Looks like a driver specific: > <https://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n1338> > https://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_ > video.c#n1338 > > seems they use it as a hint to the subsampling: SUBSAMPLE_YUV420 and then > later compare with with the format again to choose. > > From code pov we should set the attribute to: VA_FOURCC_P010, right? > > > Yes, I think so. > > Christian. > Fixed via: https://github.com/FernetMenta/kodi-agile/commit/bb73b5535e2f4b65772451c23f75503d04de69ef thanks for the heads up Peter > > > > Regards > Peter > > > > >> >> >>> afterwards we just do drm / egl interop, via: >>> https://github.com/FernetMenta/kodi-agile/blob/master/xbmc/c >>> ores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp#L1374 >>> >> >> I'm not sure if that will ever work correctly. The problem is that VA-API >> leaks to the application what the data layout in the surface is. As soon as >> we turn on tilling that will only work with rather crude hacks. >> >> I will try to get it working, but probably need help from you guys as >> well. >> >> Regards, >> Christian. >> >> You need ffmpeg 3.2. >>> >>> If you use vaPutSurface it will end up as RGBA32 or something, which is >>> why we use the above way. >>> >>> Best regards >>> Peter >>> >>> >>> Cheers, >>> Christian. >>> >>> >>> >>> >>> >>> -- >>> Key-ID: 0x1A995A9B >>> keyserver: pgp.mit.edu < <http://pgp.mit.edu> >>> http://pgp.mit.edu> >>> ============================================================== >>> Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B DA07 CF63 1A99 5A9B >>> >> >> >> > > > -- > Key-ID: 0x1A995A9B > keyserver: pgp.mit.edu > ============================================================== > Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B DA07 CF63 1A99 5A9B > > > -- Key-ID: 0x1A995A9B keyserver: pgp.mit.edu ============================================================== Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B DA07 CF63 1A99 5A9B
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev