From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fllnx209.ext.ti.com (fllnx209.ext.ti.com [198.47.19.16]) by arago-project.org (Postfix) with ESMTPS id 9A9C852970 for ; Wed, 28 Mar 2018 02:43:00 +0000 (UTC) Received: from dflxv15.itg.ti.com ([128.247.5.124]) by fllnx209.ext.ti.com (8.15.1/8.15.1) with ESMTP id w2S2gxfE020127 for ; Tue, 27 Mar 2018 21:42:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1522204979; bh=3DSw7vbI1BwfHjqeraPP6Fo7CtZl7CpaO7ortHCOaZo=; h=Date:From:To:CC:Subject:References:In-Reply-To; b=GdxzenVgbrWBL6ncFyW2XAaNIkcl+O/glvQkfucSmb3y54wuW9FfoQukP3x0ocBag NkvsiQv4RuEjpzxi5KPSjI/1kx9HMAbTxKC7nWpMOq3Cy2RFPmdjaz9/FIif89z1/Z EMfqkQT2ZUn4HHqDWGtfulQD0gnpupMN0qKQAnwg= Received: from DLEE104.ent.ti.com (dlee104.ent.ti.com [157.170.170.34]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id w2S2gx3S020651 for ; Tue, 27 Mar 2018 21:42:59 -0500 Received: from DLEE105.ent.ti.com (157.170.170.35) by DLEE104.ent.ti.com (157.170.170.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.35; Tue, 27 Mar 2018 21:42:59 -0500 Received: from dlep32.itg.ti.com (157.170.170.100) by DLEE105.ent.ti.com (157.170.170.35) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1261.35 via Frontend Transport; Tue, 27 Mar 2018 21:42:59 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep32.itg.ti.com (8.14.3/8.13.8) with ESMTP id w2S2gwZH005437; Tue, 27 Mar 2018 21:42:59 -0500 Date: Tue, 27 Mar 2018 22:42:58 -0400 From: Denys Dmytriyenko To: "Prasad, Ram" Message-ID: <20180328024258.GD21816@edge> References: <1521691605-49259-1-git-send-email-x0038811@ti.com> <1521691605-49259-6-git-send-email-x0038811@ti.com> <20180326011112.GC20556@edge> <10d158d6998f4875897287a39c19776d@ti.com> <20180326135232.GE20556@edge> <20180326163621.GK20556@edge> <20180326164722.GL20556@edge> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Cc: "meta-arago@arago-project.org" Subject: Re: [rocko 5/9] gstreamer1.0*-bad: Enable kmssink with gst 1.12 X-BeenThere: meta-arago@arago-project.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Arago metadata layer for TI SDKs - OE-Core/Yocto compatible List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Mar 2018 02:43:01 -0000 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline Correct, I made few fixes and pushed the series - it made the build test on rocko-next and it's now in rocko. Thanks. On Tue, Mar 27, 2018 at 07:19:57AM -0400, Prasad, Ram wrote: > Hi Denys, > I didn't intend to disable "faad" . Now I realized, this should have been > PACKAGECONFIG += "kms" otherwise it disables faad. > Thanks for pushing the patches to rocko-next branch with the correct fix. > > Thanks > Ramprasad > > -----Original Message----- > From: Dmytriyenko, Denys > Sent: Monday, March 26, 2018 10:17 PM > To: Prasad, Ram > Cc: meta-arago@arago-project.org > Subject: Re: [meta-arago] [rocko 5/9] gstreamer1.0*-bad: Enable kmssink > with gst 1.12 > > Which platforms support kms? Why are you disabling faad? > > On Mon, Mar 26, 2018 at 12:42:14PM -0400, Prasad, Ram wrote: > > Hi Denys, > > Yes, I want enable kmssink and only PACKAGECONFIG statement is > enabling > > kms. If I don't add this it won't compile kmssink. > > > > Ram > > > > -------- Original Message -------- > > From: "Dmytriyenko, Denys" > > Date: Mon 26 Mar, 2018, 10:06 PM > > To: "Prasad, Ram" > > CC: meta-arago@arago-project.org > > Subject: Re: [meta-arago] [rocko 5/9] gstreamer1.0*-bad: Enable > kmssink > > with gst 1.12 > > > > On Mon, Mar 26, 2018 at 09:52:32AM -0400, Denys Dmytriyenko wrote: > > > > > PACKAGECONFIG = "faad" > > > > > +PACKAGECONFIG = "kms" > > > > > > > > ^^^ This doesn't look right... > > > > > > Just see it in the context. > > > > Ramprasad, > > > > PACKAGECONFIG is a list of enabled options. Your change replaces > existing > > "faad" option with "kms" - maybe you meant to add it instead? > > > > Please let me know ASAP, as I want to merge the set for testing > today. > > Thanks. > > > > -- > > Denys > > > > > On Mon, Mar 26, 2018 at 09:49:54AM -0400, Prasad, Ram wrote: > > > > HI Denys, > > > > > +PACKAGECONFIG = "kms" > > > > This was required to make sure kms get compiled. > > > > Is it required to make this platform dependent PACKAGECONFIG? > > > > > > > > Ramprasad > > > > > > > > -----Original Message----- > > > > From: Dmytriyenko, Denys > > > > Sent: Monday, March 26, 2018 6:41 AM > > > > To: Prasad, Ram > > > > Cc: meta-arago@arago-project.org > > > > Subject: Re: [meta-arago] [rocko 5/9] gstreamer1.0*-bad: > Enable > > kmssink > > > > with gst 1.12 > > > > > > > > On Thu, Mar 22, 2018 at 09:36:41AM +0530, Ramprasad N wrote: > > > > > Signed-off-by: Ramprasad N > > > > > --- > > > > > ...Add-omapdrm-in-the-list-of-driver-modules.patch | 165 > > > > +++++++++++++++++++++ > > > > > .../gstreamer1.0-plugins-bad_1.12.2.bbappend | 5 +- > > > > > 2 files changed, 169 insertions(+), 1 deletion(-) create > mode > > 100644 > > > > > > > > meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ba > > > > > > d/0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.patch > > > > > > > > > > diff --git > > > > > > > > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins- > > > > > > bad/0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.patch > > > > > > > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins- > > > > > > bad/0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.patch > > > > > new file mode 100644 > > > > > index 0000000..2e4965c > > > > > --- /dev/null > > > > > +++ > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plug > > > > > +++ > > ins-bad/0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.pat > > > > > +++ ch > > > > > @@ -0,0 +1,165 @@ > > > > > +From 4ef13bc433d218f2ebcbe2e9b7853d10d7b9acbc Mon Sep 17 > > 00:00:00 > > > > > +2001 > > > > > +From: Ramprasad N > > > > > +Date: Tue, 6 Mar 2018 19:02:20 +0530 > > > > > +Subject: [PATCH 3/5] kmssink: Add omapdrm in the list of > driver > > > > > +modules > > > > > + > > > > > +In gstreamer-bad v1.12.2 kmssink plugin is available but > omapdrm > > > > > +driver is not added in the list of driver module. > > > > > + > > > > > +DRM and DMABUF are treated differently by gstreamer > eventhough > > they > > > > > +are based on fd allocator. > > > > > +GST1.12 has many changes to dmabuf allocator and hence DRM > and > > DMABUF > > > > > +will be treated differently. > > > > > + > > > > > +Added support for DRM buffer importing. Without this > addition, > > there > > > > > +will be frame-copy happens and slows down the playback. > > > > > + > > > > > +Signed-off-by: Ramprasad N > > > > > +--- > > > > > + sys/kms/Makefile.am | 1 + > > > > > + sys/kms/gstkmssink.c | 101 > > > > > +++++++++++++++++++++++++++++++++++++++++++++++++++- > > > > > + 2 files changed, 101 insertions(+), 1 deletion(-) > > > > > + > > > > > +diff --git a/sys/kms/Makefile.am b/sys/kms/Makefile.am > index > > > > > +a97cad1..063f5ef 100644 > > > > > +--- a/sys/kms/Makefile.am > > > > > ++++ b/sys/kms/Makefile.am > > > > > +@@ -23,6 +23,7 @@ libgstkms_la_LIBADD > = \ > > > > > + $(GST_ALLOCATORS_LIBS) \ > > > > > + $(GST_LIBS) \ > > > > > + $(KMS_DRM_LIBS) \ > > > > > ++ > > $(top_builddir)/gst-libs/gst/drm/libgstdrm-$(GST_API_VERSION).la \ > > > > > + $(NULL) > > > > > + > > > > > + libgstkms_la_LDFLAGS = \ > > > > > +diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c > index > > > > > +d19e19e..028bec6 100644 > > > > > +--- a/sys/kms/gstkmssink.c > > > > > ++++ b/sys/kms/gstkmssink.c > > > > > +@@ -85,7 +85,8 @@ static int > > > > > + kms_open (gchar ** driver) > > > > > + { > > > > > + static const char *drivers[] = { "i915", "radeon", > "nouveau", > > > > "vmwgfx", > > > > > +- "exynos", "amdgpu", "imx-drm", "rockchip", > "atmel-hlcdc", > > "msm" > > > > > ++ "exynos", "amdgpu", "imx-drm", "rockchip", > "atmel-hlcdc", > > "msm", > > > > > ++ "omapdrm" > > > > > + }; > > > > > + int i, fd = -1; > > > > > + > > > > > +@@ -1041,6 +1042,100 @@ set_cached_kmsmem (GstMemory * mem, > > GstMemory > > > > > +* kmsmem) } > > > > > + > > > > > + static gboolean > > > > > ++gst_kms_sink_import_drmbuf (GstKMSSink * self, GstBuffer * > > inbuf, > > > > > ++ GstBuffer ** outbuf) > > > > > ++{ > > > > > ++ gint prime_fds[GST_VIDEO_MAX_PLANES] = { 0, }; > > > > > ++ GstVideoMeta *meta; > > > > > ++ guint i, n_mem, n_planes; > > > > > ++ GstKMSMemory *kmsmem; > > > > > ++ guint mems_idx[GST_VIDEO_MAX_PLANES]; > > > > > ++ gsize mems_skip[GST_VIDEO_MAX_PLANES]; > > > > > ++ GstMemory *mems[GST_VIDEO_MAX_PLANES]; > > > > > ++ > > > > > ++ if (!self->has_prime_import) > > > > > ++ return FALSE; > > > > > ++ > > > > > ++ /* This will eliminate most non-dmabuf out there */ if > > > > > ++ (!gst_is_drm_memory (gst_buffer_peek_memory (inbuf, 0))) > > > > > ++ return FALSE; > > > > > ++ > > > > > ++ n_planes = GST_VIDEO_INFO_N_PLANES (&self->vinfo); > n_mem = > > > > > ++ gst_buffer_n_memory (inbuf); meta = > gst_buffer_get_video_meta > > > > > ++ (inbuf); > > > > > ++ > > > > > ++ GST_TRACE_OBJECT (self, "Found a drmbuf with %u planes > and %u > > > > memories", > > > > > ++ n_planes, n_mem); > > > > > ++ > > > > > ++ /* We cannot have multiple dmabuf per plane */ if > (n_mem > > > > > > ++ n_planes) > > > > > ++ return FALSE; > > > > > ++ g_assert (n_planes != 0); > > > > > ++ > > > > > ++ /* Update video info based on video meta */ if (meta) { > > > > > ++ GST_VIDEO_INFO_WIDTH (&self->vinfo) = meta->width; > > > > > ++ GST_VIDEO_INFO_HEIGHT (&self->vinfo) = meta->height; > > > > > ++ > > > > > ++ for (i = 0; i < meta->n_planes; i++) { > > > > > ++ GST_VIDEO_INFO_PLANE_OFFSET (&self->vinfo, i) = > > meta->offset[i]; > > > > > ++ GST_VIDEO_INFO_PLANE_STRIDE (&self->vinfo, i) = > > meta->stride[i]; > > > > > ++ } > > > > > ++ } > > > > > ++ > > > > > ++ /* Find and validate all memories */ for (i = 0; i < > > n_planes; > > > > > ++ i++) { > > > > > ++ guint length; > > > > > ++ > > > > > ++ if (!gst_buffer_find_memory (inbuf, > > > > > ++ GST_VIDEO_INFO_PLANE_OFFSET (&self->vinfo, i), > 1, > > > > > ++ &mems_idx[i], &length, &mems_skip[i])) > > > > > ++ return FALSE; > > > > > ++ > > > > > ++ mems[i] = gst_buffer_peek_memory (inbuf, mems_idx[i]); > > > > > ++ > > > > > ++ /* adjust for memory offset, in case data does not > > > > > ++ * start from byte 0 in the dmabuf fd */ > > > > > ++ mems_skip[i] += mems[i]->offset; > > > > > ++ > > > > > ++ /* And all memory found must be dmabuf */ > > > > > ++ if (!gst_is_drm_memory (mems[i])) > > > > > ++ return FALSE; > > > > > ++ } > > > > > ++ > > > > > ++ kmsmem = (GstKMSMemory *) get_cached_kmsmem (mems[0]); > if > > > > > ++ (kmsmem) { > > > > > ++ GST_LOG_OBJECT (self, "found KMS mem %p in DMABuf mem > %p > > with fb > > > > id = %d", > > > > > ++ kmsmem, mems[0], kmsmem->fb_id); > > > > > ++ goto wrap_mem; > > > > > ++ } > > > > > ++ > > > > > ++ for (i = 0; i < n_planes; i++) > > > > > ++ prime_fds[i] = gst_fd_memory_get_fd (mems[i]); > > > > > ++ > > > > > ++ GST_LOG_OBJECT (self, "found these prime ids: %d, %d, > %d, > > %d", > > > > prime_fds[0], > > > > > ++ prime_fds[1], prime_fds[2], prime_fds[3]); > > > > > ++ > > > > > ++ kmsmem = gst_kms_allocator_dmabuf_import > (self->allocator, > > > > prime_fds, > > > > > ++ n_planes, mems_skip, &self->vinfo); if (!kmsmem) > > > > > ++ return FALSE; > > > > > ++ > > > > > ++ GST_LOG_OBJECT (self, "setting KMS mem %p to DMABuf mem > %p > > with fb > > > > id = %d", > > > > > ++ kmsmem, mems[0], kmsmem->fb_id); set_cached_kmsmem > > (mems[0], > > > > > ++ GST_MEMORY_CAST (kmsmem)); > > > > > ++ > > > > > ++wrap_mem: > > > > > ++ *outbuf = gst_buffer_new (); > > > > > ++ if (!*outbuf) > > > > > ++ return FALSE; > > > > > ++ gst_buffer_append_memory (*outbuf, gst_memory_ref > > (GST_MEMORY_CAST > > > > > ++(kmsmem))); > > > > > ++ gst_buffer_add_parent_buffer_meta (*outbuf, inbuf); > > > > > ++ gst_buffer_copy_into (*outbuf, inbuf, > > GST_BUFFER_COPY_METADATA, 0, > > > > > ++-1); > > > > > ++ > > > > > ++ return TRUE; > > > > > ++} > > > > > ++static gboolean > > > > > + gst_kms_sink_import_dmabuf (GstKMSSink * self, GstBuffer * > > inbuf, > > > > > + GstBuffer ** outbuf) > > > > > + { > > > > > +@@ -1151,6 +1246,10 @@ gst_kms_sink_get_input_buffer > (GstKMSSink > > * > > > > self, GstBuffer * inbuf) > > > > > + return gst_buffer_ref (inbuf); > > > > > + > > > > > + buf = NULL; > > > > > ++ if (gst_kms_sink_import_drmbuf (self, inbuf, &buf)) > > > > > ++ return buf; > > > > > ++ > > > > > ++ buf = NULL; > > > > > + if (gst_kms_sink_import_dmabuf (self, inbuf, &buf)) > > > > > + return buf; > > > > > + > > > > > +-- > > > > > +1.9.1 > > > > > + > > > > > diff --git > > > > > > > > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins- > > > > > bad_1.12.2.bbappend > > > > > > > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins- > > > > > bad_1.12.2.bbappend > > > > > index 437689f..f99b81d 100644 > > > > > --- > > > > > > > > a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins- > > > > > bad_1.12.2.bbappend > > > > > +++ > > b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plug > > > > > +++ ins-bad_1.12.2.bbappend > > > > > @@ -1,6 +1,7 @@ > > > > > FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" > > > > > > > > > > PACKAGECONFIG = "faad" > > > > > +PACKAGECONFIG = "kms" > > > > > > > > ^^^ This doesn't look right... > > > > > > > > > # gstreamer is now also included on Keystone, be mindful of > any > > > > > Graphics dependencies > > > > > PACKAGECONFIG_append_omap-a15 = " > > > > > ${@bb.utils.contains('DISTRO_FEATURES','wayland','wayland','',d)}" > > > > > @@ -22,6 +23,7 @@ DEPENDS_append_ti33x = " \ > > SRC_URI_append_ti43x = " > > > > > \ > > > > > > file://0001-gstdrmallocator-Add-DRM-allocator-support.patch > > \ > > > > > file://0002-parsers-bug-fixes-on-parsers.patch \ > > > > > + > > > > > + > > file://0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.patch > > > > > + \ > > > > > " > > > > > > > > > > SRC_URI_append_ti33x = " \ > > > > > @@ -30,8 +32,9 @@ SRC_URI_append_ti33x = " \ > > > > > SRC_URI_append_omap-a15 = " \ > > > > > > file://0001-gstdrmallocator-Add-DRM-allocator-support.patch > > \ > > > > > file://0002-parsers-bug-fixes-on-parsers.patch \ > > > > > + > > > > > + > > file://0003-kmssink-Add-omapdrm-in-the-list-of-driver-modules.patch > > > > > + \ > > > > > " > > > > > > > > > > PACKAGE_ARCH = "${MACHINE_ARCH}" > > > > > > > > > > -PR = "r2" > > > > > +PR = "r3" > > > > > -- > > > > > 1.9.1 > > > > > > > > > > _______________________________________________ > > > > > meta-arago mailing list > > > > > meta-arago@arago-project.org > > > > > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago > > > _______________________________________________ > > > meta-arago mailing list > > > meta-arago@arago-project.org > > > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago