summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/state_trackers/omx_bellagio/vid_dec.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/omx_bellagio/vid_dec.c b/src/gallium/state_trackers/omx_bellagio/vid_dec.c
index 28741c09a42..f9fe19f63f0 100644
--- a/src/gallium/state_trackers/omx_bellagio/vid_dec.c
+++ b/src/gallium/state_trackers/omx_bellagio/vid_dec.c
@@ -602,6 +602,7 @@ static void vid_dec_FrameDecoded(OMX_COMPONENTTYPE *comp, OMX_BUFFERHEADERTYPE*
/* re-allocate the progressive buffer */
omx_base_video_PortType *port;
struct pipe_video_buffer templat = {};
+ struct u_rect src_rect, dst_rect;
port = (omx_base_video_PortType *)
priv->ports[OMX_BASE_FILTER_INPUTPORT_INDEX];
@@ -614,8 +615,14 @@ static void vid_dec_FrameDecoded(OMX_COMPONENTTYPE *comp, OMX_BUFFERHEADERTYPE*
new_vbuf = priv->pipe->create_video_buffer(priv->pipe, &templat);
/* convert the interlaced to the progressive */
- vl_compositor_yuv_deint(&priv->cstate, &priv->compositor,
- input->pInputPortPrivate, new_vbuf);
+ src_rect.x0 = dst_rect.x0 = 0;
+ src_rect.x1 = dst_rect.x1 = templat.width;
+ src_rect.y0 = dst_rect.y0 = 0;
+ src_rect.y1 = dst_rect.y1 = templat.height;
+
+ vl_compositor_yuv_deint_full(&priv->cstate, &priv->compositor,
+ input->pInputPortPrivate, new_vbuf,
+ &src_rect, &dst_rect, VL_COMPOSITOR_WEAVE);
/* set the progrssive buffer for next round */
vbuf->destroy(vbuf);