1From 94c32fccde6eb7de6858624e23bb1f567c6e3d35 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Tue, 20 Nov 2018 17:33:22 +0800 4Subject: [PATCH 04/41] kmssink: Support render rectangle for plane 5 6Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 7--- 8 sys/kms/gstkmssink.c | 12 +++++++++++- 9 1 file changed, 11 insertions(+), 1 deletion(-) 10 11diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c 12index 16d4afb..797f57c 100644 13--- a/sys/kms/gstkmssink.c 14+++ b/sys/kms/gstkmssink.c 15@@ -776,6 +776,9 @@ configure_mode_setting (GstKMSSink * self, GstVideoInfo * vinfo) 16 if (err) 17 goto modesetting_failed; 18 19+ self->hdisplay = mode->hdisplay; 20+ self->vdisplay = mode->vdisplay; 21+ 22 g_clear_pointer (&self->tmp_kmsmem, gst_memory_unref); 23 self->tmp_kmsmem = (GstMemory *) kmsmem; 24 25@@ -1921,7 +1924,14 @@ gst_kms_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf) 26 GST_OBJECT_LOCK (self); 27 if (self->modesetting_enabled) { 28 self->buffer_id = fb_id; 29- goto sync_frame; 30+ 31+ if (!self->render_rect.w || !self->render_rect.h) 32+ goto sync_frame; 33+ 34+ if (!self->render_rect.x && !self->render_rect.y && 35+ self->render_rect.w == self->hdisplay && 36+ self->render_rect.h == self->vdisplay) 37+ goto sync_frame; 38 } 39 40 if ((crop = gst_buffer_get_video_crop_meta (buffer))) { 41-- 422.20.1 43 44