gstreamer1-imx: new package
PATCH v2 1/1 gstreamer1-imx: new package
Add gstreamer1-imx package (gstreamer-1.x equivalent to gstreamer-0.10/gst-fsl-plugins package).
---
Changes v1 -> v2:
- rename package from gstreamer-imx to gstreamer1-imx (as suggested
by Peter Korsgaard)
- add check in comment to clear gstreamer-1.x/gstreamer1-imx vs. gst-fsl-plugins/gstreamer-0.10 (as suggested by Yann E. MORIN)
- fix copy/paste errors in Config.in (s/gst-fsl-plugins/gstreamer1-imx/) and gstreamer1-imx.mk (s/GST_FSL_PLUGINS_DEPENDENCIES/GSTREAMER1_IMX_DEPENDENCIES/
and remove superfluously GSTREAMER_IMX_WITHOUT_X11 usage
--- package/gstreamer1/Config.in | 1 + package/gstreamer1/gstreamer1-imx/Config.in | 21 +++++++++++++ ...headers-include-path-to-src-v4l2src-compi.patch | 31 +++++++++++++++++++ .../gstreamer1/gstreamer1-imx/gstreamer1-imx.mk | 36 ++++++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 package/gstreamer1/gstreamer1-imx/Config.in create mode 100644 package/gstreamer1/gstreamer1-imx/gstreamer1-imx-0001-Add-kernel-headers-include-path-to-src-v4l2src-compi.patch create mode 100644 package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk
package/gstreamer1/Config.in +1 -0
@@ -8,4 +8,5 @@ source "package/gstreamer1/gst1-plugins-bad/Config.in" source "package/gstreamer1/gst1-plugins-ugly/Config.in" source "package/gstreamer1/gst1-libav/Config.in" source "package/gstreamer1/gst-omx/Config.in" +source "package/gstreamer1/gstreamer1-imx/Config.in" endif
package/gstreamer1/gstreamer1-imx/Config.in new file +21 -0
@@ -0,0 +1,21 @@ +comment "gstreamer1-imx needs an imx-specific Linux kernel to be built" + depends on BR2_arm && !BR2_LINUX_KERNEL + +config BR2_PACKAGE_GSTREAMER1_IMX + bool "gstreamer1-imx" + depends on BR2_LINUX_KERNEL + depends on BR2_arm # Only relevant for i.MX + select BR2_PACKAGE_GST1_PLUGINS_BASE + select BR2_PACKAGE_IMX_LIB + select BR2_PACKAGE_LIBFSLPARSER + select BR2_PACKAGE_LIBFSLCODEC + help + GStreamer-1.x plugins for hardware-accelerated audio and video + parsers and codecs on i.MX6 platform. It requires a kernel that + includes the i.MX6 specific headers to be built. + + To use the VPU, its firmware blob must be installed as well. This + can be found in the firmware-imx package in the "Hardware handling" + menu. + + https://github.com/Freescale/gstreamer-imx
package/gstreamer1/gstreamer1-imx/gstreamer1-imx-0001-Add-kernel-headers-include-path-to-src-v4l2src-compi.patch new file +31 -0
@@ -0,0 +1,31 @@ +From 107767b506de69692436205c04a002e5de0f7bee Mon Sep 17 00:00:00 2001 +From: Peter Seiderer <[email protected]> +Date: Sat, 22 Feb 2014 23:22:26 +0100 +Subject: [PATCH] Add kernel headers include path to src/v4l2src compile. + +Fixes buildroot compile with newer sysroot kernel headers +(> 3.10 because of VIDIOC_DBG_G_CHIP_IDENT ioctl removale). + +Signed-off-by: Peter Seiderer <[email protected]> +--- + src/v4l2src/wscript | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/v4l2src/wscript b/src/v4l2src/wscript +index 0b8fbb1..3013ba7 100644 +--- a/src/v4l2src/wscript ++++ b/src/v4l2src/wscript +@@ -2,7 +2,9 @@ + + + def configure(conf): +- pass ++ import os ++ if conf.options.kernel_headers: ++ conf.env.append_value('INCLUDES', [os.path.abspath(os.path.expanduser(conf.options.kernel_headers))]) + + + def build(bld): +-- +1.8.1.4 +
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +36 -0
@@ -0,0 +1,36 @@ +################################################################################ +# +# gstreamer1-imx +# +################################################################################ + +GSTREAMER1_IMX_VERSION = 0.9.3 +GSTREAMER1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GSTREAMER1_IMX_VERSION)) + +GSTREAMER1_IMX_LICENSE = LGPLv2+ +GSTREAMER1_IMX_LICENSE_FILES = LICENSE + +GSTREAMER1_IMX_DEPENDENCIES = gstreamer1 gst1-plugins-base libfslvpuwrap \ + imx-lib libfslparser libfslcodec + +# needs access to imx-specific kernel headers +GSTREAMER1_IMX_DEPENDENCIES += linux + +define GSTREAMER1_IMX_CONFIGURE_CMDS + (cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + ./waf configure \ + --prefix=/usr \ + --kernel-headers=$(LINUX_DIR)/include \ + ) +endef + +define GSTREAMER1_IMX_BUILD_CMDS + (cd $(@D); ./waf build -j $(PARALLEL_JOBS)) +endef + +define GSTREAMER1_IMX_INSTALL_TARGET_CMDS + (cd $(@D); ./waf --destdir=$(TARGET_DIR) install) +endef + +$(eval $(generic-package))
Signature · 1 line
1.8.1.4
PATCH v2 1/1 gstreamer1-imx: new package
Peter, All,
I've added Gustavo in Cc: for his hindsights on Waf.
On 2014-02-25 22:24 +0100, Peter Seiderer spake thusly:
Quoted 2 lines
Add gstreamer1-imx package (gstreamer-1.x equivalent to gstreamer-0.10/gst-fsl-plugins package).
[--SNIP--]
package/gstreamer1/gstreamer1-imx/Config.in line 6
Quoted 12 lines
package/gstreamer1/gstreamer1-imx/Config.in new file +6
-0@@ -0,0 +1,21 @@ +comment "gstreamer1-imx needs an imx-specific Linux kernel to be built" + depends on BR2_arm && !BR2_LINUX_KERNEL + +config BR2_PACKAGE_GSTREAMER1_IMX + bool "gstreamer1-imx" + depends on BR2_LINUX_KERNEL
This dependency is inherited from imx-lib, so we usually state so like this:
depends on BR2_LINUX_KERNEL # imx-lib
Quoted 7 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +1
-0@@ -0,0 +1,36 @@ +################################################################################
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk line 11
Quoted 10 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +10
-0+# +# gstreamer1-imx +# +################################################################################ + +GSTREAMER1_IMX_VERSION = 0.9.3 +GSTREAMER1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GSTREAMER1_IMX_VERSION)) + +GSTREAMER1_IMX_LICENSE = LGPLv2+ +GSTREAMER1_IMX_LICENSE_FILES = LICENSE
Yes, in case someone wonders, it is indeed the Library GPL, not the Lesser GPL, so it is indeed LGPLv2+.
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk line 13
Quoted 1 line
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +1
-0+GSTREAMER1_IMX_DEPENDENCIES = gstreamer1 gst1-plugins-base libfslvpuwrap \
You forgot to add a 'depends on BR2_PACKAGE_LIBFSLVPUWRAP' in the Config.in.
Quoted 6 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +6
-0+ imx-lib libfslparser libfslcodec + +# needs access to imx-specific kernel headers +GSTREAMER1_IMX_DEPENDENCIES += linux + +define GSTREAMER1_IMX_CONFIGURE_CMDS
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk line 29
Quoted 10 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +10
-0+ (cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + ./waf configure \ + --prefix=/usr \ + --kernel-headers=$(LINUX_DIR)/include \ + ) +endef + +define GSTREAMER1_IMX_BUILD_CMDS + (cd $(@D); ./waf build -j $(PARALLEL_JOBS))
Waf is known to have lotta isue when cross-compiling. Is that really working correctly?
Fortunately, this is only supposed to ever be run for an ARM target, so maybe they were not really concerned of making it really cross-compile friendly, as long as it works in these specific comditions.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/1 gstreamer1-imx: new package
On 03/03/2014 05:53 PM, Yann E. MORIN wrote:
Hi all.
Quoted 9 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk line 29
Quoted 2 lines
package/gstreamer1/gstreamer1-imx/gstreamer1-imx.mk new file +2
-0+define GSTREAMER1_IMX_BUILD_CMDS + (cd $(@D); ./waf build -j $(PARALLEL_JOBS))Waf is known to have lotta isue when cross-compiling. Is that really working correctly?
Fortunately, this is only supposed to ever be run for an ARM target, so maybe they were not really concerned of making it really cross-compile friendly, as long as it works in these specific comditions.
Waf makes no distinction between host and target tools.
That being said if the wscript doesn't want to execute cross-tests (intended for the target) or need to build special host tools as part of the build process, then it's possible it works.
Regards.