1From 445998e2ff286e38d1113dd47fabca0b99bcc49c Mon Sep 17 00:00:00 2001
2From: Jeffy Chen <jeffy.chen@rock-chips.com>
3Date: Thu, 20 Jun 2019 12:43:20 +0800
4Subject: [PATCH 05/33] kmssink: Request window handle
5
6Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
7---
8 sys/kms/gstkmssink.c | 13 +++++++++++++
9 sys/kms/gstkmssink.h |  2 ++
10 2 files changed, 15 insertions(+)
11
12diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
13index 53bf4a1..0cb2bb6 100644
14--- a/sys/kms/gstkmssink.c
15+++ b/sys/kms/gstkmssink.c
16@@ -165,11 +165,22 @@ gst_kms_sink_expose (GstVideoOverlay * overlay)
17   gst_kms_sink_show_frame (GST_VIDEO_SINK (self), NULL);
18 }
19
20+static void
21+gst_kms_sink_set_window_handle (GstVideoOverlay * overlay, guintptr handle)
22+{
23+  GstKMSSink *self = GST_KMS_SINK (overlay);
24+
25+  g_return_if_fail (self != NULL);
26+
27+  self->window_handle = handle;
28+}
29+
30 static void
31 gst_kms_sink_video_overlay_init (GstVideoOverlayInterface * iface)
32 {
33   iface->expose = gst_kms_sink_expose;
34   iface->set_render_rectangle = gst_kms_sink_set_render_rectangle;
35+  iface->set_window_handle = gst_kms_sink_set_window_handle;
36 }
37
38 static int
39@@ -1160,6 +1171,8 @@ gst_kms_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
40   }
41   GST_OBJECT_UNLOCK (self);
42
43+  gst_video_overlay_prepare_window_handle (GST_VIDEO_OVERLAY (bsink));
44+
45   GST_DEBUG_OBJECT (self, "negotiated caps = %" GST_PTR_FORMAT, caps);
46
47   return TRUE;
48diff --git a/sys/kms/gstkmssink.h b/sys/kms/gstkmssink.h
49index 428c057..0fccfa2 100644
50--- a/sys/kms/gstkmssink.h
51+++ b/sys/kms/gstkmssink.h
52@@ -93,6 +93,8 @@ struct _GstKMSSink {
53   /* reconfigure info if driver doesn't scale */
54   GstVideoRectangle pending_rect;
55   gboolean reconfigure;
56+
57+  guintptr window_handle;
58 };
59
60 struct _GstKMSSinkClass {
61--
622.20.1
63
64