All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package
@ 2022-01-12  9:42 Sébastien Szymanski
  2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-01-12  9:42 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

Library for allocating and managing physically contiguous memory ("DMA
memory" or "DMA buffers") on i.MX devices.
Needed for libimxvpuapi2 and gst1-imx2.
The user has to choose an allocator depending on the i.MX device.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
---
 package/Config.in                            |  1 +
 package/libimxdmabuffer/Config.in            | 59 ++++++++++++++++++++
 package/libimxdmabuffer/libimxdmabuffer.hash |  3 +
 package/libimxdmabuffer/libimxdmabuffer.mk   | 51 +++++++++++++++++
 4 files changed, 114 insertions(+)
 create mode 100644 package/libimxdmabuffer/Config.in
 create mode 100644 package/libimxdmabuffer/libimxdmabuffer.hash
 create mode 100644 package/libimxdmabuffer/libimxdmabuffer.mk

diff --git a/package/Config.in b/package/Config.in
index 59297c3f3d..8d844aa11e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -505,6 +505,7 @@ endmenu
 	source "package/kbd/Config.in"
 	source "package/lcdproc/Config.in"
 	source "package/libiec61850/Config.in"
+	source "package/libimxdmabuffer/Config.in"
 	source "package/libubootenv/Config.in"
 	source "package/libuio/Config.in"
 	source "package/linux-backports/Config.in"
diff --git a/package/libimxdmabuffer/Config.in b/package/libimxdmabuffer/Config.in
new file mode 100644
index 0000000000..9e81a69123
--- /dev/null
+++ b/package/libimxdmabuffer/Config.in
@@ -0,0 +1,59 @@
+comment "libimxdmabuffer needs an imx-specific Linux kernel to be built"
+	depends on (BR2_arm || BR2_aarch64) && !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_LIBIMXDMABUFFER
+	bool "libimxdmabuffer"
+	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
+	depends on BR2_LINUX_KERNEL
+	help
+	  Library for allocating and managing physically contiguous
+	  memory ("DMA memory" or "DMA buffers") on i.MX devices.
+
+	  It requires a kernel that includes the i.MX specific headers
+	  to be built.
+
+	  https://github.com/Freescale/libimxdmabuffer
+
+if BR2_PACKAGE_LIBIMXDMABUFFER
+choice
+	prompt "Allocator"
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_DWL
+	bool "dwl"
+	depends on BR2_PACKAGE_IMX_VPU_HANTRO
+
+comment "dwl allocator needs imx-vpu-hantro"
+	depends on !BR2_PACKAGE_IMX_VPU_HANTRO
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_IPU
+	bool "ipu"
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_G2D
+	bool "g2d"
+	depends on BR2_PACKAGE_IMX_GPU_G2D
+
+comment "g2d allocator needs imx-gpu-g2d"
+	depends on !BR2_PACKAGE_IMX_GPU_G2D
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_PXP
+	bool "pxp"
+endchoice
+
+if BR2_PACKAGE_LIBIMXDMABUFFER_DWL
+choice
+	prompt "Hantro decoder version"
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
+	bool "G1"
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
+	bool "G2"
+endchoice
+
+config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_HANTRO_DEC_VERSION
+	string
+	default "G1" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
+	default "G2" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
+endif
+
+endif
diff --git a/package/libimxdmabuffer/libimxdmabuffer.hash b/package/libimxdmabuffer/libimxdmabuffer.hash
new file mode 100644
index 0000000000..7d317005df
--- /dev/null
+++ b/package/libimxdmabuffer/libimxdmabuffer.hash
@@ -0,0 +1,3 @@
+# locally computed hash
+sha256  cea163d213206f5451eb75a4501b52d861ed00bfd14cd3e4e8734c6181edb6cc  libimxdmabuffer-1.0.1.tar.gz
+sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
diff --git a/package/libimxdmabuffer/libimxdmabuffer.mk b/package/libimxdmabuffer/libimxdmabuffer.mk
new file mode 100644
index 0000000000..c8adf03365
--- /dev/null
+++ b/package/libimxdmabuffer/libimxdmabuffer.mk
@@ -0,0 +1,51 @@
+################################################################################
+#
+# libimxdmabuffer
+#
+################################################################################
+
+LIBIMXDMABUFFER_VERSION = 1.0.1
+LIBIMXDMABUFFER_SITE = $(call github,Freescale,libimxdmabuffer,$(LIBIMXDMABUFFER_VERSION))
+LIBIMXDMABUFFER_LICENSE = LGPL-2.1+
+LIBIMXDMABUFFER_LICENSE_FILES = LICENSE
+LIBIMXDMABUFFER_DEPENDENCIES = host-pkgconf host-python3
+LIBIMXDMABUFFER_INSTALL_STAGING = YES
+LIBIMXDMABUFFER_NEEDS_EXTERNAL_WAF = NO
+
+# libimxdmabuffer needs access to imx-specific kernel headers
+LIBIMXDMABUFFER_DEPENDENCIES += linux
+
+LIBIMXDMABUFFER_CONF_OPTS += \
+	--imx-linux-headers-path=$(STAGING_DIR)/usr/include/ \
+	--with-ion-allocator=no
+
+ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_DWL),y)
+LIBIMXDMABUFFER_CONF_OPTS += \
+	--with-dwl-allocator=yes \
+	--hantro-headers-path=$(STAGING_DIR)/usr/include/hantro_dec \
+	--hantro-decoder-version=$(BR2_PACKAGE_LIBIMXDMABUFFER_DWL_HANTRO_DEC_VERSION)
+LIBIMXDMABUFFER_DEPENDENCIES += imx-vpu-hantro
+else
+LIBIMXDMABUFFER_CONF_OPTS += --with-dwl-allocator=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_IPU),y)
+LIBIMXDMABUFFER_CONF_OPTS += --with-ipu-allocator=yes
+else
+LIBIMXDMABUFFER_CONF_OPTS += --with-ipu-allocator=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_G2D),y)
+LIBIMXDMABUFFER_CONF_OPTS += --with-g2d-allocator=yes
+LIBIMXDMABUFFER_DEPENDENCIES += imx-gpu-g2d
+else
+LIBIMXDMABUFFER_CONF_OPTS += --with-g2d-allocator=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_PXP),y)
+LIBIMXDMABUFFER_CONF_OPTS += --with-pxp-allocator=yes
+else
+LIBIMXDMABUFFER_CONF_OPTS += --with-pxp-allocator=no
+endif
+
+$(eval $(waf-package))
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 2/3] package/libimxvpuapi2: new package
  2022-01-12  9:42 [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package Sébastien Szymanski
@ 2022-01-12  9:42 ` Sébastien Szymanski
  2022-01-12 10:31   ` Baruch Siach via buildroot
  2022-07-28  8:36   ` Arnout Vandecappelle
  2022-01-12  9:42 ` [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: " Sébastien Szymanski
  2022-07-28  8:23 ` [Buildroot] [PATCH 1/3] package/libimxdmabuffer: " Arnout Vandecappelle
  2 siblings, 2 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-01-12  9:42 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

This is version 2 of libimxvpuapi.
The API has been rewritten, and is incompatible with the older one.
Currently, the following platforms are supported (listed with their VPUs):
* i.MX6 (Chips&Media CODA960 codec)
* i.MX8m (Hantro G1/G2 decoder, no encoder)
* i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
---
 package/Config.in                        |  1 +
 package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
 package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
 package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
 4 files changed, 80 insertions(+)
 create mode 100644 package/libimxvpuapi2/Config.in
 create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
 create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk

diff --git a/package/Config.in b/package/Config.in
index 8d844aa11e..009d2006f0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1763,6 +1763,7 @@ menu "Multimedia"
 	source "package/libebml/Config.in"
 	source "package/libhdhomerun/Config.in"
 	source "package/libimxvpuapi/Config.in"
+	source "package/libimxvpuapi2/Config.in"
 	source "package/libmatroska/Config.in"
 	source "package/libmms/Config.in"
 	source "package/libmpeg2/Config.in"
diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
new file mode 100644
index 0000000000..0954718cc0
--- /dev/null
+++ b/package/libimxvpuapi2/Config.in
@@ -0,0 +1,48 @@
+comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
+	depends on BR2_arm || BR2_aarch64
+	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
+		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
+		|| !BR2_PACKAGE_LIBIMXDMABUFFER
+
+config BR2_PACKAGE_LIBIMXVPUAPI2
+	bool "libimxvpuapi2"
+	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
+	depends on BR2_PACKAGE_LIBIMXDMABUFFER
+	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
+	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
+	help
+	  This library provides an API for using hardware video codecs
+	  on i.MX platforms. The API abstracts away platform specific
+	  details and allows for using the same code with different
+	  hardware video codecs on different i.MX platforms.
+
+	  This is version 2 of libimxvpuapi. The API has been rewritten,
+	  and is incompatible with the older one.
+
+	  https://github.com/Freescale/libimxvpuapi
+
+if BR2_PACKAGE_LIBIMXVPUAPI2
+choice
+	prompt "Platform"
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
+	bool "i.MX6 (Coda)"
+	depends on BR2_PACKAGE_IMX_VPU
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
+	bool "i.MX8M (Hantro)"
+	depends on BR2_PACKAGE_IMX_VPU_HANTRO
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
+	bool "i.MX8MM (Hantro)"
+	depends on BR2_PACKAGE_IMX_VPU_HANTRO
+endchoice
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
+	string
+	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
+	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
+	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
+
+endif
diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
new file mode 100644
index 0000000000..d26cf8767b
--- /dev/null
+++ b/package/libimxvpuapi2/libimxvpuapi2.hash
@@ -0,0 +1,3 @@
+# locally computed hash
+sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
+sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
new file mode 100644
index 0000000000..6957171ad3
--- /dev/null
+++ b/package/libimxvpuapi2/libimxvpuapi2.mk
@@ -0,0 +1,28 @@
+################################################################################
+#
+# libimxvpuapi2
+#
+################################################################################
+
+LIBIMXVPUAPI2_VERSION = 2.2.0
+LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
+LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
+LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
+LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
+LIBIMXVPUAPI2_INSTALL_STAGING = YES
+LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
+
+ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
+LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
+endif
+
+ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
+LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
+endif
+
+LIBIMXVPUAPI2_CONF_OPTS += \
+	--imx-headers=$(STAGING_DIR)/usr/include/ \
+	--sysroot-path=$(STAGING_DIR) \
+	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
+
+$(eval $(waf-package))
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-01-12  9:42 [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package Sébastien Szymanski
  2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
@ 2022-01-12  9:42 ` Sébastien Szymanski
  2022-01-14 17:44   ` Herve Codina
  2022-07-28 19:51   ` Arnout Vandecappelle
  2022-07-28  8:23 ` [Buildroot] [PATCH 1/3] package/libimxdmabuffer: " Arnout Vandecappelle
  2 siblings, 2 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-01-12  9:42 UTC (permalink / raw)
  To: buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

This is version 2 of gst1-imx.

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
---
 package/gstreamer1/Config.in                |  1 +
 package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
 package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
 package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
 4 files changed, 154 insertions(+)
 create mode 100644 package/gstreamer1/gst1-imx2/Config.in
 create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
 create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk

diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in
index 8fe8a34395..436c76379d 100644
--- a/package/gstreamer1/Config.in
+++ b/package/gstreamer1/Config.in
@@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in"
 source "package/gstreamer1/gst1-plugins-ugly/Config.in"
 source "package/gstreamer1/gst1-devtools/Config.in"
 source "package/gstreamer1/gst1-imx/Config.in"
+source "package/gstreamer1/gst1-imx2/Config.in"
 source "package/gstreamer1/gst1-interpipe/Config.in"
 source "package/gstreamer1/gst1-libav/Config.in"
 source "package/gstreamer1/gst1-python/Config.in"
diff --git a/package/gstreamer1/gst1-imx2/Config.in b/package/gstreamer1/gst1-imx2/Config.in
new file mode 100644
index 0000000000..b95e6bdb21
--- /dev/null
+++ b/package/gstreamer1/gst1-imx2/Config.in
@@ -0,0 +1,75 @@
+menuconfig BR2_PACKAGE_GST1_IMX2
+	bool "gst1-imx2"
+	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
+	depends on BR2_PACKAGE_LIBIMXDMABUFFER
+	select BR2_PACKAGE_GST1_PLUGINS_BASE
+	help
+	  This is a set of GStreamer 1.0 plugins for plugins for
+	  Freescale's i.MX platforms, which make use of the i.MX
+	  multimedia capabilities.
+
+	  https://github.com/Freescale/gstreamer-imx
+
+if BR2_PACKAGE_GST1_IMX2
+
+config BR2_PACKAGE_GST1_IMX2_G2D
+	bool "imxg2d"
+	depends on BR2_PACKAGE_IMX_GPU_G2D
+	help
+	  Elements leveraging the 2D GPU
+
+comment "imxg2d needs the G2D libraries"
+	depends on !BR2_PACKAGE_IMX_GPU_G2D
+
+config BR2_PACKAGE_GST1_IMX2_IPU
+	bool "imxipu"
+	depends on BR2_LINUX_KERNEL
+	help
+	  Elements leveraging the IPU
+
+comment "imxipu needs an imx-specific Linux kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_GST1_IMX2_MP3ENCODER
+	bool "mp3encoder"
+	depends on BR2_PACKAGE_IMX_CODEC
+	help
+	  Elements for MP3 encoding
+
+comment "mp3encoder needs the i.MX codec binaries"
+	depends on !BR2_PACKAGE_IMX_CODEC
+
+config BR2_PACKAGE_GST1_IMX2_PXP
+	bool "imxpxp"
+	depends on BR2_LINUX_KERNEL
+	help
+	  Elements leveraging the PXP
+
+comment "imxpxp needs an imx-specific Linux kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC
+	bool "uniaudiodec"
+	depends on BR2_PACKAGE_IMX_CODEC
+	help
+	  Elements for audio decoding
+
+comment "uniaudiodec needs the i.MX codec binaries"
+	depends on !BR2_PACKAGE_IMX_CODEC
+
+config BR2_PACKAGE_GST1_IMX2_VPU
+	bool "imxvpu"
+	depends on BR2_PACKAGE_LIBIMXVPUAPI2
+	help
+	  Elements leveraging the VPU
+
+comment "imxvpu needs the VPU imxvpuapi2 library"
+	depends on !BR2_PACKAGE_LIBIMXVPUAPI2
+
+config BR2_PACKAGE_GST1_IMX2_V4L2
+	bool "imxv4l2"
+	select BR2_PACKAGE_GST1_PLUGINS_BAD
+	help
+	  Elements for V4L2 capture and output
+
+endif
diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.hash b/package/gstreamer1/gst1-imx2/gst1-imx2.hash
new file mode 100644
index 0000000000..cc0734fd52
--- /dev/null
+++ b/package/gstreamer1/gst1-imx2/gst1-imx2.hash
@@ -0,0 +1,3 @@
+# locally computed hash
+sha256  57c0e05b3d57f90df8a16760f4373e04ed60c3a7fab7844c00392f67f889d196  gst1-imx2-9a200b1551c4531234f9b6437eac2c42a07334b0.tar.gz
+sha256  94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23  LICENSE
diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.mk b/package/gstreamer1/gst1-imx2/gst1-imx2.mk
new file mode 100644
index 0000000000..f71aeae4f6
--- /dev/null
+++ b/package/gstreamer1/gst1-imx2/gst1-imx2.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# gst1-imx2
+#
+################################################################################
+
+GST1_IMX2_VERSION = 9a200b1551c4531234f9b6437eac2c42a07334b0
+GST1_IMX2_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX2_VERSION))
+GST1_IMX2_LICENSE = LGPL-2.0+
+GST1_IMX2_LICENSE_FILES = LICENSE
+GST1_IMX2_INSTALL_STAGING = YES
+
+GST1_IMX2_DEPENDENCIES = \
+	host-pkgconf \
+	gstreamer1 \
+	gst1-plugins-base \
+	libimxdmabuffer
+
+GST1_IMX2_CONF_OPTS = -Dsysroot=$(STAGING_DIR)
+
+ifeq ($(BR2_LINUX_KERNEL),y)
+# IPU and PXP need access to imx-specific kernel headers
+GST1_IMX2_DEPENDENCIES += linux
+endif
+
+ifeq ($(BR2_PACKAGE_IMX_CODEC),y)
+GST1_IMX2_DEPENDENCIES += imx-codec
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_G2D),y)
+GST1_IMX2_CONF_OPTS += -Dg2d=enabled
+GST1_IMX2_DEPENDENCIES += imx-gpu-g2d
+else
+GST1_IMX2_CONF_OPTS += -Dg2d=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_IPU),y)
+GST1_IMX2_CONF_OPTS += -Dipu=enabled
+else
+GST1_IMX2_CONF_OPTS += -Dipu=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_MP3ENCODER),y)
+GST1_IMX2_CONF_OPTS += -Dmp3encoder=enabled
+else
+GST1_IMX2_CONF_OPTS += -Dmp3encoder=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_PXP),y)
+GST1_IMX2_CONF_OPTS += -Dpxp=enabled
+else
+GST1_IMX2_CONF_OPTS += -Dpxp=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC),y)
+GST1_IMX2_CONF_OPTS += -Duniaudiodec=enabled
+else
+GST1_IMX2_CONF_OPTS += -Duniaudiodec=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_VPU),y)
+GST1_IMX2_DEPENDENCIES += libimxvpuapi2
+GST1_IMX2_CONF_OPTS += -Dvpu=enabled
+else
+GST1_IMX2_CONF_OPTS += -Dvpu=disabled
+endif
+
+ifeq ($(BR2_PACKAGE_GST1_IMX2_V4L2),y)
+GST1_IMX2_DEPENDENCIES += gst1-plugins-bad
+GST1_IMX2_CONF_OPTS += -Dv4l2=true
+else
+GST1_IMX2_CONF_OPTS += -Dv4l2=false
+endif
+
+$(eval $(meson-package))
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 2/3] package/libimxvpuapi2: new package
  2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
@ 2022-01-12 10:31   ` Baruch Siach via buildroot
  2022-01-12 12:53     ` Sébastien Szymanski
  2022-07-28  8:36   ` Arnout Vandecappelle
  1 sibling, 1 reply; 14+ messages in thread
From: Baruch Siach via buildroot @ 2022-01-12 10:31 UTC (permalink / raw)
  To: Sébastien Szymanski; +Cc: Eric Le Bihan, Yann E . MORIN, buildroot

Hi Sébastien,

On Wed, Jan 12 2022, Sébastien Szymanski wrote:
> This is version 2 of libimxvpuapi.
> The API has been rewritten, and is incompatible with the older one.
> Currently, the following platforms are supported (listed with their VPUs):
> * i.MX6 (Chips&Media CODA960 codec)
> * i.MX8m (Hantro G1/G2 decoder, no encoder)
> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)

Is there patch 1/3 in this series? I didn't show up in the list.

Thanks,
baruch

>
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>  package/Config.in                        |  1 +
>  package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>  package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>  package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>  4 files changed, 80 insertions(+)
>  create mode 100644 package/libimxvpuapi2/Config.in
>  create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>  create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 8d844aa11e..009d2006f0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>  	source "package/libebml/Config.in"
>  	source "package/libhdhomerun/Config.in"
>  	source "package/libimxvpuapi/Config.in"
> +	source "package/libimxvpuapi2/Config.in"
>  	source "package/libmatroska/Config.in"
>  	source "package/libmms/Config.in"
>  	source "package/libmpeg2/Config.in"
> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
> new file mode 100644
> index 0000000000..0954718cc0
> --- /dev/null
> +++ b/package/libimxvpuapi2/Config.in
> @@ -0,0 +1,48 @@
> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
> +	depends on BR2_arm || BR2_aarch64
> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2
> +	bool "libimxvpuapi2"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER
> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	help
> +	  This library provides an API for using hardware video codecs
> +	  on i.MX platforms. The API abstracts away platform specific
> +	  details and allows for using the same code with different
> +	  hardware video codecs on different i.MX platforms.
> +
> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
> +	  and is incompatible with the older one.
> +
> +	  https://github.com/Freescale/libimxvpuapi
> +
> +if BR2_PACKAGE_LIBIMXVPUAPI2
> +choice
> +	prompt "Platform"
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	bool "i.MX6 (Coda)"
> +	depends on BR2_PACKAGE_IMX_VPU
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	bool "i.MX8M (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +	bool "i.MX8MM (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +endchoice
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
> +	string
> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +
> +endif
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
> new file mode 100644
> index 0000000000..d26cf8767b
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
> new file mode 100644
> index 0000000000..6957171ad3
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
> @@ -0,0 +1,28 @@
> +################################################################################
> +#
> +# libimxvpuapi2
> +#
> +################################################################################
> +
> +LIBIMXVPUAPI2_VERSION = 2.2.0
> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
> +endif
> +
> +LIBIMXVPUAPI2_CONF_OPTS += \
> +	--imx-headers=$(STAGING_DIR)/usr/include/ \
> +	--sysroot-path=$(STAGING_DIR) \
> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
> +
> +$(eval $(waf-package))


-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 2/3] package/libimxvpuapi2: new package
  2022-01-12 10:31   ` Baruch Siach via buildroot
@ 2022-01-12 12:53     ` Sébastien Szymanski
  0 siblings, 0 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-01-12 12:53 UTC (permalink / raw)
  To: Baruch Siach; +Cc: Eric Le Bihan, Yann E . MORIN, buildroot

Hi Baruch,

On 1/12/22 11:31, Baruch Siach wrote:
> Hi Sébastien,
> 
> On Wed, Jan 12 2022, Sébastien Szymanski wrote:
>> This is version 2 of libimxvpuapi.
>> The API has been rewritten, and is incompatible with the older one.
>> Currently, the following platforms are supported (listed with their VPUs):
>> * i.MX6 (Chips&Media CODA960 codec)
>> * i.MX8m (Hantro G1/G2 decoder, no encoder)
>> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)
> 
> Is there patch 1/3 in this series? I didn't show up in the list.

Yes. Looks like it took more time to reach the mailing list.

Regards,

> 
> Thanks,
> baruch
> 
>>
>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>> ---
>>   package/Config.in                        |  1 +
>>   package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>>   package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>>   package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>>   4 files changed, 80 insertions(+)
>>   create mode 100644 package/libimxvpuapi2/Config.in
>>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 8d844aa11e..009d2006f0 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>>   	source "package/libebml/Config.in"
>>   	source "package/libhdhomerun/Config.in"
>>   	source "package/libimxvpuapi/Config.in"
>> +	source "package/libimxvpuapi2/Config.in"
>>   	source "package/libmatroska/Config.in"
>>   	source "package/libmms/Config.in"
>>   	source "package/libmpeg2/Config.in"
>> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
>> new file mode 100644
>> index 0000000000..0954718cc0
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/Config.in
>> @@ -0,0 +1,48 @@
>> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
>> +	depends on BR2_arm || BR2_aarch64
>> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
>> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
>> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2
>> +	bool "libimxvpuapi2"
>> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
>> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER
>> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
>> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
>> +	help
>> +	  This library provides an API for using hardware video codecs
>> +	  on i.MX platforms. The API abstracts away platform specific
>> +	  details and allows for using the same code with different
>> +	  hardware video codecs on different i.MX platforms.
>> +
>> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
>> +	  and is incompatible with the older one.
>> +
>> +	  https://github.com/Freescale/libimxvpuapi
>> +
>> +if BR2_PACKAGE_LIBIMXVPUAPI2
>> +choice
>> +	prompt "Platform"
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
>> +	bool "i.MX6 (Coda)"
>> +	depends on BR2_PACKAGE_IMX_VPU
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
>> +	bool "i.MX8M (Hantro)"
>> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
>> +	bool "i.MX8MM (Hantro)"
>> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
>> +endchoice
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
>> +	string
>> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
>> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
>> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
>> +
>> +endif
>> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
>> new file mode 100644
>> index 0000000000..d26cf8767b
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
>> @@ -0,0 +1,3 @@
>> +# locally computed hash
>> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
>> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
>> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
>> new file mode 100644
>> index 0000000000..6957171ad3
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
>> @@ -0,0 +1,28 @@
>> +################################################################################
>> +#
>> +# libimxvpuapi2
>> +#
>> +################################################################################
>> +
>> +LIBIMXVPUAPI2_VERSION = 2.2.0
>> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
>> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
>> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
>> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
>> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
>> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
>> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
>> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
>> +endif
>> +
>> +LIBIMXVPUAPI2_CONF_OPTS += \
>> +	--imx-headers=$(STAGING_DIR)/usr/include/ \
>> +	--sysroot-path=$(STAGING_DIR) \
>> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
>> +
>> +$(eval $(waf-package))
> 
> 


-- 
Sébastien Szymanski, Armadeus Systems
Software engineer
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-01-12  9:42 ` [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: " Sébastien Szymanski
@ 2022-01-14 17:44   ` Herve Codina
  2022-01-17  9:37     ` Sébastien Szymanski
  2022-07-28 19:51   ` Arnout Vandecappelle
  1 sibling, 1 reply; 14+ messages in thread
From: Herve Codina @ 2022-01-14 17:44 UTC (permalink / raw)
  To: Sébastien Szymanski; +Cc: Eric Le Bihan, Yann E . MORIN, buildroot

Hi Sébastien, all

On Wed, 12 Jan 2022 10:42:50 +0100
Sébastien Szymanski <sebastien.szymanski@armadeus.com> wrote:

> This is version 2 of gst1-imx.
> 
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>  package/gstreamer1/Config.in                |  1 +
>  package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
>  package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>  package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
>  4 files changed, 154 insertions(+)
>  create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>  create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>  create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
> 

This package seems an update of the existing gst1-imx package.

Why add a new package instead of bumping gst1-imx ?

Best regards,
Hervé

-- 
Hervé Codina, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-01-14 17:44   ` Herve Codina
@ 2022-01-17  9:37     ` Sébastien Szymanski
  0 siblings, 0 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-01-17  9:37 UTC (permalink / raw)
  To: Herve Codina; +Cc: Eric Le Bihan, Yann E . MORIN, buildroot

Hi Hervé,

On 1/14/22 18:44, Herve Codina wrote:
> Hi Sébastien, all
> 
> On Wed, 12 Jan 2022 10:42:50 +0100
> Sébastien Szymanski <sebastien.szymanski@armadeus.com> wrote:
> 
>> This is version 2 of gst1-imx.
>>
>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>> ---
>>   package/gstreamer1/Config.in                |  1 +
>>   package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
>>   package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>>   package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
>>   4 files changed, 154 insertions(+)
>>   create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
>>
> 
> This package seems an update of the existing gst1-imx package.
> 
> Why add a new package instead of bumping gst1-imx ?

It's a rewrite, as the ChangLog says:

* Complete rewrite based on GStreamer 1.14, libimxvpuapi 2.1.2, and the 
new libimxdmabuffer library. This new rewrite is referred to as "v2" 
(version 2), while the old code is referred to as "v1" (version 1). v1 
is no longer being developed; work is focused on v2.

I think we should keep gst1-imx v1 for compatibility.

Best regards,

> 
> Best regards,
> Hervé
> 


-- 
Sébastien Szymanski, Armadeus Systems
Software engineer
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package
  2022-01-12  9:42 [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package Sébastien Szymanski
  2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
  2022-01-12  9:42 ` [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: " Sébastien Szymanski
@ 2022-07-28  8:23 ` Arnout Vandecappelle
  2022-08-08 13:56   ` Sébastien Szymanski
  2 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2022-07-28  8:23 UTC (permalink / raw)
  To: Sébastien Szymanski, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

  Hi Sebastien,

  Sorry that it took us so long to get around to reviewing this patch. There are 
some major changes that we would like you to make to the approach, so I've 
marked the series as Changes Requested. Please read on for the details.

On 12/01/2022 10:42, Sébastien Szymanski wrote:
> Library for allocating and managing physically contiguous memory ("DMA
> memory" or "DMA buffers") on i.MX devices.
> Needed for libimxvpuapi2 and gst1-imx2.
> The user has to choose an allocator depending on the i.MX device.

  This is the part that we don't like. In package/freescale-imx/Config.in, we 
already have a choice between all the different CPUs. If there is some more 
fine-grain distinction that needs to be made for this, we should add a CPU 
option to that list.

> 
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>   package/Config.in                            |  1 +
>   package/libimxdmabuffer/Config.in            | 59 ++++++++++++++++++++
>   package/libimxdmabuffer/libimxdmabuffer.hash |  3 +
>   package/libimxdmabuffer/libimxdmabuffer.mk   | 51 +++++++++++++++++
>   4 files changed, 114 insertions(+)
>   create mode 100644 package/libimxdmabuffer/Config.in
>   create mode 100644 package/libimxdmabuffer/libimxdmabuffer.hash
>   create mode 100644 package/libimxdmabuffer/libimxdmabuffer.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 59297c3f3d..8d844aa11e 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -505,6 +505,7 @@ endmenu
>   	source "package/kbd/Config.in"
>   	source "package/lcdproc/Config.in"
>   	source "package/libiec61850/Config.in"
> +	source "package/libimxdmabuffer/Config.in"

  We moved all the imx libraries to packages/freescale-imx, so this one should 
be there as well.

>   	source "package/libubootenv/Config.in"
>   	source "package/libuio/Config.in"
>   	source "package/linux-backports/Config.in"
> diff --git a/package/libimxdmabuffer/Config.in b/package/libimxdmabuffer/Config.in
> new file mode 100644
> index 0000000000..9e81a69123
> --- /dev/null
> +++ b/package/libimxdmabuffer/Config.in
> @@ -0,0 +1,59 @@
> +comment "libimxdmabuffer needs an imx-specific Linux kernel to be built"
> +	depends on (BR2_arm || BR2_aarch64) && !BR2_LINUX_KERNEL

  (nitpick) should be on two lines

	depends on BR2_arm || BR2_aarch64
	depends on !BR2_LINUX_KERNEL

> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER
> +	bool "libimxdmabuffer"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_LINUX_KERNEL
> +	help
> +	  Library for allocating and managing physically contiguous
> +	  memory ("DMA memory" or "DMA buffers") on i.MX devices.
> +
> +	  It requires a kernel that includes the i.MX specific headers
> +	  to be built.
> +
> +	  https://github.com/Freescale/libimxdmabuffer
> +
> +if BR2_PACKAGE_LIBIMXDMABUFFER
> +choice
> +	prompt "Allocator"
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL
> +	bool "dwl"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +comment "dwl allocator needs imx-vpu-hantro"
> +	depends on !BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_IPU
> +	bool "ipu"
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_G2D
> +	bool "g2d"
> +	depends on BR2_PACKAGE_IMX_GPU_G2D
> +
> +comment "g2d allocator needs imx-gpu-g2d"
> +	depends on !BR2_PACKAGE_IMX_GPU_G2D
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_PXP
> +	bool "pxp"
> +endchoice

  The commit message suggests that this depends directly on the CPU. There might 
still be some user choice here. In that case, please provide some help text to 
help the user decide which one to choose. At least refer to some documentation 
somewhere.

> +
> +if BR2_PACKAGE_LIBIMXDMABUFFER_DWL
> +choice
> +	prompt "Hantro decoder version"
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
> +	bool "G1"
> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
> +	bool "G2"
> +endchoice

  This one shold be fully dependent on the target CPU.

  Note that we have some symbols like BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO, 
it may be useful to add more of them to distinguish G1 and G2:

config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G1
         bool
         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_...

config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G2
         bool
         default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_...

config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
         bool
         default y if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G1 || \
		BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G2


> +
> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_HANTRO_DEC_VERSION
> +	string
> +	default "G1" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
> +	default "G2" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
> +endif
> +
> +endif
> diff --git a/package/libimxdmabuffer/libimxdmabuffer.hash b/package/libimxdmabuffer/libimxdmabuffer.hash
> new file mode 100644
> index 0000000000..7d317005df
> --- /dev/null
> +++ b/package/libimxdmabuffer/libimxdmabuffer.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  cea163d213206f5451eb75a4501b52d861ed00bfd14cd3e4e8734c6181edb6cc  libimxdmabuffer-1.0.1.tar.gz
> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
> diff --git a/package/libimxdmabuffer/libimxdmabuffer.mk b/package/libimxdmabuffer/libimxdmabuffer.mk
> new file mode 100644
> index 0000000000..c8adf03365
> --- /dev/null
> +++ b/package/libimxdmabuffer/libimxdmabuffer.mk
> @@ -0,0 +1,51 @@
> +################################################################################
> +#
> +# libimxdmabuffer
> +#
> +################################################################################
> +
> +LIBIMXDMABUFFER_VERSION = 1.0.1
> +LIBIMXDMABUFFER_SITE = $(call github,Freescale,libimxdmabuffer,$(LIBIMXDMABUFFER_VERSION))
> +LIBIMXDMABUFFER_LICENSE = LGPL-2.1+
> +LIBIMXDMABUFFER_LICENSE_FILES = LICENSE
> +LIBIMXDMABUFFER_DEPENDENCIES = host-pkgconf host-python3
> +LIBIMXDMABUFFER_INSTALL_STAGING = YES
> +LIBIMXDMABUFFER_NEEDS_EXTERNAL_WAF = NO

  This is the default, no need to set it.

> +
> +# libimxdmabuffer needs access to imx-specific kernel headers
> +LIBIMXDMABUFFER_DEPENDENCIES += linux
> +
> +LIBIMXDMABUFFER_CONF_OPTS += \
> +	--imx-linux-headers-path=$(STAGING_DIR)/usr/include/ \

  This is not OK. We depend on the kernel to be built, but the kernel build 
doesn't install its headers in /usr/include. For example, it's possible to use 
the ARM external toolchain and build the i.MX-specific kernel with that.

  To fix this, use the same approach as in e.g. imx-lib:

IMX_LIB_INCLUDE = \
         -idirafter $(LINUX_DIR)/include/uapi


  Regards,
  Arnout

> +	--with-ion-allocator=no
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_DWL),y)
> +LIBIMXDMABUFFER_CONF_OPTS += \
> +	--with-dwl-allocator=yes \
> +	--hantro-headers-path=$(STAGING_DIR)/usr/include/hantro_dec \
> +	--hantro-decoder-version=$(BR2_PACKAGE_LIBIMXDMABUFFER_DWL_HANTRO_DEC_VERSION)
> +LIBIMXDMABUFFER_DEPENDENCIES += imx-vpu-hantro
> +else
> +LIBIMXDMABUFFER_CONF_OPTS += --with-dwl-allocator=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_IPU),y)
> +LIBIMXDMABUFFER_CONF_OPTS += --with-ipu-allocator=yes
> +else
> +LIBIMXDMABUFFER_CONF_OPTS += --with-ipu-allocator=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_G2D),y)
> +LIBIMXDMABUFFER_CONF_OPTS += --with-g2d-allocator=yes
> +LIBIMXDMABUFFER_DEPENDENCIES += imx-gpu-g2d
> +else
> +LIBIMXDMABUFFER_CONF_OPTS += --with-g2d-allocator=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXDMABUFFER_PXP),y)
> +LIBIMXDMABUFFER_CONF_OPTS += --with-pxp-allocator=yes
> +else
> +LIBIMXDMABUFFER_CONF_OPTS += --with-pxp-allocator=no
> +endif
> +
> +$(eval $(waf-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 2/3] package/libimxvpuapi2: new package
  2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
  2022-01-12 10:31   ` Baruch Siach via buildroot
@ 2022-07-28  8:36   ` Arnout Vandecappelle
  1 sibling, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2022-07-28  8:36 UTC (permalink / raw)
  To: Sébastien Szymanski, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN



On 12/01/2022 10:42, Sébastien Szymanski wrote:
> This is version 2 of libimxvpuapi.
> The API has been rewritten, and is incompatible with the older one.
> Currently, the following platforms are supported (listed with their VPUs):
> * i.MX6 (Chips&Media CODA960 codec)
> * i.MX8m (Hantro G1/G2 decoder, no encoder)
> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)
> 
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>   package/Config.in                        |  1 +
>   package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>   package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>   package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>   4 files changed, 80 insertions(+)
>   create mode 100644 package/libimxvpuapi2/Config.in
>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 8d844aa11e..009d2006f0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>   	source "package/libebml/Config.in"
>   	source "package/libhdhomerun/Config.in"
>   	source "package/libimxvpuapi/Config.in"
> +	source "package/libimxvpuapi2/Config.in"

  This one should also move to package/freescale-imx. libimxvpuapi really should 
go there as well.

>   	source "package/libmatroska/Config.in"
>   	source "package/libmms/Config.in"
>   	source "package/libmpeg2/Config.in"
> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
> new file mode 100644
> index 0000000000..0954718cc0
> --- /dev/null
> +++ b/package/libimxvpuapi2/Config.in
> @@ -0,0 +1,48 @@
> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
> +	depends on BR2_arm || BR2_aarch64
> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \

  The VPU presence is considered an architecture dependency, so there's no need 
to show a comment for them.

> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER

  This should be select (see below) so no comment either. You do need a comment 
for the linux transitive dependency however.

> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2
> +	bool "libimxvpuapi2"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER

  This should be select, not depends on.

> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	help
> +	  This library provides an API for using hardware video codecs
> +	  on i.MX platforms. The API abstracts away platform specific
> +	  details and allows for using the same code with different
> +	  hardware video codecs on different i.MX platforms.
> +
> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
> +	  and is incompatible with the older one.

  We heard from Gary Bisson that indeed we need both gst1-imx and gst1-imx2 
because the latter no longer supports some elements for imx6. Thus, we also need 
both libimxvpuapi and libimxvpuapi2. Please add that to the commit log.

> +
> +	  https://github.com/Freescale/libimxvpuapi
> +
> +if BR2_PACKAGE_LIBIMXVPUAPI2
> +choice
> +	prompt "Platform"
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	bool "i.MX6 (Coda)"
> +	depends on BR2_PACKAGE_IMX_VPU
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	bool "i.MX8M (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +	bool "i.MX8MM (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +endchoice

  This choice should be removed, instead using the symbols from 
package/freescale-imx/Config.in.

> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
> +	string
> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +
> +endif
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
> new file mode 100644
> index 0000000000..d26cf8767b
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
> new file mode 100644
> index 0000000000..6957171ad3
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
> @@ -0,0 +1,28 @@
> +################################################################################
> +#
> +# libimxvpuapi2
> +#
> +################################################################################
> +
> +LIBIMXVPUAPI2_VERSION = 2.2.0
> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO

  Again, this is the default.

> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
> +endif
> +
> +LIBIMXVPUAPI2_CONF_OPTS += \
> +	--imx-headers=$(STAGING_DIR)/usr/include/ \

  Again, you need to point into the kernel build dir.

  Regards,
  Arnout

> +	--sysroot-path=$(STAGING_DIR) \
> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
> +
> +$(eval $(waf-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-01-12  9:42 ` [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: " Sébastien Szymanski
  2022-01-14 17:44   ` Herve Codina
@ 2022-07-28 19:51   ` Arnout Vandecappelle
  2022-08-08 14:14     ` Sébastien Szymanski
  1 sibling, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2022-07-28 19:51 UTC (permalink / raw)
  To: Sébastien Szymanski, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN



On 12/01/2022 10:42, Sébastien Szymanski wrote:
> This is version 2 of gst1-imx.

  Please add the following.

  Although this replaces the gst1-imx package, we want to keep both because 
version 2 removes some elements that are relevant on i.MX6 without X11 or 
wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink.


> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>   package/gstreamer1/Config.in                |  1 +
>   package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
>   package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>   package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
>   4 files changed, 154 insertions(+)
>   create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
> 
> diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in
> index 8fe8a34395..436c76379d 100644
> --- a/package/gstreamer1/Config.in
> +++ b/package/gstreamer1/Config.in
> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in"
>   source "package/gstreamer1/gst1-plugins-ugly/Config.in"
>   source "package/gstreamer1/gst1-devtools/Config.in"
>   source "package/gstreamer1/gst1-imx/Config.in"
> +source "package/gstreamer1/gst1-imx2/Config.in"

  Note that this one should *not* move to package/freescale-imx, it's correct to 
put it here in gstreamer1.

>   source "package/gstreamer1/gst1-interpipe/Config.in"
>   source "package/gstreamer1/gst1-libav/Config.in"
>   source "package/gstreamer1/gst1-python/Config.in"
> diff --git a/package/gstreamer1/gst1-imx2/Config.in b/package/gstreamer1/gst1-imx2/Config.in
> new file mode 100644
> index 0000000000..b95e6bdb21
> --- /dev/null
> +++ b/package/gstreamer1/gst1-imx2/Config.in
> @@ -0,0 +1,75 @@
> +menuconfig BR2_PACKAGE_GST1_IMX2
> +	bool "gst1-imx2"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER

  This should be a select.

  On the other hand, it should also have

	depends on BR2_PACKAGE_FREESCALE_IMX
		
> +	select BR2_PACKAGE_GST1_PLUGINS_BASE
> +	help
> +	  This is a set of GStreamer 1.0 plugins for plugins for
> +	  Freescale's i.MX platforms, which make use of the i.MX
> +	  multimedia capabilities.
> +
> +	  https://github.com/Freescale/gstreamer-imx
> +
> +if BR2_PACKAGE_GST1_IMX2
> +
> +config BR2_PACKAGE_GST1_IMX2_G2D
> +	bool "imxg2d"
> +	depends on BR2_PACKAGE_IMX_GPU_G2D

  All these depends on should also be turned in select, and propagate their 
dependencies. Since the dependencies are all architecture dependencies, I think, 
there's no need for a comment. You only need a comment for the linux dependency.

> +	help
> +	  Elements leveraging the 2D GPU
> +
> +comment "imxg2d needs the G2D libraries"
> +	depends on !BR2_PACKAGE_IMX_GPU_G2D
> +
> +config BR2_PACKAGE_GST1_IMX2_IPU
> +	bool "imxipu"
> +	depends on BR2_LINUX_KERNEL
> +	help
> +	  Elements leveraging the IPU
> +
> +comment "imxipu needs an imx-specific Linux kernel to be built"
> +	depends on !BR2_LINUX_KERNEL
> +
> +config BR2_PACKAGE_GST1_IMX2_MP3ENCODER
> +	bool "mp3encoder"
> +	depends on BR2_PACKAGE_IMX_CODEC
> +	help
> +	  Elements for MP3 encoding

  I'm a bit surprised that there's no SoC dependency here...

> +
> +comment "mp3encoder needs the i.MX codec binaries"
> +	depends on !BR2_PACKAGE_IMX_CODEC
> +
> +config BR2_PACKAGE_GST1_IMX2_PXP
> +	bool "imxpxp"
> +	depends on BR2_LINUX_KERNEL
> +	help
> +	  Elements leveraging the PXP
> +
> +comment "imxpxp needs an imx-specific Linux kernel to be built"
> +	depends on !BR2_LINUX_KERNEL
> +
> +config BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC
> +	bool "uniaudiodec"
> +	depends on BR2_PACKAGE_IMX_CODEC
> +	help
> +	  Elements for audio decoding
> +
> +comment "uniaudiodec needs the i.MX codec binaries"
> +	depends on !BR2_PACKAGE_IMX_CODEC
> +
> +config BR2_PACKAGE_GST1_IMX2_VPU
> +	bool "imxvpu"
> +	depends on BR2_PACKAGE_LIBIMXVPUAPI2
> +	help
> +	  Elements leveraging the VPU
> +
> +comment "imxvpu needs the VPU imxvpuapi2 library"
> +	depends on !BR2_PACKAGE_LIBIMXVPUAPI2
> +
> +config BR2_PACKAGE_GST1_IMX2_V4L2
> +	bool "imxv4l2"
> +	select BR2_PACKAGE_GST1_PLUGINS_BAD
> +	help
> +	  Elements for V4L2 capture and output
> +
> +endif
> diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.hash b/package/gstreamer1/gst1-imx2/gst1-imx2.hash
> new file mode 100644
> index 0000000000..cc0734fd52
> --- /dev/null
> +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  57c0e05b3d57f90df8a16760f4373e04ed60c3a7fab7844c00392f67f889d196  gst1-imx2-9a200b1551c4531234f9b6437eac2c42a07334b0.tar.gz
> +sha256  94b03f1a60a7fd5007149530626a895a6ef5a8b9342abfd56860c5f3956f5d23  LICENSE
> diff --git a/package/gstreamer1/gst1-imx2/gst1-imx2.mk b/package/gstreamer1/gst1-imx2/gst1-imx2.mk
> new file mode 100644
> index 0000000000..f71aeae4f6
> --- /dev/null
> +++ b/package/gstreamer1/gst1-imx2/gst1-imx2.mk
> @@ -0,0 +1,75 @@
> +################################################################################
> +#
> +# gst1-imx2
> +#
> +################################################################################
> +
> +GST1_IMX2_VERSION = 9a200b1551c4531234f9b6437eac2c42a07334b0
> +GST1_IMX2_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX2_VERSION))
> +GST1_IMX2_LICENSE = LGPL-2.0+
> +GST1_IMX2_LICENSE_FILES = LICENSE
> +GST1_IMX2_INSTALL_STAGING = YES
> +
> +GST1_IMX2_DEPENDENCIES = \
> +	host-pkgconf \
> +	gstreamer1 \
> +	gst1-plugins-base \
> +	libimxdmabuffer
> +
> +GST1_IMX2_CONF_OPTS = -Dsysroot=$(STAGING_DIR)
> +
> +ifeq ($(BR2_LINUX_KERNEL),y)
> +# IPU and PXP need access to imx-specific kernel headers

  Again, you'll probably need to point into the kernel build directory.

  Regards,
  Arnout

> +GST1_IMX2_DEPENDENCIES += linux
> +endif
> +
> +ifeq ($(BR2_PACKAGE_IMX_CODEC),y)
> +GST1_IMX2_DEPENDENCIES += imx-codec
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_G2D),y)
> +GST1_IMX2_CONF_OPTS += -Dg2d=enabled
> +GST1_IMX2_DEPENDENCIES += imx-gpu-g2d
> +else
> +GST1_IMX2_CONF_OPTS += -Dg2d=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_IPU),y)
> +GST1_IMX2_CONF_OPTS += -Dipu=enabled
> +else
> +GST1_IMX2_CONF_OPTS += -Dipu=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_MP3ENCODER),y)
> +GST1_IMX2_CONF_OPTS += -Dmp3encoder=enabled
> +else
> +GST1_IMX2_CONF_OPTS += -Dmp3encoder=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_PXP),y)
> +GST1_IMX2_CONF_OPTS += -Dpxp=enabled
> +else
> +GST1_IMX2_CONF_OPTS += -Dpxp=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_UNIAUDIODEC),y)
> +GST1_IMX2_CONF_OPTS += -Duniaudiodec=enabled
> +else
> +GST1_IMX2_CONF_OPTS += -Duniaudiodec=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_VPU),y)
> +GST1_IMX2_DEPENDENCIES += libimxvpuapi2
> +GST1_IMX2_CONF_OPTS += -Dvpu=enabled
> +else
> +GST1_IMX2_CONF_OPTS += -Dvpu=disabled
> +endif
> +
> +ifeq ($(BR2_PACKAGE_GST1_IMX2_V4L2),y)
> +GST1_IMX2_DEPENDENCIES += gst1-plugins-bad
> +GST1_IMX2_CONF_OPTS += -Dv4l2=true
> +else
> +GST1_IMX2_CONF_OPTS += -Dv4l2=false
> +endif
> +
> +$(eval $(meson-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package
  2022-07-28  8:23 ` [Buildroot] [PATCH 1/3] package/libimxdmabuffer: " Arnout Vandecappelle
@ 2022-08-08 13:56   ` Sébastien Szymanski
  0 siblings, 0 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-08-08 13:56 UTC (permalink / raw)
  To: Arnout Vandecappelle, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

Hi Arnout,

thank you for the review !

On 7/28/22 10:23, Arnout Vandecappelle wrote:
>   Hi Sebastien,
> 
>   Sorry that it took us so long to get around to reviewing this patch. 
> There are some major changes that we would like you to make to the 
> approach, so I've marked the series as Changes Requested. Please read on 
> for the details.
> 
> On 12/01/2022 10:42, Sébastien Szymanski wrote:
>> Library for allocating and managing physically contiguous memory ("DMA
>> memory" or "DMA buffers") on i.MX devices.
>> Needed for libimxvpuapi2 and gst1-imx2.
>> The user has to choose an allocator depending on the i.MX device.
> 
>   This is the part that we don't like. In 
> package/freescale-imx/Config.in, we already have a choice between all 
> the different CPUs. If there is some more fine-grain distinction that 
> needs to be made for this, we should add a CPU option to that list.
> 
>>
>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>> ---
>>   package/Config.in                            |  1 +
>>   package/libimxdmabuffer/Config.in            | 59 ++++++++++++++++++++
>>   package/libimxdmabuffer/libimxdmabuffer.hash |  3 +
>>   package/libimxdmabuffer/libimxdmabuffer.mk   | 51 +++++++++++++++++
>>   4 files changed, 114 insertions(+)
>>   create mode 100644 package/libimxdmabuffer/Config.in
>>   create mode 100644 package/libimxdmabuffer/libimxdmabuffer.hash
>>   create mode 100644 package/libimxdmabuffer/libimxdmabuffer.mk

...

>> +
>> +if BR2_PACKAGE_LIBIMXDMABUFFER_DWL
>> +choice
>> +    prompt "Hantro decoder version"
>> +
>> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
>> +    bool "G1"
>> +
>> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
>> +    bool "G2"
>> +endchoice
> 
>   This one shold be fully dependent on the target CPU.
> 
>   Note that we have some symbols like 
> BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO, it may be useful to add more 
> of them to distinguish G1 and G2:
> 
> config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G1
>          bool
>          default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_...
> 
> config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G2
>          bool
>          default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_...
> 
> config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
>          bool
>          default y if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G1 || \
>          BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO_G2


All i.MX8 with hantro VPU in Buildroot (i.MX8M, i.MX8MM and i.MX8MP) 
have both G1 and G2 decoder.
libimxdmabuffer requires to choose one:

https://github.com/Freescale/libimxdmabuffer/blob/master/wscript#L228

Regards,

> 
> 
>> +
>> +config BR2_PACKAGE_LIBIMXDMABUFFER_DWL_HANTRO_DEC_VERSION
>> +    string
>> +    default "G1" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G1
>> +    default "G2" if BR2_PACKAGE_LIBIMXDMABUFFER_DWL_G2
>> +endif
>> +
>> +endif

-- 
Sébastien Szymanski, Armadeus Systems
Software engineer
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-07-28 19:51   ` Arnout Vandecappelle
@ 2022-08-08 14:14     ` Sébastien Szymanski
  2022-08-08 20:36       ` Arnout Vandecappelle
  0 siblings, 1 reply; 14+ messages in thread
From: Sébastien Szymanski @ 2022-08-08 14:14 UTC (permalink / raw)
  To: Arnout Vandecappelle, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

Hi Arnout,

On 7/28/22 21:51, Arnout Vandecappelle wrote:
> 
> 
> On 12/01/2022 10:42, Sébastien Szymanski wrote:
>> This is version 2 of gst1-imx.
> 
>   Please add the following.
> 
>   Although this replaces the gst1-imx package, we want to keep both 
> because version 2 removes some elements that are relevant on i.MX6 
> without X11 or wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink.
> 
> 
>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>> ---
>>   package/gstreamer1/Config.in                |  1 +
>>   package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
>>   package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>>   package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
>>   4 files changed, 154 insertions(+)
>>   create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
>>
>> diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in
>> index 8fe8a34395..436c76379d 100644
>> --- a/package/gstreamer1/Config.in
>> +++ b/package/gstreamer1/Config.in
>> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in"
>>   source "package/gstreamer1/gst1-plugins-ugly/Config.in"
>>   source "package/gstreamer1/gst1-devtools/Config.in"
>>   source "package/gstreamer1/gst1-imx/Config.in"
>> +source "package/gstreamer1/gst1-imx2/Config.in"
> 
>   Note that this one should *not* move to package/freescale-imx, it's 
> correct to put it here in gstreamer1.
> 
>>   source "package/gstreamer1/gst1-interpipe/Config.in"
>>   source "package/gstreamer1/gst1-libav/Config.in"
>>   source "package/gstreamer1/gst1-python/Config.in"
>> diff --git a/package/gstreamer1/gst1-imx2/Config.in 
>> b/package/gstreamer1/gst1-imx2/Config.in
>> new file mode 100644
>> index 0000000000..b95e6bdb21
>> --- /dev/null
>> +++ b/package/gstreamer1/gst1-imx2/Config.in
>> @@ -0,0 +1,75 @@
>> +menuconfig BR2_PACKAGE_GST1_IMX2
>> +    bool "gst1-imx2"
>> +    depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>> +    depends on BR2_PACKAGE_LIBIMXDMABUFFER
> 
>   This should be a select.
> 
>   On the other hand, it should also have
> 
>      depends on BR2_PACKAGE_FREESCALE_IMX
> 
>> +    select BR2_PACKAGE_GST1_PLUGINS_BASE
>> +    help
>> +      This is a set of GStreamer 1.0 plugins for plugins for
>> +      Freescale's i.MX platforms, which make use of the i.MX
>> +      multimedia capabilities.
>> +
>> +      https://github.com/Freescale/gstreamer-imx
>> +
>> +if BR2_PACKAGE_GST1_IMX2
>> +
>> +config BR2_PACKAGE_GST1_IMX2_G2D
>> +    bool "imxg2d"
>> +    depends on BR2_PACKAGE_IMX_GPU_G2D
> 
>   All these depends on should also be turned in select, and propagate 
> their dependencies. Since the dependencies are all architecture 
> dependencies, I think, there's no need for a comment. You only need a 
> comment for the linux dependency.

I have copied the gst1-imx package which uses depends on. When using 
select the following issue appears:

package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency 
detected!
package/gstreamer1/gstreamer1/Config.in:5:      symbol 
BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
package/webkitgtk/Config.in:94: symbol BR2_PACKAGE_WEBKITGTK_MULTIMEDIA 
depends on BR2_PACKAGE_WEBKITGTK
package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is selected 
by BR2_PACKAGE_MIDORI
package/midori/Config.in:24:    symbol BR2_PACKAGE_MIDORI depends on 
BR2_PACKAGE_LIBGTK3
package/libgtk3/Config.in:15:   symbol BR2_PACKAGE_LIBGTK3 is selected 
by BR2_PACKAGE_VTE
package/vte/Config.in:1:        symbol BR2_PACKAGE_VTE depends on 
BR2_PACKAGE_HAS_LIBEGL_WAYLAND
package/opengl/libegl/Config.in:4:      symbol 
BR2_PACKAGE_HAS_LIBEGL_WAYLAND is selected by 
BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
package/freescale-imx/imx-gpu-viv/Config.in:64: symbol 
BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice>
package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains 
symbol <choice>
package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains 
symbol BR2_PACKAGE_IMX_GPU_VIV
package/freescale-imx/imx-gpu-viv/Config.in:9:  symbol 
BR2_PACKAGE_IMX_GPU_VIV is selected by BR2_PACKAGE_IMX_GPU_G2D
package/freescale-imx/imx-gpu-g2d/Config.in:9:  symbol 
BR2_PACKAGE_IMX_GPU_G2D is selected by BR2_PACKAGE_GST1_IMX2_G2D
package/gstreamer1/gst1-imx2/Config.in:21:      symbol 
BR2_PACKAGE_GST1_IMX2_G2D depends on BR2_PACKAGE_GSTREAMER1
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

There was a similar issue for gst1-imx:

https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/

So, I will keep depends on here.

Regards,


-- 
Sébastien Szymanski, Armadeus Systems
Software engineer
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-08-08 14:14     ` Sébastien Szymanski
@ 2022-08-08 20:36       ` Arnout Vandecappelle
  2022-08-09 12:50         ` Sébastien Szymanski
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2022-08-08 20:36 UTC (permalink / raw)
  To: Sébastien Szymanski, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN



On 08/08/2022 16:14, Sébastien Szymanski wrote:
> Hi Arnout,
> 
> On 7/28/22 21:51, Arnout Vandecappelle wrote:
>>
>>
>> On 12/01/2022 10:42, Sébastien Szymanski wrote:
>>> This is version 2 of gst1-imx.
>>
>>   Please add the following.
>>
>>   Although this replaces the gst1-imx package, we want to keep both because 
>> version 2 removes some elements that are relevant on i.MX6 without X11 or 
>> wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink.
>>
>>
>>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>>> ---
>>>   package/gstreamer1/Config.in                |  1 +
>>>   package/gstreamer1/gst1-imx2/Config.in      | 75 +++++++++++++++++++++
>>>   package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>>>   package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 +++++++++++++++++++++
>>>   4 files changed, 154 insertions(+)
>>>   create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
>>>
>>> diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in
>>> index 8fe8a34395..436c76379d 100644
>>> --- a/package/gstreamer1/Config.in
>>> +++ b/package/gstreamer1/Config.in
>>> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in"
>>>   source "package/gstreamer1/gst1-plugins-ugly/Config.in"
>>>   source "package/gstreamer1/gst1-devtools/Config.in"
>>>   source "package/gstreamer1/gst1-imx/Config.in"
>>> +source "package/gstreamer1/gst1-imx2/Config.in"
>>
>>   Note that this one should *not* move to package/freescale-imx, it's correct 
>> to put it here in gstreamer1.
>>
>>>   source "package/gstreamer1/gst1-interpipe/Config.in"
>>>   source "package/gstreamer1/gst1-libav/Config.in"
>>>   source "package/gstreamer1/gst1-python/Config.in"
>>> diff --git a/package/gstreamer1/gst1-imx2/Config.in 
>>> b/package/gstreamer1/gst1-imx2/Config.in
>>> new file mode 100644
>>> index 0000000000..b95e6bdb21
>>> --- /dev/null
>>> +++ b/package/gstreamer1/gst1-imx2/Config.in
>>> @@ -0,0 +1,75 @@
>>> +menuconfig BR2_PACKAGE_GST1_IMX2
>>> +    bool "gst1-imx2"
>>> +    depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>>> +    depends on BR2_PACKAGE_LIBIMXDMABUFFER
>>
>>   This should be a select.
>>
>>   On the other hand, it should also have
>>
>>      depends on BR2_PACKAGE_FREESCALE_IMX
>>
>>> +    select BR2_PACKAGE_GST1_PLUGINS_BASE
>>> +    help
>>> +      This is a set of GStreamer 1.0 plugins for plugins for
>>> +      Freescale's i.MX platforms, which make use of the i.MX
>>> +      multimedia capabilities.
>>> +
>>> +      https://github.com/Freescale/gstreamer-imx
>>> +
>>> +if BR2_PACKAGE_GST1_IMX2
>>> +
>>> +config BR2_PACKAGE_GST1_IMX2_G2D
>>> +    bool "imxg2d"
>>> +    depends on BR2_PACKAGE_IMX_GPU_G2D
>>
>>   All these depends on should also be turned in select, and propagate their 
>> dependencies. Since the dependencies are all architecture dependencies, I 
>> think, there's no need for a comment. You only need a comment for the linux 
>> dependency.
> 
> I have copied the gst1-imx package which uses depends on. 

  Well, we're trying to improve the situation :-)

> When using select the following issue appears:
> 
> package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected!
> package/gstreamer1/gstreamer1/Config.in:5:      symbol BR2_PACKAGE_GSTREAMER1 is 
> selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
> package/webkitgtk/Config.in:94: symbol BR2_PACKAGE_WEBKITGTK_MULTIMEDIA depends 
> on BR2_PACKAGE_WEBKITGTK
> package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is selected by 
> BR2_PACKAGE_MIDORI
> package/midori/Config.in:24:    symbol BR2_PACKAGE_MIDORI depends on 
> BR2_PACKAGE_LIBGTK3
> package/libgtk3/Config.in:15:   symbol BR2_PACKAGE_LIBGTK3 is selected by 
> BR2_PACKAGE_VTE
> package/vte/Config.in:1:        symbol BR2_PACKAGE_VTE depends on 
> BR2_PACKAGE_HAS_LIBEGL_WAYLAND
> package/opengl/libegl/Config.in:4:      symbol BR2_PACKAGE_HAS_LIBEGL_WAYLAND is 
> selected by BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
> package/freescale-imx/imx-gpu-viv/Config.in:64: symbol 
> BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice>
> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol 
> <choice>
> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> contains symbol 
> BR2_PACKAGE_IMX_GPU_VIV
> package/freescale-imx/imx-gpu-viv/Config.in:9:  symbol BR2_PACKAGE_IMX_GPU_VIV 
> is selected by BR2_PACKAGE_IMX_GPU_G2D
> package/freescale-imx/imx-gpu-g2d/Config.in:9:  symbol BR2_PACKAGE_IMX_GPU_G2D 
> is selected by BR2_PACKAGE_GST1_IMX2_G2D
> package/gstreamer1/gst1-imx2/Config.in:21:      symbol BR2_PACKAGE_GST1_IMX2_G2D 
> depends on BR2_PACKAGE_GSTREAMER1
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"

  I'm trying to see the problem with this dependency chain, but I can't find 
it... Perhaps it's the choice for imx-gpu-viv output that is causing the problem.

  You did propagate the dependencies, right?

         depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # imx-gpu-g2d
         depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-g2d


  Regards,
  Arnout

> 
> There was a similar issue for gst1-imx:
> 
> https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/
> 
> So, I will keep depends on here.
> 
> Regards,
> 
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: new package
  2022-08-08 20:36       ` Arnout Vandecappelle
@ 2022-08-09 12:50         ` Sébastien Szymanski
  0 siblings, 0 replies; 14+ messages in thread
From: Sébastien Szymanski @ 2022-08-09 12:50 UTC (permalink / raw)
  To: Arnout Vandecappelle, buildroot; +Cc: Eric Le Bihan, Yann E . MORIN

On 8/8/22 22:36, Arnout Vandecappelle wrote:
> 
> 
> On 08/08/2022 16:14, Sébastien Szymanski wrote:
>> Hi Arnout,
>>
>> On 7/28/22 21:51, Arnout Vandecappelle wrote:
>>>
>>>
>>> On 12/01/2022 10:42, Sébastien Szymanski wrote:
>>>> This is version 2 of gst1-imx.
>>>
>>>   Please add the following.
>>>
>>>   Although this replaces the gst1-imx package, we want to keep both 
>>> because version 2 removes some elements that are relevant on i.MX6 
>>> without X11 or wayland: imxg2dvideosink, imxipuvideosink, imxeglvivsink.
>>>
>>>
>>>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>>>> ---
>>>>   package/gstreamer1/Config.in                |  1 +
>>>>   package/gstreamer1/gst1-imx2/Config.in      | 75 
>>>> +++++++++++++++++++++
>>>>   package/gstreamer1/gst1-imx2/gst1-imx2.hash |  3 +
>>>>   package/gstreamer1/gst1-imx2/gst1-imx2.mk   | 75 
>>>> +++++++++++++++++++++
>>>>   4 files changed, 154 insertions(+)
>>>>   create mode 100644 package/gstreamer1/gst1-imx2/Config.in
>>>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.hash
>>>>   create mode 100644 package/gstreamer1/gst1-imx2/gst1-imx2.mk
>>>>
>>>> diff --git a/package/gstreamer1/Config.in 
>>>> b/package/gstreamer1/Config.in
>>>> index 8fe8a34395..436c76379d 100644
>>>> --- a/package/gstreamer1/Config.in
>>>> +++ b/package/gstreamer1/Config.in
>>>> @@ -9,6 +9,7 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in"
>>>>   source "package/gstreamer1/gst1-plugins-ugly/Config.in"
>>>>   source "package/gstreamer1/gst1-devtools/Config.in"
>>>>   source "package/gstreamer1/gst1-imx/Config.in"
>>>> +source "package/gstreamer1/gst1-imx2/Config.in"
>>>
>>>   Note that this one should *not* move to package/freescale-imx, it's 
>>> correct to put it here in gstreamer1.
>>>
>>>>   source "package/gstreamer1/gst1-interpipe/Config.in"
>>>>   source "package/gstreamer1/gst1-libav/Config.in"
>>>>   source "package/gstreamer1/gst1-python/Config.in"
>>>> diff --git a/package/gstreamer1/gst1-imx2/Config.in 
>>>> b/package/gstreamer1/gst1-imx2/Config.in
>>>> new file mode 100644
>>>> index 0000000000..b95e6bdb21
>>>> --- /dev/null
>>>> +++ b/package/gstreamer1/gst1-imx2/Config.in
>>>> @@ -0,0 +1,75 @@
>>>> +menuconfig BR2_PACKAGE_GST1_IMX2
>>>> +    bool "gst1-imx2"
>>>> +    depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>>>> +    depends on BR2_PACKAGE_LIBIMXDMABUFFER
>>>
>>>   This should be a select.
>>>
>>>   On the other hand, it should also have
>>>
>>>      depends on BR2_PACKAGE_FREESCALE_IMX
>>>
>>>> +    select BR2_PACKAGE_GST1_PLUGINS_BASE
>>>> +    help
>>>> +      This is a set of GStreamer 1.0 plugins for plugins for
>>>> +      Freescale's i.MX platforms, which make use of the i.MX
>>>> +      multimedia capabilities.
>>>> +
>>>> +      https://github.com/Freescale/gstreamer-imx
>>>> +
>>>> +if BR2_PACKAGE_GST1_IMX2
>>>> +
>>>> +config BR2_PACKAGE_GST1_IMX2_G2D
>>>> +    bool "imxg2d"
>>>> +    depends on BR2_PACKAGE_IMX_GPU_G2D
>>>
>>>   All these depends on should also be turned in select, and propagate 
>>> their dependencies. Since the dependencies are all architecture 
>>> dependencies, I think, there's no need for a comment. You only need a 
>>> comment for the linux dependency.
>>
>> I have copied the gst1-imx package which uses depends on. 
> 
>   Well, we're trying to improve the situation :-)
> 
>> When using select the following issue appears:
>>
>> package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency 
>> detected!
>> package/gstreamer1/gstreamer1/Config.in:5:      symbol 
>> BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
>> package/webkitgtk/Config.in:94: symbol 
>> BR2_PACKAGE_WEBKITGTK_MULTIMEDIA depends on BR2_PACKAGE_WEBKITGTK
>> package/webkitgtk/Config.in:28: symbol BR2_PACKAGE_WEBKITGTK is 
>> selected by BR2_PACKAGE_MIDORI
>> package/midori/Config.in:24:    symbol BR2_PACKAGE_MIDORI depends on 
>> BR2_PACKAGE_LIBGTK3
>> package/libgtk3/Config.in:15:   symbol BR2_PACKAGE_LIBGTK3 is selected 
>> by BR2_PACKAGE_VTE
>> package/vte/Config.in:1:        symbol BR2_PACKAGE_VTE depends on 
>> BR2_PACKAGE_HAS_LIBEGL_WAYLAND
>> package/opengl/libegl/Config.in:4:      symbol 
>> BR2_PACKAGE_HAS_LIBEGL_WAYLAND is selected by 
>> BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL
>> package/freescale-imx/imx-gpu-viv/Config.in:64: symbol 
>> BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL is part of choice <choice>
>> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> 
>> contains symbol <choice>
>> package/freescale-imx/imx-gpu-viv/Config.in:39: choice <choice> 
>> contains symbol BR2_PACKAGE_IMX_GPU_VIV
>> package/freescale-imx/imx-gpu-viv/Config.in:9:  symbol 
>> BR2_PACKAGE_IMX_GPU_VIV is selected by BR2_PACKAGE_IMX_GPU_G2D
>> package/freescale-imx/imx-gpu-g2d/Config.in:9:  symbol 
>> BR2_PACKAGE_IMX_GPU_G2D is selected by BR2_PACKAGE_GST1_IMX2_G2D
>> package/gstreamer1/gst1-imx2/Config.in:21:      symbol 
>> BR2_PACKAGE_GST1_IMX2_G2D depends on BR2_PACKAGE_GSTREAMER1
>> For a resolution refer to Documentation/kbuild/kconfig-language.txt
>> subsection "Kconfig recursive dependency limitations"
> 
>   I'm trying to see the problem with this dependency chain, but I can't 
> find it... Perhaps it's the choice for imx-gpu-viv output that is 
> causing the problem.
> 
>   You did propagate the dependencies, right?

Yes, I did.

Regards,

> 
>          depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # 
> imx-gpu-g2d
>          depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-g2d
> 
> 
>   Regards,
>   Arnout
> 
>>
>> There was a similar issue for gst1-imx:
>>
>> https://lore.kernel.org/all/20160920224355.l76a3kggupuiugok@t450s.lan/
>>
>> So, I will keep depends on here.
>>
>> Regards,
>>
>>


-- 
Sébastien Szymanski, Armadeus Systems
Software engineer
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2022-08-09 12:52 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-12  9:42 [Buildroot] [PATCH 1/3] package/libimxdmabuffer: new package Sébastien Szymanski
2022-01-12  9:42 ` [Buildroot] [PATCH 2/3] package/libimxvpuapi2: " Sébastien Szymanski
2022-01-12 10:31   ` Baruch Siach via buildroot
2022-01-12 12:53     ` Sébastien Szymanski
2022-07-28  8:36   ` Arnout Vandecappelle
2022-01-12  9:42 ` [Buildroot] [PATCH 3/3] package/gstreamer1/gst1-imx2: " Sébastien Szymanski
2022-01-14 17:44   ` Herve Codina
2022-01-17  9:37     ` Sébastien Szymanski
2022-07-28 19:51   ` Arnout Vandecappelle
2022-08-08 14:14     ` Sébastien Szymanski
2022-08-08 20:36       ` Arnout Vandecappelle
2022-08-09 12:50         ` Sébastien Szymanski
2022-07-28  8:23 ` [Buildroot] [PATCH 1/3] package/libimxdmabuffer: " Arnout Vandecappelle
2022-08-08 13:56   ` Sébastien Szymanski

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.