summaryrefslogtreecommitdiff
path: root/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch')
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch
deleted file mode 100644
index 691ac84..0000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0030-kmssink-check-scaleable-when-set_caps.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From b1886be721be792c98f17af31dd8c144754e05be Mon Sep 17 00:00:00 2001
-From: Haihua Hu <jared.hu@nxp.com>
-Date: Wed, 12 Jul 2017 10:17:18 +0800
-Subject: [PATCH 3/3] [MMFMWK-7567] kmssink: check scaleable when set_caps
-
-when video size is same as display resolution, show frame will not do
-retry because the setplane will never fail. But the scale result is not
-correct. We can do this check by set a fake plane.
-
-Upstream-Status: Inappropriate [i.MX specific]
-
----
- sys/kms/gstkmssink.c | 38 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
-diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
-index 6d9b765..65fdc4f 100644
---- a/sys/kms/gstkmssink.c
-+++ b/sys/kms/gstkmssink.c
-@@ -402,6 +402,42 @@ get_drm_caps (GstKMSSink * self)
- return TRUE;
- }
-
-+static void
-+check_scaleable (GstKMSSink * self)
-+{
-+ gint result;
-+ guint32 fb_id;
-+ guint32 width, height;
-+ GstKMSMemory *kmsmem = NULL;
-+
-+ if (!self->can_scale)
-+ return;
-+
-+ if (self->conn_id < 0)
-+ return;
-+
-+ kmsmem = (GstKMSMemory *) gst_kms_allocator_bo_alloc (self->allocator, &self->vinfo);
-+ if (!kmsmem)
-+ return;
-+
-+ fb_id = kmsmem->fb_id;
-+
-+ GST_INFO_OBJECT (self, "checking scaleable");
-+
-+ width = GST_VIDEO_INFO_WIDTH (&self->vinfo);
-+ height = GST_VIDEO_INFO_HEIGHT (&self->vinfo);
-+
-+ result = drmModeSetPlane (self->fd, self->plane_id, self->crtc_id, fb_id, 0,
-+ 0, 0, width/2, height/2,
-+ 0, 0, width << 16, height << 16);
-+ if (result) {
-+ self->can_scale = FALSE;
-+ GST_INFO_OBJECT (self, "scale is not support");
-+ }
-+
-+ g_clear_pointer (&kmsmem, gst_memory_unref);
-+}
-+
- static gboolean
- configure_mode_setting (GstKMSSink * self, GstVideoInfo * vinfo)
- {
-@@ -977,6 +1013,8 @@ gst_kms_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-
- self->vinfo = vinfo;
-
-+ check_scaleable (self);
-+
- GST_OBJECT_LOCK (self);
- if (self->reconfigure) {
- self->reconfigure = FALSE;
---
-1.9.1
-