From: Leo Liu <leo....@amd.com>

Signed-off-by: Leo Liu <leo....@amd.com>
Signed-off-by: Christian König <christian.koe...@amd.com>
---
 src/gallium/state_trackers/omx/vid_enc.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/omx/vid_enc.c 
b/src/gallium/state_trackers/omx/vid_enc.c
index 1761bcb..6e65274 100644
--- a/src/gallium/state_trackers/omx/vid_enc.c
+++ b/src/gallium/state_trackers/omx/vid_enc.c
@@ -746,10 +746,24 @@ static OMX_ERRORTYPE 
vid_enc_EncodeFrame(omx_base_PortType *port, OMX_BUFFERHEAD
       views = vbuf->get_sampler_view_planes(vbuf);
       dst_surface = priv->scale_buffer->get_surfaces(priv->scale_buffer);
       vl_compositor_clear_layers(s);
+
       for (i = 0; i < VL_MAX_SURFACES; ++i) {
+         struct u_rect src_rect;
+
          if (!views[i] || !dst_surface[i])
             continue;
-         vl_compositor_set_rgba_layer(s, compositor, 0, views[i], NULL, NULL, 
NULL);
+
+         src_rect.x0 = 0;
+         src_rect.y0 = 0;
+         src_rect.x1 = port->sPortParam.format.video.nFrameWidth;
+         src_rect.y1 = port->sPortParam.format.video.nFrameHeight;
+
+         if (i > 0) {
+            src_rect.x1 /= 2;
+            src_rect.y1 /= 2;
+         }
+
+         vl_compositor_set_rgba_layer(s, compositor, 0, views[i], &src_rect, 
NULL, NULL);
          vl_compositor_render(s, compositor, dst_surface[i], NULL, false);
       }
       
-- 
1.8.3.2

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to