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