<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hi Leo,<br>
<br>
nice catch patch is Reviewed-by: Christian König
<a class="moz-txt-link-rfc2396E" href="mailto:christian.koenig@amd.com"><christian.koenig@amd.com></a>.<br>
<br>
<blockquote type="cite">
<p>But we still need to fix transcoding issue with interlaced as
true. Our transcode support tunneling, basic the decode buffer
will be used directly for encode.</p>
</blockquote>
Ah, yes of course. Sorry I was a bit fast with giving my rb on
that, should have thought about it more.<br>
<br>
The problem is that the VCE engine can only handle progressive
frames and not the interlaced memory layout.<br>
<br>
What we should do is implementing interlaced -> progressive
conversion in the omx state tracker tunneling handling when that
happens. Then set interlaced to false in the template and
reallocate the video buffer for the next trancoding round.<br>
<br>
The weave filter from the compositor could be used for interlaced
-> progressive conversion. And btw: We are going to have the
same problem with the VA-API state tracker.<br>
<br>
Regards,<br>
Christian.<br>
<br>
Am 28.06.2016 um 09:01 schrieb Julien Isorce:<br>
</div>
<blockquote
cite="mid:CAHWPjbUDu_xX1+43hF82CYn4BsEw48rbyd+SUtgEfKn+91K+tg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Thx Leo.<br>
</div>
<div>
<div>I confirm it works with nouveau driver so your fix is:<br>
Tested-by: Julien Isorce <<a moz-do-not-send="true"
href="mailto:j.isorce@samsung.com">j.isorce@samsung.com</a>><br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 28 June 2016 at 02:27, Liu, Leo <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:Leo.Liu@amd.com" target="_blank">Leo.Liu@amd.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div
style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hi Julien and Christian,</p>
<p><br>
</p>
<p>I got a patch attached to fix the "fillout" problem,
and please review.</p>
<p><br>
</p>
<p>But we still need to fix transcoding issue with
interlaced as true. Our transcode support tunneling,
basic the decode buffer will be used directly for
encode.</p>
<p><br>
</p>
<p>Thanks,</p>
<p>Leo</p>
<p><br>
</p>
<p><br>
</p>
</div>
<hr style="display:inline-block;width:98%">
<div dir="ltr"><font style="font-size:11pt"
color="#000000" face="Calibri, sans-serif"><b>From:</b>
Julien Isorce <<a moz-do-not-send="true"
href="mailto:julien.isorce@gmail.com"
target="_blank">julien.isorce@gmail.com</a>><br>
<b>Sent:</b> June 27, 2016 4:54:07 PM<br>
<b>To:</b> Liu, Leo<br>
<b>Cc:</b> ML mesa-dev; Gurkirpal Singh; Koenig,
Christian<br>
<b>Subject:</b> Re: [Mesa-dev] [PATCH 2/3] st/omx: add
support for nouveau / interlaced</font>
<div> </div>
</div>
<div>
<div class="h5">
<div>
<div dir="ltr">
<div>
<div>
<div>
<div>Hi Leo,<br>
<br>
</div>
Sorry for the inconvenience, could you let
me know how to reproduce the problem ?<br>
</div>
I have been playing with some gst pipelines
and they all work but I can only test with
nouveau driver.<br>
<br>
</div>
Cheers<br>
</div>
Julien<br>
<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 27 June 2016 at 21:35,
Leo Liu <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:leo.liu@amd.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:leo.liu@amd.com">leo.liu@amd.com</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
This patch break omx decode to file, it got
seg fault. Will take look further.<br>
<br>
Regards,<br>
Leo
<div>
<div><br>
<br>
<br>
On 06/27/2016 04:16 AM, Julien Isorce
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
Signed-off-by: Julien Isorce <<a
moz-do-not-send="true"
href="mailto:j.isorce@samsung.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:j.isorce@samsung.com">j.isorce@samsung.com</a></a>><br>
---<br>
src/gallium/state_trackers/omx/vid_dec.c
| 51 ++++++++++++++++----------------<br>
1 file changed, 26 insertions(+), 25
deletions(-)<br>
<br>
diff --git
a/src/gallium/state_trackers/omx/vid_dec.c
b/src/gallium/state_trackers/omx/vid_dec.c<br>
index 564ca2f..85ffb88 100644<br>
---
a/src/gallium/state_trackers/omx/vid_dec.c<br>
+++
b/src/gallium/state_trackers/omx/vid_dec.c<br>
@@ -48,6 +48,7 @@<br>
#include "pipe/p_video_codec.h"<br>
#include "util/u_memory.h"<br>
#include "util/u_surface.h"<br>
+#include "vl/vl_video_buffer.h"<br>
#include "vl/vl_vlc.h"<br>
#include "entrypoint.h"<br>
@@ -515,34 +516,34 @@ static void
vid_dec_FillOutput(vid_dec_PrivateType
*priv, struct pipe_video_buff<br>
OMX_VIDEO_PORTDEFINITIONTYPE *def =
&port->sPortParam.format.video;<br>
struct pipe_sampler_view **views;<br>
- struct pipe_transfer *transfer;<br>
- struct pipe_box box = { };<br>
- uint8_t *src, *dst;<br>
+ unsigned i, j;<br>
+ unsigned width, height;<br>
views =
buf->get_sampler_view_planes(buf);<br>
- dst = output->pBuffer;<br>
-<br>
- box.width = def->nFrameWidth;<br>
- box.height = def->nFrameHeight;<br>
- box.depth = 1;<br>
-<br>
- src =
priv->pipe->transfer_map(priv->pipe,
views[0]->texture, 0,<br>
-
PIPE_TRANSFER_READ, &box,
&transfer);<br>
- util_copy_rect(dst,
views[0]->texture->format,
def->nStride, 0, 0,<br>
- box.width,
box.height, src, transfer->stride, 0,
0);<br>
- pipe_transfer_unmap(priv->pipe,
transfer);<br>
-<br>
- dst = ((uint8_t*)output->pBuffer)
+ (def->nStride * box.height);<br>
-<br>
- box.width = def->nFrameWidth / 2;<br>
- box.height = def->nFrameHeight /
2;<br>
-<br>
- src =
priv->pipe->transfer_map(priv->pipe,
views[1]->texture, 0,<br>
-
PIPE_TRANSFER_READ, &box,
&transfer);<br>
- util_copy_rect(dst,
views[1]->texture->format,
def->nStride, 0, 0,<br>
- box.width,
box.height, src, transfer->stride, 0,
0);<br>
- pipe_transfer_unmap(priv->pipe,
transfer);<br>
+ for (i = 0; i < 2 /* NV12 */;
i++) {<br>
+ if (!views[i]) continue;<br>
+ width = buf->width;<br>
+ height = buf->height;<br>
+
vl_video_buffer_adjust_size(&width,
&height, i, buf->interlaced,
buf->chroma_format);<br>
+ for (j = 0; j <
views[i]->texture->array_size;
++j) {<br>
+ struct pipe_box box = {0, 0,
j, width, height, 1};<br>
+ struct pipe_transfer
*transfer;<br>
+ uint8_t *map, *dst;<br>
+ map =
priv->pipe->transfer_map(priv->pipe,
views[i]->texture, 0,<br>
+ PIPE_TRANSFER_READ,
&box, &transfer);<br>
+ if (!map)<br>
+ return;<br>
+<br>
+ dst =
((uint8_t*)output->pBuffer +
output->nOffset) + j *
def->nStride + i * buf->width *
buf->height;<br>
+ util_copy_rect(dst,<br>
+
views[i]->texture->format,<br>
+ def->nStride *
views[i]->texture->array_size, 0,
0,<br>
+ box.width, box.height, map,
transfer->stride, 0, 0);<br>
+<br>
+
pipe_transfer_unmap(priv->pipe,
transfer);<br>
+ }<br>
+ }<br>
}<br>
static void
vid_dec_FrameDecoded(OMX_COMPONENTTYPE
*comp, OMX_BUFFERHEADERTYPE* input,<br>
</blockquote>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
mesa-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>