<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Am 26.01.2017 um 16:59 schrieb Peter
Frühberger:<br>
</div>
<blockquote
cite="mid:CAMQ1+vz=_ufX+4spU5Ct78xtWXQ=kd+g-t1hBePF_pDbm3CLhA@mail.gmail.com"
type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-01-26 16:36 GMT+01:00 Christian
König <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:deathsimple@vodafone.de" target="_blank">deathsimple@vodafone.de</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div>
<div class="gmail-h5">
<div
class="gmail-m_-2562674618279224764moz-cite-prefix">Am
26.01.2017 um 12:16 schrieb Peter Frühberger:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Christian,
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-01-26 12:00
GMT+01:00 Christian König <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:deathsimple@vodafone.de"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:deathsimple@vodafone.de">deathsimple@vodafone.de</a></a>></span>:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Hi
Peter,<span
class="gmail-m_-2562674618279224764gmail-"><br>
<br>
Am 25.01.2017 um 19:45 schrieb Peter
Frühberger:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"> <br>
<br>
Peter, Rainer any idea what I'm
missing here? Do you guys use some<br>
modified ffmpeg for Kodi or how
does that work for you?<br>
<br>
<br>
do you set the format correctly, e.g.:
<a moz-do-not-send="true"
class="gmail-m_-2562674618279224764moz-txt-link-freetext"
href="https://github.com/FernetMenta" target="_blank">https://github.com/FernetMenta</a><wbr>/kodi-agile/blob/master/xbmc/c<wbr>ores/VideoPlayer/DVDCodecs/Vid<wbr>eo/VAAPI.cpp#L2697
to create the surfaces?<br>
</blockquote>
<br>
</span> Well the problem here is that the
VA-API interface is not consistent and I'm
not sure how to implement it correctly.<br>
<br>
See your code for example:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
VASurfaceAttrib attribs[1], *attrib;<br>
<br>
attrib = attribs;<br>
<br>
attrib->flags =
VA_SURFACE_ATTRIB_SETTABLE;<br>
<br>
attrib->type =
VASurfaceAttribPixelFormat;<br>
<br>
attrib->value.type =
VAGenericValueTypeInteger;<br>
<br>
attrib->value.value.i =
VA_FOURCC_NV12;<br>
<br>
<br>
</blockquote>
<br>
First Kodi specifies that NV12 should be
used which implies that this is a 8bit
surface.<br>
<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"> //
create surfaces<br>
<br>
VASurfaceID surfaces[32];<br>
<br>
unsigned int format =
VA_RT_FORMAT_YUV420;<br>
<br>
if (m_config.profile ==
VAProfileHEVCMain10)<br>
<br>
format = VA_RT_FORMAT_YUV420_10BPP;<br>
</blockquote>
But then Kodi requests a 10bit surface.
Now what is the correct thing to do here?<br>
<br>
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.<br>
<br>
Or I can promote the surface to 10bit,
which would result in a P010 or rather
P016 format.<br>
<br>
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.</blockquote>
<div><br>
</div>
<div>Yes you are right. Looks like a driver
specific: <a moz-do-not-send="true"
class="gmail-m_-2562674618279224764moz-txt-link-freetext"
href="https://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n1338"
target="_blank">https://cgit.<wbr>freedesktop.org/vaapi/intel-<wbr>driver/tree/src/i965_drv_<wbr>video.c#n1338</a></div>
<div><br>
</div>
<div>seems they use it as a hint to the
subsampling: <span
style="color:rgb(0,0,0);font-size:13.3333px">SUBSAMPLE_YUV420 </span><wbr>and
then later compare with with the format
again to choose.</div>
<div><br>
</div>
<div>From code pov we should set the
attribute to: <span
style="color:rgb(0,0,0);font-size:13.3333px">VA_FOURCC_P010</span>,
right?</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</div>
Yes, I think so.<span class="gmail-HOEnZb"><font
color="#888888"><br>
<br>
Christian.</font></span></div>
</blockquote>
<div><br>
</div>
<div>Fixed via: <a moz-do-not-send="true"
href="https://github.com/FernetMenta/kodi-agile/commit/bb73b5535e2f4b65772451c23f75503d04de69ef">https://github.com/FernetMenta/kodi-agile/commit/bb73b5535e2f4b65772451c23f75503d04de69ef</a></div>
<div>thanks for the heads up</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
Great! Thanks a lot for cleaning that up so quickly.<br>
<br>
In that case I will just respond to such nonsense combinations with
an error result.<br>
<br>
Christian.<br>
<br>
<blockquote
cite="mid:CAMQ1+vz=_ufX+4spU5Ct78xtWXQ=kd+g-t1hBePF_pDbm3CLhA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>Peter</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"><span class="gmail-"><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>Regards</div>
<div>Peter</div>
<div><span
style="color:rgb(0,0,0);font-size:13.3333px"><br>
</span></div>
<div><span
style="color:rgb(0,0,0);font-size:13.3333px"><br>
</span></div>
<div><br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"><span
class="gmail-m_-2562674618279224764gmail-"><br>
<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"> <br>
afterwards we just do drm / egl interop,
via:<br>
<a moz-do-not-send="true"
href="https://github.com/FernetMenta/kodi-agile/blob/master/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp#L1374"
rel="noreferrer" target="_blank">https://github.com/FernetMenta<wbr>/kodi-agile/blob/master/xbmc/c<wbr>ores/VideoPlayer/DVDCodecs/Vid<wbr>eo/VAAPI.cpp#L1374</a>
<br>
</blockquote>
<br>
</span> 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.<br>
<br>
I will try to get it working, but probably
need help from you guys as well.<br>
<br>
Regards,<br>
Christian.<br>
<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"><span
class="gmail-m_-2562674618279224764gmail-">
You need ffmpeg 3.2.<br>
<br>
If you use vaPutSurface it will end up
as RGBA32 or something, which is why we
use the above way.<br>
<br>
Best regards<br>
Peter<br>
<br>
<br>
Cheers,<br>
Christian.<br>
<br>
<br>
<br>
<br>
<br>
-- <br>
Key-ID: 0x1A995A9B<br>
</span> keyserver: <a
moz-do-not-send="true"
href="http://pgp.mit.edu"
rel="noreferrer" target="_blank">pgp.mit.edu</a>
<<a moz-do-not-send="true"
class="gmail-m_-2562674618279224764moz-txt-link-freetext"
href="http://pgp.mit.edu"
target="_blank">http://pgp.mit.edu</a>><span
class="gmail-m_-2562674618279224764gmail-"><br>
==============================<wbr>==============================<wbr>==<br>
Fingerprint: 4606 DA19 EC2E 9A0B 0157
C81B DA07 CF63 1A99 5A9B<br>
</span></blockquote>
<br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div
class="gmail-m_-2562674618279224764gmail_signature">
Key-ID: 0x1A995A9B<br>
keyserver: <a
moz-do-not-send="true"
href="http://pgp.mit.edu" target="_blank">pgp.mit.edu</a><br>
==============================<wbr>==============================<wbr>==<br>
Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B
DA07 CF63 1A99 5A9B</div>
</div>
</div>
</blockquote>
<p><br>
</p>
</span></div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature"> Key-ID:
0x1A995A9B<br>
keyserver: <a moz-do-not-send="true"
href="http://pgp.mit.edu" target="_blank">pgp.mit.edu</a><br>
==============================================================<br>
Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B DA07 CF63 1A99
5A9B</div>
</div>
</div>
</blockquote>
<p><br>
</p>
</body>
</html>