All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20
@ 2023-12-06 14:36 Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 1/4] gstreamer1.0-plugins-bad: Add patches to support DRM allocator Sinthu Raja
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Sinthu Raja @ 2023-12-06 14:36 UTC (permalink / raw)
  To: reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

From: Sinthu Raja <sinthu.raja@ti.com>

Hi All,
This patch series add supports to gstreamer 1.20 plugins-bad for AM57x
platform and also it enables the mmip along with VPE and Ducati plugins.

Sinthu Raja (4):
  gstreamer1.0-plugins-bad: Add patches to support DRM allocator
  gst-plugins-ti: Enable network task flag for do_configure
  ti-test: Remove OAMP-DRM test
  branding-core: enable mmip for AM57x platform

 .../conf/distro/include/branding-core.inc     |   3 -
 .../gstreamer1.0-plugins-ducati_git.bb        |   2 +
 .../gstreamer1.0-plugins-vpe_git.bb           |   2 +
 ...mallocator-Add-DRM-allocator-support.patch | 367 ++++++++++++++++++
 ...drm-and-tidss-in-the-list-of-drivers.patch | 160 ++++++++
 .../gstreamer1.0-plugins-bad_1.20.%.bbappend  |  15 +
 .../recipes-core/packagegroups/ti-test.bb     |   3 -
 7 files changed, 546 insertions(+), 6 deletions(-)
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend

-- 
2.36.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [meta-arago][krikstone][PATCH RFC 1/4] gstreamer1.0-plugins-bad: Add patches to support DRM allocator
  2023-12-06 14:36 [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20 Sinthu Raja
@ 2023-12-06 14:36 ` Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure Sinthu Raja
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Sinthu Raja @ 2023-12-06 14:36 UTC (permalink / raw)
  To: reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

From: Sinthu Raja <sinthu.raja@ti.com>

Add patches to support the DRM based allocator support for the
gst-plugins-bad which is needed for the OMAP DRM

Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
---
 ...mallocator-Add-DRM-allocator-support.patch | 367 ++++++++++++++++++
 ...drm-and-tidss-in-the-list-of-drivers.patch | 160 ++++++++
 .../gstreamer1.0-plugins-bad_1.20.%.bbappend  |  15 +
 3 files changed, 542 insertions(+)
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch
 create mode 100644 meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend

diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch
new file mode 100644
index 00000000..35f49e9f
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch
@@ -0,0 +1,367 @@
+From 481d4192c3a64d02cc5cb11c20b611dd3f8d4f0a Mon Sep 17 00:00:00 2001
+From: Sinthu Raja <sinthu.raja@ti.com>
+Date: Thu, 7 Sep 2023 16:41:56 +0530
+Subject: [PATCH 1/2] gstdrmallocator: Add DRM allocator support
+
+Add DRM based allocator support.
+
+The following changes are included :
+1. Use DRM dumb buffers and associated APIs for
+   dmabuf allocation.
+2. Have DRM device fd a member of allocator object
+3. Allocate GstMemory objects with mem_type as 'dmabuf'
+4. Add meson build file
+
+Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
+---
+ gst-libs/gst/drm/gstdrmallocator.c | 206 +++++++++++++++++++++++++++++
+ gst-libs/gst/drm/gstdrmallocator.h |  77 +++++++++++
+ gst-libs/gst/drm/meson.build       |  26 ++++
+ gst-libs/gst/meson.build           |   1 +
+ 4 files changed, 310 insertions(+)
+ create mode 100644 gst-libs/gst/drm/gstdrmallocator.c
+ create mode 100644 gst-libs/gst/drm/gstdrmallocator.h
+ create mode 100644 gst-libs/gst/drm/meson.build
+
+diff --git a/gst-libs/gst/drm/gstdrmallocator.c b/gst-libs/gst/drm/gstdrmallocator.c
+new file mode 100644
+index 0000000..b557ad2
+--- /dev/null
++++ b/gst-libs/gst/drm/gstdrmallocator.c
+@@ -0,0 +1,206 @@
++/*
++ * GStreamer
++ *
++ * Copyright (C) 2012 Texas Instruments
++ *
++ * Authors:
++ *  Pooja Prajod <poojaprajod@ti.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation
++ * version 2.1 of the License.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++/**
++ * SECTION:GstDRMAllocator
++ * @short_description: GStreamer DRM allocator support
++ *
++ * Since: 1.6.3
++ */
++
++
++#include "gstdrmallocator.h"
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <sys/mman.h>
++#include <sys/types.h>
++
++#define INVALID_DRM_FD (-1)
++
++GST_DEBUG_CATEGORY (drmallocator_debug);
++#define GST_CAT_DEFAULT drmallocator_debug
++
++#define gst_drm_allocator_parent_class parent_class
++G_DEFINE_TYPE (GstDRMAllocator, gst_drm_allocator, GST_TYPE_FD_ALLOCATOR);
++
++static GstMemory *
++gst_drm_allocator_alloc (GstAllocator * allocator, gsize size,
++    GstAllocationParams * params)
++{
++  GstDRMAllocator *self = GST_DRM_ALLOCATOR (allocator);
++  int fd = -1;
++  int DrmDeviceFD = self->DrmDeviceFD;
++  GstMemory *mem;
++  /* Variable for DRM Dumb Buffers */
++
++  struct drm_mode_create_dumb creq;
++  struct drm_mode_destroy_dumb dreq;
++  int ret ;
++  
++  GST_LOG_OBJECT (self, "DRM Memory alloc");  
++  
++  memset(&creq, 0, sizeof(struct drm_mode_create_dumb));
++  /* 
++   We have only total size as argument to _allocator_alloc.
++   Since the DDR storage is linear, it is as good as saying
++   the buffer is of width = size and height = 1
++  */
++  creq.width = size;
++  creq.height = 1;
++  creq.bpp = 8;
++
++  /* Create a DRM dumb buffer */
++  ret = drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_CREATE_DUMB, &creq);
++  if (ret < 0) {
++    GST_ERROR_OBJECT (self, "Create DRM dumb buffer failed");
++    return NULL;
++  }
++  /* Get a dmabuf fd from the dumb buffer handle */
++  drmPrimeHandleToFD (DrmDeviceFD, creq.handle, DRM_CLOEXEC | O_RDWR, &fd);
++
++  if (fd < 0) {
++    GST_ERROR_OBJECT (self, "Invalid fd returned: %d", fd);
++    goto fail;
++  }
++
++  /* Get a dmabuf gstmemory with the fd */
++  mem = gst_fd_allocator_alloc (allocator, fd, size, 0);  
++
++  if (G_UNLIKELY (!mem)) {
++    GST_ERROR_OBJECT (self, "GstDmaBufMemory allocation failed");
++    close (fd);
++    goto fail;
++  }
++
++  return mem;
++
++  fail:
++    memset(&dreq, 0, sizeof(struct drm_mode_destroy_dumb));
++    dreq.handle = creq.handle;
++    drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_DESTROY_DUMB, &dreq);
++    return NULL;
++}
++
++static void
++gst_drm_allocator_free (GstAllocator * allocator, GstMemory * mem)
++{
++  GstDRMAllocator *self = GST_DRM_ALLOCATOR (allocator);
++  uint32_t handle = 0;
++  int DrmDeviceFD = self->DrmDeviceFD;
++  int fd = -1;
++
++  GST_LOG_OBJECT (self, "DRM Memory free");
++
++  g_return_if_fail (GST_IS_ALLOCATOR (allocator));
++  g_return_if_fail (mem != NULL);
++  g_return_if_fail (gst_is_drm_memory (mem));
++
++  fd = gst_fd_memory_get_fd (mem);
++  drmPrimeFDToHandle(DrmDeviceFD, fd, &handle);    
++
++  /* Incase there are some mapped memory, we unmap and ready it to be cleaned*/
++  GST_ALLOCATOR_CLASS (parent_class)->free (allocator, mem);
++
++  if (handle) {
++    struct drm_mode_destroy_dumb dreq;
++    memset(&dreq, 0, sizeof(struct drm_mode_destroy_dumb));
++    dreq.handle = handle;
++    drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_DESTROY_DUMB, &dreq);
++  }
++  
++  close (fd);
++}
++
++static void
++gst_drm_allocator_finalize (GObject * obj)
++{
++  GstDRMAllocator *self = GST_DRM_ALLOCATOR (obj);
++  GST_LOG_OBJECT (obj, "DRM Allocator finalize");
++
++  close (self->DrmDeviceFD);
++  self->DrmDeviceFD = INVALID_DRM_FD;
++
++  G_OBJECT_CLASS (parent_class)->finalize (obj);
++}
++
++static void
++gst_drm_allocator_class_init (GstDRMAllocatorClass * klass)
++{
++  GstAllocatorClass *drm_alloc = (GstAllocatorClass *) klass;
++
++  drm_alloc->alloc = GST_DEBUG_FUNCPTR (gst_drm_allocator_alloc);
++  drm_alloc->free = GST_DEBUG_FUNCPTR (gst_drm_allocator_free);
++  GST_DEBUG_CATEGORY_INIT (drmallocator_debug, "drmallocator", 0,
++    "GstDRMAllocator debug");
++
++}
++
++static void
++gst_drm_allocator_init (GstDRMAllocator * self)
++{
++  GstAllocator *alloc = GST_ALLOCATOR_CAST (self);
++  GObjectClass *object_class = G_OBJECT_CLASS (GST_DRM_ALLOCATOR_GET_CLASS(self));
++  
++  if (self->DrmDeviceFD <= 0) {
++    self->DrmDeviceFD = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
++    if (self->DrmDeviceFD < 0) {
++      GST_ERROR_OBJECT (self, "Failed to open DRM device");
++    } else {
++      drmDropMaster (self->DrmDeviceFD);
++    }
++  }
++
++  alloc->mem_type = GST_ALLOCATOR_DMABUF;
++
++  object_class->finalize = gst_drm_allocator_finalize;
++
++  GST_OBJECT_FLAG_UNSET (self, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
++}
++
++void
++gst_drm_allocator_register (void)
++{
++  gst_allocator_register (GST_ALLOCATOR_DRM,
++      g_object_new (GST_TYPE_DRM_ALLOCATOR, NULL));
++}
++
++GstAllocator *
++gst_drm_allocator_get (void)
++{
++  GstAllocator *alloc;
++  alloc = gst_allocator_find (GST_ALLOCATOR_DRM);
++  if (!alloc) {
++    gst_drm_allocator_register();
++    alloc = gst_allocator_find (GST_ALLOCATOR_DRM);
++  }
++  return alloc; 
++}
++
++gboolean
++gst_is_drm_memory (GstMemory * mem)
++{
++  return gst_memory_is_type (mem, GST_ALLOCATOR_DMABUF);
++}
+diff --git a/gst-libs/gst/drm/gstdrmallocator.h b/gst-libs/gst/drm/gstdrmallocator.h
+new file mode 100644
+index 0000000..3199b92
+--- /dev/null
++++ b/gst-libs/gst/drm/gstdrmallocator.h
+@@ -0,0 +1,77 @@
++/*
++ * GStreamer
++ *
++ * Copyright (C) 2012 Texas Instruments
++ *
++ * Authors:
++ *  Pooja Prajod <poojaprajod@ti.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation
++ * version 2.1 of the License.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++/**
++ * SECTION:GstDRMAllocator
++ * @short_description: GStreamer DRM allocator support
++ *
++ * Since: 1.6.3
++ */
++
++#ifndef __GSTDRMALLOCATOR_H__
++#define __GSTDRMALLOCATOR_H__
++
++#include <gst/gst.h>
++#include <gst/video/video.h>
++#include <gst/allocators/allocators.h>
++#include <stdint.h>
++
++#include <xf86drm.h>
++#include <xf86drmMode.h>
++#include <fcntl.h>
++
++G_BEGIN_DECLS
++
++#define GST_TYPE_DRM_ALLOCATOR                  (gst_drm_allocator_get_type ())
++#define GST_DRM_ALLOCATOR(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocator))
++#define GST_IS_DRM_ALLOCATOR(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DRM_ALLOCATOR))
++#define GST_DRM_ALLOCATOR_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocatorClass))
++#define GST_IS_DRM_ALLOCATOR_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DRM_ALLOCATOR))
++#define GST_DRM_ALLOCATOR_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocatorClass))
++
++#define GST_ALLOCATOR_DRM "DRM"
++
++typedef struct _GstDRMAllocator GstDRMAllocator;
++typedef struct _GstDRMAllocatorClass GstDRMAllocatorClass;
++
++struct _GstDRMAllocator
++{
++  GstFdAllocator parent;
++  int DrmDeviceFD;
++};
++
++struct _GstDRMAllocatorClass
++{
++  GstFdAllocatorClass parent_class;
++};
++
++GST_EXPORT void gst_drm_allocator_register (void);
++GST_EXPORT GstAllocator * gst_drm_allocator_get (void);
++
++GST_EXPORT gboolean gst_is_drm_memory (GstMemory * mem);
++
++GST_EXPORT GType gst_drm_allocator_get_type (void);
++
++G_END_DECLS
++
++#endif /* __GSTDRMALLOCATOR_H__ */
+diff --git a/gst-libs/gst/drm/meson.build b/gst-libs/gst/drm/meson.build
+new file mode 100644
+index 0000000..8b51ba6
+--- /dev/null
++++ b/gst-libs/gst/drm/meson.build
+@@ -0,0 +1,26 @@
++gstdrm_sources = [
++  'gstdrmallocator.c',
++]
++gstdrm_headers = [
++  'gstdrmallocator.h',
++]
++install_headers(gstdrm_headers, subdir : 'gstreamer-1.0/gst/drm')
++
++libdrm_dep = dependency('libdrm', version: '>= 2.4.55')
++if libdrm_dep.found()
++  gstdrm = library('gstdrm-' + api_version,
++    gstdrm_sources,
++    c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
++    include_directories : [configinc, libsinc],
++    version : libversion,
++    soversion : soversion,
++    darwin_versions : osxversion,
++    install : true,
++    dependencies : [gstbase_dep, gstallocators_dep, libdrm_dep],
++  )
++
++  gstdrm_dep = declare_dependency(link_with : gstdrm,
++    include_directories : [libsinc],
++    dependencies : [gstbase_dep, gstallocators_dep, libdrm_dep])
++endif
++
+diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build
+index 77dadcf..b47cf2d 100644
+--- a/gst-libs/gst/meson.build
++++ b/gst-libs/gst/meson.build
+@@ -4,6 +4,7 @@ subdir('adaptivedemux')
+ subdir('audio')
+ subdir('basecamerabinsrc')
+ subdir('codecparsers')
++subdir('drm')
+ subdir('codecs')
+ subdir('d3d11')
+ subdir('insertbin')
+-- 
+2.17.1
+
diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch
new file mode 100644
index 00000000..be925228
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch
@@ -0,0 +1,160 @@
+From db00b3c06c0dac755f22cb72123a29ccee204990 Mon Sep 17 00:00:00 2001
+From: Sinthu Raja <sinthu.raja@ti.com>
+Date: Thu, 7 Sep 2023 17:50:57 +0530
+Subject: [PATCH 2/2] kmssink: Add omapdrm and tidss in the list of drivers
+
+In gstreamer-bad kmssink plugin is available but
+omapdrm and tidss drivers are not added in the
+list of driver modules.
+
+Added support for DRM buffer importing. Without
+this addition, there will be frame-copy happens
+and slows down the playback.
+
+Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
+---
+ sys/kms/gstkmssink.c | 100 ++++++++++++++++++++++++++++++++++++++++++-
+ sys/kms/meson.build  |   2 +-
+ 2 files changed, 100 insertions(+), 2 deletions(-)
+
+diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
+index 788cefc..33a3150 100644
+--- a/sys/kms/gstkmssink.c
++++ b/sys/kms/gstkmssink.c
+@@ -178,7 +178,7 @@ kms_open (gchar ** driver)
+   static const char *drivers[] = { "i915", "radeon", "nouveau", "vmwgfx",
+     "exynos", "amdgpu", "imx-drm", "rockchip", "atmel-hlcdc", "msm",
+     "xlnx", "vc4", "meson", "sun4i-drm", "mxsfb-drm", "tegra",
+-    "xilinx_drm",               /* DEPRECATED. Replaced by xlnx */
++    "xilinx_drm", "omapdrm", "tidss",              /* DEPRECATED. Replaced by xlnx */
+   };
+   int i, fd = -1;
+ 
+@@ -1333,6 +1333,101 @@ event_failed:
+   }
+ }
+ 
++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 *) gst_kms_allocator_get_cached (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);
++  gst_kms_allocator_cache (self->allocator, 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);
++
++  return TRUE;
++}
++
++
++
+ static gboolean
+ gst_kms_sink_import_dmabuf (GstKMSSink * self, GstBuffer * inbuf,
+     GstBuffer ** outbuf)
+@@ -1546,6 +1641,9 @@ gst_kms_sink_get_input_buffer (GstKMSSink * self, GstBuffer * inbuf)
+   if (gst_is_kms_memory (mem))
+     return gst_buffer_ref (inbuf);
+ 
++    if (gst_kms_sink_import_drmbuf (self, inbuf, &buf))
++    goto done;
++
+   if (gst_kms_sink_import_dmabuf (self, inbuf, &buf))
+     goto done;
+ 
+diff --git a/sys/kms/meson.build b/sys/kms/meson.build
+index 20298b6..d4dcb27 100644
+--- a/sys/kms/meson.build
++++ b/sys/kms/meson.build
+@@ -17,7 +17,7 @@ if libdrm_dep.found()
+     kmssink_sources,
+     c_args : gst_plugins_bad_args,
+     include_directories : [configinc],
+-    dependencies : [gstbase_dep, gstvideo_dep, gstallocators_dep, libdrm_dep],
++    dependencies : [gstbase_dep, gstvideo_dep, gstallocators_dep, gstdrm_dep, libdrm_dep],
+     install : true,
+     install_dir : plugins_install_dir,
+   )
+-- 
+2.17.1
+
diff --git a/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend
new file mode 100644
index 00000000..c2f140a8
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+PACKAGECONFIG:append = " faad kms"
+
+GSTDRM_WAYLANDSINK_PATCHES = " \
+        file://0001-gstdrmallocator-Add-DRM-allocator-support.patch \
+        file://0002-kmssink-Add-omapdrm-and-tidss-in-the-list-of-drivers.patch \
+"
+
+SRC_URI:append:omap-a15 = " \
+    ${GSTDRM_WAYLANDSINK_PATCHES} \
+"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PR:append = ".arago0"
-- 
2.36.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure
  2023-12-06 14:36 [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20 Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 1/4] gstreamer1.0-plugins-bad: Add patches to support DRM allocator Sinthu Raja
@ 2023-12-06 14:36 ` Sinthu Raja
  2023-12-06 15:33   ` Ryan Eatmon
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform Sinthu Raja
  3 siblings, 1 reply; 10+ messages in thread
From: Sinthu Raja @ 2023-12-06 14:36 UTC (permalink / raw)
  To: reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

From: Sinthu Raja <sinthu.raja@ti.com>

The Ducati and VPE gst plugins requires network during the do_configure task
so, enable the network task flag for the same.

Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
---
 .../gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb           | 2 ++
 .../gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb              | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
index 1ff2dfb0..99a5615c 100644
--- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
+++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
@@ -18,4 +18,6 @@ SRC_URI = " \
     file://0001-gstducati-configure.ac-stop-using-export-symbols-reg.patch \
 "
 
+do_configure[network] = "1"
+
 FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
index 237031b1..25d4d9c2 100644
--- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
+++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
@@ -15,3 +15,5 @@ SRCREV = "b9dba5a8bc7d14d55125abdce04672e3dc30bbdf"
 SRC_URI = "git://git.ti.com/git/glsdk/gst-plugin-vpe.git;protocol=https \
            file://0001-gstvpe-configure.ac-stop-using-export-symbols-regex.patch \
 "
+
+do_configure[network] = "1"
-- 
2.36.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test
  2023-12-06 14:36 [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20 Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 1/4] gstreamer1.0-plugins-bad: Add patches to support DRM allocator Sinthu Raja
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure Sinthu Raja
@ 2023-12-06 14:36 ` Sinthu Raja
  2023-12-06 17:05   ` Andrew Davis
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform Sinthu Raja
  3 siblings, 1 reply; 10+ messages in thread
From: Sinthu Raja @ 2023-12-06 14:36 UTC (permalink / raw)
  To: reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

From: Sinthu Raja <sinthu.raja@ti.com>

The omapdrm test is outdated and the required test cases shall be executed
using the GST commands. Disable the same until the omapdrm test is updated.

Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
---
 meta-arago-test/recipes-core/packagegroups/ti-test.bb | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb b/meta-arago-test/recipes-core/packagegroups/ti-test.bb
index cf720c03..9a6dc67a 100644
--- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb
+++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb
@@ -87,15 +87,12 @@ TI_TEST_TI_TOOLS:append:ti43x = " \
     switch-config \
 "
 
-NOT_MAINLINE_MMIP_DEPS = "${@bb.utils.contains('MACHINE_FEATURES', 'mmip', 'omapdrmtest', '', d)}"
-
 TI_TEST_TI_TOOLS:append:omap-a15 = " \
     omapconf \
     pru-icss \
     switch-config \
     ${@oe.utils.conditional('ARAGO_BRAND', 'mainline', '', " \
         ti-ipc-test \
-	    ${NOT_MAINLINE_MMIP_DEPS} \
     ", d)} \
 "
 
-- 
2.36.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform
  2023-12-06 14:36 [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20 Sinthu Raja
                   ` (2 preceding siblings ...)
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test Sinthu Raja
@ 2023-12-06 14:36 ` Sinthu Raja
  2023-12-06 15:35   ` Ryan Eatmon
  3 siblings, 1 reply; 10+ messages in thread
From: Sinthu Raja @ 2023-12-06 14:36 UTC (permalink / raw)
  To: reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

From: Sinthu Raja <sinthu.raja@ti.com>

Now that the gstreamer plugins are enabled and ported to 1.20 enable
the mmip for AM57x platform

Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
---
 meta-arago-distro/conf/distro/include/branding-core.inc | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/meta-arago-distro/conf/distro/include/branding-core.inc b/meta-arago-distro/conf/distro/include/branding-core.inc
index 79dadc11..85aa09b6 100644
--- a/meta-arago-distro/conf/distro/include/branding-core.inc
+++ b/meta-arago-distro/conf/distro/include/branding-core.inc
@@ -12,9 +12,6 @@ ALTERNATIVE_PRIORITY:pn-opencl-monitor-ipu = "1"
 # Raise priority for sample IPC FW images
 ALTERNATIVE_PRIORITY:pn-ti-ipc-rtos = "15"
 
-# Remove mmip - DRM allocator, KMS sink, Wayland sink need porting to GST 1.18
-MACHINE_FEATURES:remove = "mmip"
-
 # GC320 support requires out-of-tree drivers not available in until LTS prep is
 # complete. Disable for now.
 MACHINE_FEATURES:remove = "gc320"
-- 
2.36.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure Sinthu Raja
@ 2023-12-06 15:33   ` Ryan Eatmon
  2023-12-06 22:38     ` Denys Dmytriyenko
  0 siblings, 1 reply; 10+ messages in thread
From: Ryan Eatmon @ 2023-12-06 15:33 UTC (permalink / raw)
  To: sinthu.raja, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja



On 12/6/2023 8:36 AM, Sinthu Raja M via lists.yoctoproject.org wrote:
> From: Sinthu Raja <sinthu.raja@ti.com>
> 
> The Ducati and VPE gst plugins requires network during the do_configure task
> so, enable the network task flag for the same.

Why does it require network?  Can you elaborate a little more?


> Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
> ---
>   .../gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb           | 2 ++
>   .../gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb              | 2 ++
>   2 files changed, 4 insertions(+)
> 
> diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> index 1ff2dfb0..99a5615c 100644
> --- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> +++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> @@ -18,4 +18,6 @@ SRC_URI = " \
>       file://0001-gstducati-configure.ac-stop-using-export-symbols-reg.patch \
>   "
>   
> +do_configure[network] = "1"
> +
>   FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> index 237031b1..25d4d9c2 100644
> --- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> +++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> @@ -15,3 +15,5 @@ SRCREV = "b9dba5a8bc7d14d55125abdce04672e3dc30bbdf"
>   SRC_URI = "git://git.ti.com/git/glsdk/gst-plugin-vpe.git;protocol=https \
>              file://0001-gstvpe-configure.ac-stop-using-export-symbols-regex.patch \
>   "
> +
> +do_configure[network] = "1"

-- 
Ryan Eatmon                reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform Sinthu Raja
@ 2023-12-06 15:35   ` Ryan Eatmon
  0 siblings, 0 replies; 10+ messages in thread
From: Ryan Eatmon @ 2023-12-06 15:35 UTC (permalink / raw)
  To: Sinthu Raja, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja



On 12/6/2023 8:36 AM, Sinthu Raja wrote:
> From: Sinthu Raja <sinthu.raja@ti.com>
> 
> Now that the gstreamer plugins are enabled and ported to 1.20 enable
> the mmip for AM57x platform
> 
> Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
> ---
>   meta-arago-distro/conf/distro/include/branding-core.inc | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/meta-arago-distro/conf/distro/include/branding-core.inc b/meta-arago-distro/conf/distro/include/branding-core.inc
> index 79dadc11..85aa09b6 100644
> --- a/meta-arago-distro/conf/distro/include/branding-core.inc
> +++ b/meta-arago-distro/conf/distro/include/branding-core.inc
> @@ -12,9 +12,6 @@ ALTERNATIVE_PRIORITY:pn-opencl-monitor-ipu = "1"
>   # Raise priority for sample IPC FW images
>   ALTERNATIVE_PRIORITY:pn-ti-ipc-rtos = "15"
>   
> -# Remove mmip - DRM allocator, KMS sink, Wayland sink need porting to GST 1.18
> -MACHINE_FEATURES:remove = "mmip"
> -
>   # GC320 support requires out-of-tree drivers not available in until LTS prep is
>   # complete. Disable for now.
>   MACHINE_FEATURES:remove = "gc320"

This same code is in:

meta-arago-distro/conf/distro/include/branding-ltsprep.inc

Can you make the same change in there as well?



-- 
Ryan Eatmon                reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test
  2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test Sinthu Raja
@ 2023-12-06 17:05   ` Andrew Davis
  0 siblings, 0 replies; 10+ messages in thread
From: Andrew Davis @ 2023-12-06 17:05 UTC (permalink / raw)
  To: sinthu.raja, reatmon, denys, praneeth; +Cc: meta-arago, u-kumar1, Sinthu Raja

On 12/6/23 8:36 AM, Sinthu Raja M via lists.yoctoproject.org wrote:
> From: Sinthu Raja <sinthu.raja@ti.com>
> 
> The omapdrm test is outdated and the required test cases shall be executed
> using the GST commands. Disable the same until the omapdrm test is updated.
> 

The omapdrmtest has been broken/unmaintained for a long time, it isn't going
to be updated, just remove the recipe here too.

Andrew

> Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
> ---
>   meta-arago-test/recipes-core/packagegroups/ti-test.bb | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/meta-arago-test/recipes-core/packagegroups/ti-test.bb b/meta-arago-test/recipes-core/packagegroups/ti-test.bb
> index cf720c03..9a6dc67a 100644
> --- a/meta-arago-test/recipes-core/packagegroups/ti-test.bb
> +++ b/meta-arago-test/recipes-core/packagegroups/ti-test.bb
> @@ -87,15 +87,12 @@ TI_TEST_TI_TOOLS:append:ti43x = " \
>       switch-config \
>   "
>   
> -NOT_MAINLINE_MMIP_DEPS = "${@bb.utils.contains('MACHINE_FEATURES', 'mmip', 'omapdrmtest', '', d)}"
> -
>   TI_TEST_TI_TOOLS:append:omap-a15 = " \
>       omapconf \
>       pru-icss \
>       switch-config \
>       ${@oe.utils.conditional('ARAGO_BRAND', 'mainline', '', " \
>           ti-ipc-test \
> -	    ${NOT_MAINLINE_MMIP_DEPS} \
>       ", d)} \
>   "
>   


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure
  2023-12-06 15:33   ` Ryan Eatmon
@ 2023-12-06 22:38     ` Denys Dmytriyenko
  2023-12-07  0:57       ` Ryan Eatmon
  0 siblings, 1 reply; 10+ messages in thread
From: Denys Dmytriyenko @ 2023-12-06 22:38 UTC (permalink / raw)
  To: reatmon; +Cc: sinthu.raja, denys, praneeth, meta-arago, u-kumar1, Sinthu Raja

On Wed, Dec 06, 2023 at 09:33:31AM -0600, Ryan Eatmon via lists.yoctoproject.org wrote:
> 
> 
> On 12/6/2023 8:36 AM, Sinthu Raja M via lists.yoctoproject.org wrote:
> >From: Sinthu Raja <sinthu.raja@ti.com>
> >
> >The Ducati and VPE gst plugins requires network during the do_configure task
> >so, enable the network task flag for the same.
> 
> Why does it require network?  Can you elaborate a little more?

Because sources in git didn't have common gstreamer-specific autotools 
files, scripts and supporting stuff, which were pulled and setup as a 
"common" git submodule from here:
git://anongit.freedesktop.org/gstreamer/common
https://cgit.freedesktop.org/gstreamer/common/

That is done by autogen.sh in do_configure():
https://git.yoctoproject.org/meta-arago/tree/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ti.inc
https://git.ti.com/cgit/glsdk/gst-plugin-ducati/tree/autogen.sh

That's also been the case for git versions of the upstream gstreamer and 
plugins years ago. So, autogen.sh had to be called after do_unpack() and 
before do_configure(), but the former is a python function.

Released versions of gstreamer and plugins never had this issue, as they 
come with all required pieces already packaged in a tarball.

All git-versioned recipes for gstreamer and plugins were removed from 
OE-Core almost 7 years ago:
https://git.openembedded.org/openembedded-core/commit/?id=2b15451e3f1b9fb9a7f44317f3f9cd22d8712ff5

Moreover, gstreamer builds have migrated from autotools to meson around the 
same time and this "common" submodule/tree hasn't been used or updated for 
quite some time. Unfortunaly, gst-plugins-ti haven't been touched for 5 years 
and still use the old (ancient) "common" submodule for autotools stuff...

So, proper, but most involved solution would be to migrate gst-plugins-ti to 
use meson.

Otherwise, you can add the "common" tree to SRC_URI and set the corresponding 
SRCREV. That should satisfy git submodule update, but may need extra tweaking.

SRC_URI += "git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common"
SRCREV_common = "011bcc8a0fc7f798ee874a7ba899123fb2470e22"

BTW, this commit ^^^ that is used for "common" submodule in gst-plugins-ti 
is 13 years old and dated 2010-10-27!!!


> >Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
> >---
> >  .../gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb           | 2 ++
> >  .../gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb              | 2 ++
> >  2 files changed, 4 insertions(+)
> >
> >diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> >index 1ff2dfb0..99a5615c 100644
> >--- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> >+++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
> >@@ -18,4 +18,6 @@ SRC_URI = " \
> >      file://0001-gstducati-configure.ac-stop-using-export-symbols-reg.patch \
> >  "
> >+do_configure[network] = "1"
> >+
> >  FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> >diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> >index 237031b1..25d4d9c2 100644
> >--- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> >+++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
> >@@ -15,3 +15,5 @@ SRCREV = "b9dba5a8bc7d14d55125abdce04672e3dc30bbdf"
> >  SRC_URI = "git://git.ti.com/git/glsdk/gst-plugin-vpe.git;protocol=https \
> >             file://0001-gstvpe-configure.ac-stop-using-export-symbols-regex.patch \
> >  "
> >+
> >+do_configure[network] = "1"


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure
  2023-12-06 22:38     ` Denys Dmytriyenko
@ 2023-12-07  0:57       ` Ryan Eatmon
  0 siblings, 0 replies; 10+ messages in thread
From: Ryan Eatmon @ 2023-12-07  0:57 UTC (permalink / raw)
  To: Denys Dmytriyenko
  Cc: sinthu.raja, denys, praneeth, meta-arago, u-kumar1, Sinthu Raja



On 12/6/2023 4:38 PM, Denys Dmytriyenko wrote:
> On Wed, Dec 06, 2023 at 09:33:31AM -0600, Ryan Eatmon via lists.yoctoproject.org wrote:
>>
>>
>> On 12/6/2023 8:36 AM, Sinthu Raja M via lists.yoctoproject.org wrote:
>>> From: Sinthu Raja <sinthu.raja@ti.com>
>>>
>>> The Ducati and VPE gst plugins requires network during the do_configure task
>>> so, enable the network task flag for the same.
>>
>> Why does it require network?  Can you elaborate a little more?
> 
> Because sources in git didn't have common gstreamer-specific autotools
> files, scripts and supporting stuff, which were pulled and setup as a
> "common" git submodule from here:
> git://anongit.freedesktop.org/gstreamer/common
> https://cgit.freedesktop.org/gstreamer/common/
> 
> That is done by autogen.sh in do_configure():
> https://git.yoctoproject.org/meta-arago/tree/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ti.inc
> https://git.ti.com/cgit/glsdk/gst-plugin-ducati/tree/autogen.sh
> 
> That's also been the case for git versions of the upstream gstreamer and
> plugins years ago. So, autogen.sh had to be called after do_unpack() and
> before do_configure(), but the former is a python function.
> 
> Released versions of gstreamer and plugins never had this issue, as they
> come with all required pieces already packaged in a tarball.
> 
> All git-versioned recipes for gstreamer and plugins were removed from
> OE-Core almost 7 years ago:
> https://git.openembedded.org/openembedded-core/commit/?id=2b15451e3f1b9fb9a7f44317f3f9cd22d8712ff5
> 
> Moreover, gstreamer builds have migrated from autotools to meson around the
> same time and this "common" submodule/tree hasn't been used or updated for
> quite some time. Unfortunaly, gst-plugins-ti haven't been touched for 5 years
> and still use the old (ancient) "common" submodule for autotools stuff...
> 
> So, proper, but most involved solution would be to migrate gst-plugins-ti to
> use meson.
> 
> Otherwise, you can add the "common" tree to SRC_URI and set the corresponding
> SRCREV. That should satisfy git submodule update, but may need extra tweaking.
> 
> SRC_URI += "git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common"
> SRCREV_common = "011bcc8a0fc7f798ee874a7ba899123fb2470e22"

This is exactly what I was hoping to hear.  That it there was the 
possibility of condensing the network stuff into the SRC_URI to be a 
little more yocto compliant.  I agree that long term all of the stuff 
should be moved to meson like the main gstreamer.


> BTW, this commit ^^^ that is used for "common" submodule in gst-plugins-ti
> is 13 years old and dated 2010-10-27!!!
> 
> 
>>> Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
>>> ---
>>>   .../gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb           | 2 ++
>>>   .../gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb              | 2 ++
>>>   2 files changed, 4 insertions(+)
>>>
>>> diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
>>> index 1ff2dfb0..99a5615c 100644
>>> --- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
>>> +++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
>>> @@ -18,4 +18,6 @@ SRC_URI = " \
>>>       file://0001-gstducati-configure.ac-stop-using-export-symbols-reg.patch \
>>>   "
>>> +do_configure[network] = "1"
>>> +
>>>   FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
>>> diff --git a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
>>> index 237031b1..25d4d9c2 100644
>>> --- a/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
>>> +++ b/meta-arago-extras/recipes-multimedia/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
>>> @@ -15,3 +15,5 @@ SRCREV = "b9dba5a8bc7d14d55125abdce04672e3dc30bbdf"
>>>   SRC_URI = "git://git.ti.com/git/glsdk/gst-plugin-vpe.git;protocol=https \
>>>              file://0001-gstvpe-configure.ac-stop-using-export-symbols-regex.patch \
>>>   "
>>> +
>>> +do_configure[network] = "1"

-- 
Ryan Eatmon                reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-12-07  0:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-06 14:36 [meta-arago][krikstone][PATCH RFC 0/4] Add gstreamer 1.20 Sinthu Raja
2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 1/4] gstreamer1.0-plugins-bad: Add patches to support DRM allocator Sinthu Raja
2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 2/4] gst-plugins-ti: Enable network task flag for do_configure Sinthu Raja
2023-12-06 15:33   ` Ryan Eatmon
2023-12-06 22:38     ` Denys Dmytriyenko
2023-12-07  0:57       ` Ryan Eatmon
2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 3/4] ti-test: Remove OAMP-DRM test Sinthu Raja
2023-12-06 17:05   ` Andrew Davis
2023-12-06 14:36 ` [meta-arago][krikstone][PATCH RFC 4/4] branding-core: enable mmip for AM57x platform Sinthu Raja
2023-12-06 15:35   ` Ryan Eatmon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.