gst1-imx: bump version to 0.12.0
v2 cover gst1-imx: bump version to 0.12.0
Hi all,
This series is the follow-up of the previous update of Freescale packages.
http://lists.busybox.net/pipermail/buildroot/2016-January/150904.html
It takes the following comments into account:
http://lists.busybox.net/pipermail/buildroot/2016-February/151316.html
http://lists.busybox.net/pipermail/buildroot/2016-February/151318.html
Thanks,
Gary
Gary Bisson (2):
libimxvpuapi: add new package
gst1-imx: bump to version 0.12.0
package/Config.in | 1 + package/gstreamer1/gst1-imx/Config.in | 58 ++++++++++++++++++++++++++----- package/gstreamer1/gst1-imx/gst1-imx.hash | 2 ++ package/gstreamer1/gst1-imx/gst1-imx.mk | 15 ++++++-- package/libimxvpuapi/Config.in | 12 +++++++ package/libimxvpuapi/libimxvpuapi.hash | 2 ++ package/libimxvpuapi/libimxvpuapi.mk | 35 +++++++++++++++++++ 7 files changed, 114 insertions(+), 11 deletions(-) create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.hash create mode 100644 package/libimxvpuapi/Config.in create mode 100644 package/libimxvpuapi/libimxvpuapi.hash create mode 100644 package/libimxvpuapi/libimxvpuapi.mk
Signature · 1 line
2.6.4
PATCH v2 1/2 libimxvpuapi: add new package
This is a library for using the i.MX6 VPU. It is an alternative to libfslvpuwrap, hosted on Github, and has an API that features several improvements over libfslvpuwrap, which include:
* User-defined context information associated with input frames, which is passed on to corresponding output frames (to be able to identify which input frame produced which output frame)
* Groundwork for future DMA-BUF/BMM/ION/CMA allocator integration, using file descriptors instead of physical addresses
* Indicators for when it is safe to try to decode frames, which is critical in multi-threaded playback cases
* Simplified, higher-level JPEG en/decoding API, based on the VPU MJPEG codec; useful for picture viewing without the extra boilerplate for VPU-based en/decoding
Changelog 0.10.0 -> 0.10.1:
- add debian packaging files
- update waf to version 1.8.16
- add workaround in wscript to prevent stale pkg-config .pc files
- fix memory leak by adding missing IOFreeVirtMem() call in vpulib backend
This patch is based on the Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/commit/e519d6c
https://github.com/Freescale/meta-fsl-arm/commit/1dd6a5b
This package has been implicitely tested through gstreamer as the plugins rely on it for vpu decoding:
# gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm
---
Changelog v1->v2:
- add hash file
- add upstream URL
- change license to LGPLv2.1+
Thanks,
Gary
--- package/Config.in | 1 + package/libimxvpuapi/Config.in | 12 ++++++++++++ package/libimxvpuapi/libimxvpuapi.hash | 2 ++ package/libimxvpuapi/libimxvpuapi.mk | 35 ++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 package/libimxvpuapi/Config.in create mode 100644 package/libimxvpuapi/libimxvpuapi.hash create mode 100644 package/libimxvpuapi/libimxvpuapi.mk
package/Config.in +1 -0
@@ -1033,6 +1033,7 @@ menu "Multimedia" source "package/libfslparser/Config.in" source "package/libfslvpuwrap/Config.in" source "package/libhdhomerun/Config.in" + source "package/libimxvpuapi/Config.in" source "package/libmatroska/Config.in" source "package/libmms/Config.in" source "package/libmpeg2/Config.in"
package/libimxvpuapi/Config.in new file +12 -0
@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBIMXVPUAPI + bool "libimxvpuapi" + depends on BR2_arm # Only relevant for i.MX + select BR2_PACKAGE_FREESCALE_IMX + select BR2_PACKAGE_IMX_VPU + help + This library provides an API for using the iMX6 VPU video engine. It + is an alternative to Freescale's VPU wrapper. Both the wrapper and + this library are layered on top of imx-vpu, the low-level iMX6 VPU + interface. + + https://github.com/Freescale/libimxvpuapi
package/libimxvpuapi/libimxvpuapi.hash new file +2 -0
@@ -0,0 +1,2 @@ +# locally computed hash +sha256 8d7aeed88c06fda44318cef9565ae47b86461bd309908b1103a7974ed0822a8d libimxvpuapi-0.10.1.tar.gz
package/libimxvpuapi/libimxvpuapi.mk new file +35 -0
@@ -0,0 +1,35 @@ +################################################################################ +# +# libimxvpuapi +# +################################################################################ + +LIBIMXVPUAPI_VERSION = 0.10.1 +LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION)) +LIBIMXVPUAPI_LICENSE = LGPLv2.1+ +LIBIMXVPUAPI_LICENSE_FILES = LICENSE +LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu +LIBIMXVPUAPI_INSTALL_STAGING = YES + +define LIBIMXVPUAPI_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ + --prefix=/usr +endef + +define LIBIMXVPUAPI_BUILD_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS) +endef + +define LIBIMXVPUAPI_INSTALL_STAGING_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) install +endef + +define LIBIMXVPUAPI_INSTALL_TARGET_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install +endef + +$(eval $(generic-package))
Signature · 1 line
2.6.4
PATCH v2 1/2 libimxvpuapi: add new package
Hello Gary,
Quoted 103 lines · Gary Bisson
This is a library for using the i.MX6 VPU. It is an alternative to libfslvpuwrap, hosted on Github, and has an API that features several improvements over libfslvpuwrap, which include:
* User-defined context information associated with input frames, which is passed on to corresponding output frames (to be able to identify which input frame produced which output frame)
* Groundwork for future DMA-BUF/BMM/ION/CMA allocator integration, using file descriptors instead of physical addresses
* Indicators for when it is safe to try to decode frames, which is critical in multi-threaded playback cases
* Simplified, higher-level JPEG en/decoding API, based on the VPU MJPEG codec; useful for picture viewing without the extra boilerplate for VPU-based en/decodingChangelog 0.10.0 -> 0.10.1:
- add debian packaging files
- update waf to version 1.8.16
- add workaround in wscript to prevent stale pkg-config .pc files
- fix memory leak by adding missingIOFreeVirtMem()call in vpulib backendThis patch is based on the Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/commit/e519d6c
https://github.com/Freescale/meta-fsl-arm/commit/1dd6a5bThis package has been implicitely tested through gstreamer as the plugins rely on it for vpu decoding:
# gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webmSigned-off-by Gary Bisson <[email protected]>---
Changelog
v1->v2:
- add hash file
- add upstream URL
- change license to LGPLv2.1+Thanks,
Gary--- package/Config.in | 1 + package/libimxvpuapi/Config.in | 12 ++++++++++++ package/libimxvpuapi/libimxvpuapi.hash | 2 ++ package/libimxvpuapi/libimxvpuapi.mk | 35 ++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 package/libimxvpuapi/Config.in create mode 100644 package/libimxvpuapi/libimxvpuapi.hash create mode 100644 package/libimxvpuapi/libimxvpuapi.mkpackage/Config.in +1
-0@@ -1033,6 +1033,7 @@ menu "Multimedia" source "package/libfslparser/Config.in" source "package/libfslvpuwrap/Config.in" source "package/libhdhomerun/Config.in" + source "package/libimxvpuapi/Config.in" source "package/libmatroska/Config.in" source "package/libmms/Config.in" source "package/libmpeg2/Config.in"package/libimxvpuapi/Config.in new file +12
-0@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBIMXVPUAPI + bool "libimxvpuapi" + depends on BR2_arm # Only relevant for i.MX + select BR2_PACKAGE_FREESCALE_IMX + select BR2_PACKAGE_IMX_VPU + help + This library provides an API for using the iMX6 VPU video engine. It + is an alternative to Freescale's VPU wrapper. Both the wrapper and + this library are layered on top of imx-vpu, the low-level iMX6 VPU + interface. + + https://github.com/Freescale/libimxvpuapipackage/libimxvpuapi/libimxvpuapi.hash new file +2
-0@@ -0,0 +1,2 @@ +# locally computed hash +sha256 8d7aeed88c06fda44318cef9565ae47b86461bd309908b1103a7974ed0822a8d libimxvpuapi-0.10.1.tar.gzpackage/libimxvpuapi/libimxvpuapi.mk new file +8
-0@@ -0,0 +1,35 @@ +################################################################################ +# +# libimxvpuapi +# +################################################################################ + +LIBIMXVPUAPI_VERSION = 0.10.1 +LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION))
package/libimxvpuapi/libimxvpuapi.mk line 18
Quoted 10 lines
package/libimxvpuapi/libimxvpuapi.mk new file +10
-0+LIBIMXVPUAPI_LICENSE = LGPLv2.1+ +LIBIMXVPUAPI_LICENSE_FILES = LICENSE +LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu +LIBIMXVPUAPI_INSTALL_STAGING = YES + +define LIBIMXVPUAPI_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ + --prefix=/usr +endef
On my x86_64 (OpenSUSE-13.2) host build the libs and libimxvpuapi.pc are installed into $(STAGING_DIR)/usr/lib64 and $(TARGET_DIR)/usr/lib64.
To be usable by eg. gst1-imx the install path should be $(STAGING_DIR)/usr/lib and $(TARGET_DIR)/usr/lib. To achieve this I added '--libdir=/usr/lib' to overwrite the default '/usr/lib64':
package/libimxvpuapi/libimxvpuapi.mk +1 -1
@@ -14,7 +14,7 @@ LIBIMXVPUAPI_INSTALL_STAGING = YES define LIBIMXVPUAPI_CONFIGURE_CMDS cd $(@D); \ $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ - --prefix=/usr + --prefix=/usr --libdir=/usr/lib endef define LIBIMXVPUAPI_BUILD_CMDS
With this you can add my
for '...! imxvpudec ! imxipuvideosink'
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...
Regards,
Peter
Quoted 17 lines
package/libimxvpuapi/libimxvpuapi.mk new file +17
-0+ +define LIBIMXVPUAPI_BUILD_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS) +endef + +define LIBIMXVPUAPI_INSTALL_STAGING_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) install +endef + +define LIBIMXVPUAPI_INSTALL_TARGET_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install +endef + +$(eval $(generic-package))
PATCH v2 1/2 libimxvpuapi: add new package
Peter, All,
Quoted 22 lines · Peter Seiderer
Hello Gary,
Review
Quoted 13 lines · Gary Bisson
<snip>
(quoted diff) +12
-0+LIBIMXVPUAPI_VERSION = 0.10.1 +LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION)) +LIBIMXVPUAPI_LICENSE = LGPLv2.1+ +LIBIMXVPUAPI_LICENSE_FILES = LICENSE +LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu +LIBIMXVPUAPI_INSTALL_STAGING = YES + +define LIBIMXVPUAPI_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ + --prefix=/usr +endefOn my
x86_64(OpenSUSE-13.2) host build the libs and libimxvpuapi.pc are installed into $(STAGING_DIR)/usr/lib64 and $(TARGET_DIR)/usr/lib64.
Quoted 3 lines
To be usable by eg. gst1-imx the install path should be $(STAGING_DIR)/usr/lib and $(TARGET_DIR)/usr/lib. To achieve this I added '--libdir=/usr/lib' to overwrite the default '
/usr/lib64':
I'd like to understand why it behaves like this with your setup. I'm using a 64-bit OS too (Debian Testing) but the libs go to /usr/lib as expected.
Could you pastebin the full log of libimxvpuapi build, your buildroot configuration as well as you 'env'?
Quoted 13 lines
package/libimxvpuapi/libimxvpuapi.mk +1
-1@@ -14,7 +14,7 @@ LIBIMXVPUAPI_INSTALL_STAGING = YES define LIBIMXVPUAPI_CONFIGURE_CMDS cd $(@D); \ $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ - --prefix=/usr + --prefix=/usr --libdir=/usr/lib endef define LIBIMXVPUAPI_BUILD_CMDS
Quoted 5 lines
With this you can add my
Tested-by Peter Seiderer <[email protected]>for '...! imxvpudec ! imxipuvideosink'
Ok, I'll do that once I understand the difference which requires this libdir argument.
Quoted 4 lines
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...
Does a basic gstreamer pipeline work?
# gst-launch-1.0 videotestsrc ! imxeglvivsink
If not there's no wonder qt5 doesn't like it. I haven't tried qt5 but I'm sure the gstreamer imxeglvivsink does work.
In case you've enabled BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV, you might need to load the Galcore module manually in case you don't have eudev for instance:
# insmod /lib/modules/3.14.28/extra/galcore.ko
Regards,
Gary
PATCH v2 1/2 libimxvpuapi: add new package
Hello Gary,
Quoted 5 lines
Gesendet: Dienstag, 16. Februar 2016 um 23:57 Uhr
Von: "Gary Bisson" <[email protected]>
An: "Peter Seiderer" <[email protected]>
Cc: buildroot at busybox.net, "Thomas Petazzoni" <[email protected]>
Betreff: Re: [Buildroot] [PATCH v2 1/2] libimxvpuapi: add new package
[snip]
Quoted 9 lines
Quoted 5 lines
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...Does a basic gstreamer pipeline work?
# gst-launch-1.0 videotestsrc ! imxeglvivsink
No:
$ GST_DEBUG=*:3 gst-launch-1.0 videotestsrc ! imxeglvivsink Setting pipeline to PAUSED ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1 0:00:00.229253000 245 0x9d1ee0 ERROR imxeglplatform_fb egl_platform_fb.c:72:gst_imx_egl_viv_sink_egl_platform_create: eglGetDisplay failed: bad alloc ERROR: Pipeline doesn't want to pause. Setting pipeline to NULL ... Freeing pipeline ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1
Using Buildroot-2016-02-rc1 with
https://patchwork.ozlabs.org/patch/577011/mbox/
https://patchwork.ozlabs.org/patch/577012/mbox/
and 'qt5tools: new package' patches on top with the following defconfig (based on the original nitrogen6x_defconfig config):
BR2_arm=y
BR2_cortex_a9=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_GLIBC_VERSION_2_22=y
BR2_BINUTILS_VERSION_2_25_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/nitrogen6x/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/f4c8395/linux-imx6-f4c8395.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary"
BR2_LINUX_KERNEL_ZIMAGE=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_max imx6q-sabrelite" BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_IMX=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs"
BR2_PACKAGE_QT5BASE_FONTCONFIG=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5GRAPHICALEFFECTS=y
BR2_PACKAGE_QT5MULTIMEDIA=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_QT5SERIALPORT=y
BR2_PACKAGE_QT5TOOLS=y
BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS=y
BR2_PACKAGE_QT5WEBSOCKETS=y
BR2_PACKAGE_QT5SCRIPT=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_IMX_LIB=y
BR2_PACKAGE_IMX_GPU_VIV=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBV4L=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBIMXVPUAPI=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="nitrogen6q"
BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-boot-imx6/tarball/a4070a8/u-boot-a4070a8.tar.gz" BR2_TARGET_UBOOT_FORMAT_IMX=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
Quoted 3 lines
If not there's no wonder qt5 doesn't like it. I haven't tried qt5 but I'm sure the gstreamer imxeglvivsink does work.
My last working version was based on buildroot-2015.11.1 plus 'qt5: bump version to 5.5.1' and 'qt5tools: new package' on top...
Quoted 4 lines
In case you've enabled
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV, you might need to load the Galcore module manually in case you don't have eudev for instance:# insmod /lib/modules/3.14.28/extra/galcore.ko
No, working with boundarydevices linux-imx6-f4c8395 and original boundary config and there is a '/dev/galcore' entry on the target...
Regards,
Peter
Quoted 4 lines
Regards,
Gary
PATCH v2 1/2 libimxvpuapi: add new package
Hi Peter,
Quoted 36 lines · Peter Seiderer
Hello Gary,
Quoted 5 lines
Gesendet: Dienstag, 16. Februar 2016 um 23:57 Uhr
Von: "Gary Bisson" <[email protected]>
An: "Peter Seiderer" <[email protected]>
Cc: buildroot at busybox.net, "Thomas Petazzoni" <[email protected]>
Betreff: Re: [Buildroot] [PATCH v2 1/2] libimxvpuapi: add new package[snip]
Quoted 9 lines
Quoted 5 lines
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...Does a basic gstreamer pipeline work?
# gst-launch-1.0 videotestsrc ! imxeglvivsinkNo:
$ GST_DEBUG=*:3 gst-launch-1.0 videotestsrc ! imxeglvivsink Setting pipeline to PAUSED ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1 0:00:00.229253000 245 0x9d1ee0 ERROR imxeglplatform_fb egl_platform_fb.c:72:gst_imx_egl_viv_sink_egl_platform_create: eglGetDisplay failed: bad alloc ERROR: Pipeline doesn't want to pause. Setting pipeline to NULL ... Freeing pipeline ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1
Quoted 3 lines
Using Buildroot-2016-02-rc1 with
https://patchwork.ozlabs.org/patch/577011/mbox/
https://patchwork.ozlabs.org/patch/577012/mbox/
The setup I tried yesterday was:
- Buildroot master commit f3fac0dcfdf (post 2016.02-rc1).
- Plus the two patches you mention above
Quoted 78 lines
and 'qt5tools: new package' patches on top with the following defconfig (based on the original
nitrogen6x_defconfigconfig):BR2_arm=y
BR2_cortex_a9=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_GLIBC_VERSION_2_22=y
BR2_BINUTILS_VERSION_2_25_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/nitrogen6x/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/f4c8395/linux-imx6-f4c8395.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary"
BR2_LINUX_KERNEL_ZIMAGE=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_max imx6q-sabrelite" BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_IMX=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs"
BR2_PACKAGE_QT5BASE_FONTCONFIG=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5GRAPHICALEFFECTS=y
BR2_PACKAGE_QT5MULTIMEDIA=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_QT5SERIALPORT=y
BR2_PACKAGE_QT5TOOLS=y
BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS=y
BR2_PACKAGE_QT5WEBSOCKETS=y
BR2_PACKAGE_QT5SCRIPT=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_IMX_LIB=y
BR2_PACKAGE_IMX_GPU_VIV=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBV4L=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBIMXVPUAPI=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="nitrogen6q"
BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-boot-imx6/tarball/a4070a8/u-boot-a4070a8.tar.gz" BR2_TARGET_UBOOT_FORMAT_IMX=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=yQuoted 3 lines
If not there's no wonder qt5 doesn't like it. I haven't tried qt5 but I'm sure the gstreamer imxeglvivsink does work.
My last working version was based on buildroot-2015.11.1 plus 'qt5: bump version to 5.5.1' and 'qt5tools: new package' on top...
Quoted 7 lines
Quoted 4 lines
In case you've enabled
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV, you might need to load the Galcore module manually in case you don't have eudev for instance:# insmod /lib/modules/3.14.28/extra/galcore.koNo, working with boundarydevices linux-imx6-f4c8395 and original boundary config and there is a '
/dev/galcore' entry on the target...
Yes but that is the problem. Please try again with BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV.
As you know, 3D graphics libraries match a specific kernel driver. Since it was an issue for many people, Vivante started to provide a kernel module so you can easily have the latest driver on an older kernel.
Since I've updated the graphics to the latest (5.0.11 p7.1), the driver inside the 3.14.28 kernel is outdated so you need to use the Vivante kernel module. I didn't for the selection of the kernel module when the libraries are selected since some kernels (3.14.52) have the correct driver built-in.
Sorry for the confusion but know that if you want to make sure the driver matches the user-space blobs, always select the Vivante kernel module as I'll make to always update both at the same time.
Regards,
Gary
PATCH v2 1/2 libimxvpuapi: add new package
Hello Gary,
Quoted 147 lines
Gesendet: Mittwoch, 17. Februar 2016 um 10:37 Uhr
Von: "Gary Bisson" <[email protected]>
An: "Peter Seiderer" <[email protected]>
Cc: buildroot at busybox.net, "Thomas Petazzoni" <[email protected]>
Betreff: Re: [Buildroot] [PATCH v2 1/2] libimxvpuapi: add new packageHi Peter,
Quoted 36 lines · Peter Seiderer
Hello Gary,
Quoted 5 lines
Gesendet: Dienstag, 16. Februar 2016 um 23:57 Uhr
Von: "Gary Bisson" <[email protected]>
An: "Peter Seiderer" <[email protected]>
Cc: buildroot at busybox.net, "Thomas Petazzoni" <[email protected]>
Betreff: Re: [Buildroot] [PATCH v2 1/2] libimxvpuapi: add new package[snip]
Quoted 9 lines
Quoted 5 lines
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...Does a basic gstreamer pipeline work?
# gst-launch-1.0 videotestsrc ! imxeglvivsinkNo:
$ GST_DEBUG=*:3 gst-launch-1.0 videotestsrc ! imxeglvivsink Setting pipeline to PAUSED ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1 0:00:00.229253000 245 0x9d1ee0 ERROR imxeglplatform_fb egl_platform_fb.c:72:gst_imx_egl_viv_sink_egl_platform_create: eglGetDisplay failed: bad alloc ERROR: Pipeline doesn't want to pause. Setting pipeline to NULL ... Freeing pipeline ... mxc_sdc_fb fb.20: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz imx-ipuv3 2800000.ipu: try ipu internal clk imx-ipuv3 2800000.ipu: disp=0, pixel_clk=148500000 148500000 parent=148500000 div=1Quoted 3 lines
Using Buildroot-2016-02-rc1 with
https://patchwork.ozlabs.org/patch/577011/mbox/
https://patchwork.ozlabs.org/patch/577012/mbox/The setup I tried yesterday was:
- Buildroot master commitf3fac0dcfdf(post 2016.02-rc1).
- Plus the two patches you mention aboveQuoted 78 lines
and 'qt5tools: new package' patches on top with the following defconfig (based on the original
nitrogen6x_defconfigconfig):BR2_arm=y
BR2_cortex_a9=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_GLIBC_VERSION_2_22=y
BR2_BINUTILS_VERSION_2_25_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/nitrogen6x/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/f4c8395/linux-imx6-f4c8395.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary"
BR2_LINUX_KERNEL_ZIMAGE=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_max imx6q-sabrelite" BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST1_PLUGINS_BAD=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
BR2_PACKAGE_GST1_IMX=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y
BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="eglfs"
BR2_PACKAGE_QT5BASE_FONTCONFIG=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
BR2_PACKAGE_QT5BASE_PNG=y
BR2_PACKAGE_QT5GRAPHICALEFFECTS=y
BR2_PACKAGE_QT5MULTIMEDIA=y
BR2_PACKAGE_QT5QUICKCONTROLS=y
BR2_PACKAGE_QT5SERIALPORT=y
BR2_PACKAGE_QT5TOOLS=y
BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS=y
BR2_PACKAGE_QT5WEBSOCKETS=y
BR2_PACKAGE_QT5SCRIPT=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_IMX_LIB=y
BR2_PACKAGE_IMX_GPU_VIV=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBV4L=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBIMXVPUAPI=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="nitrogen6q"
BR2_TARGET_UBOOT_CUSTOM_TARBALL=y BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-boot-imx6/tarball/a4070a8/u-boot-a4070a8.tar.gz" BR2_TARGET_UBOOT_FORMAT_IMX=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=yQuoted 3 lines
If not there's no wonder qt5 doesn't like it. I haven't tried qt5 but I'm sure the gstreamer imxeglvivsink does work.
My last working version was based on buildroot-2015.11.1 plus 'qt5: bump version to 5.5.1' and 'qt5tools: new package' on top...
Quoted 7 lines
Quoted 4 lines
In case you've enabled
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV, you might need to load the Galcore module manually in case you don't have eudev for instance:# insmod /lib/modules/3.14.28/extra/galcore.koNo, working with boundarydevices linux-imx6-f4c8395 and original boundary config and there is a '
/dev/galcore' entry on the target...Yes but that is the problem. Please try again with
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV.As you know, 3D graphics libraries match a specific kernel driver. Since it was an issue for many people, Vivante started to provide a kernel module so you can easily have the latest driver on an older kernel.
Quoted 6 lines
Since I've updated the graphics to the latest (5.0.11 p7.1), the driver inside the 3.14.28 kernel is outdated so you need to use the Vivante kernel module. I didn't for the selection of the kernel module when the libraries are selected since some kernels (3.14.52) have the correct driver built-in.
Got it now, the missing part was:
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV=y
Qt5 eglfs and gstreamer imxeglvivsink are working now...
Quoted 4 lines
Sorry for the confusion but know that if you want to make sure the driver matches the user-space blobs, always select the Vivante kernel module as I'll make to always update both at the same time.
Maybe a little hint in board/boundarydevices/nitrogen6x/readme.txt would be useful?
Many thanks for your support...
Regards,
Peter
Quoted 7 lines
Regards,
Gary
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
PATCH v2 1/2 libimxvpuapi: add new package
Hi Peter,
Quoted 21 lines · Peter Seiderer
Hello Gary,
Quoted 12 lines
<snip>
Quoted 2 lines
No, working with boundarydevices linux-imx6-f4c8395 and original boundary config and there is a '
/dev/galcore' entry on the target...Yes but that is the problem. Please try again with
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV.As you know, 3D graphics libraries match a specific kernel driver. Since it was an issue for many people, Vivante started to provide a kernel module so you can easily have the latest driver on an older kernel.
Quoted 6 lines
Since I've updated the graphics to the latest (5.0.11 p7.1), the driver inside the 3.14.28 kernel is outdated so you need to use the Vivante kernel module. I didn't for the selection of the kernel module when the libraries are selected since some kernels (3.14.52) have the correct driver built-in.
Quoted 5 lines
Got it now, the missing part was:
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV=y
Qt5 eglfs and gstreamer imxeglvivsink are working now...
Good to hear!
Quoted 6 lines
Quoted 4 lines
Sorry for the confusion but know that if you want to make sure the driver matches the user-space blobs, always select the Vivante kernel module as I'll make to always update both at the same time.
Maybe a little hint in
board/boundarydevices/nitrogen6x/readme.txtwould be useful?
Well it is not Nitrogen6x-specific, it applies to all i.MX6 platforms so I'm not sure where would be the best place to give this info apart from the help text. Thomas, any idea on this?
Yocto is forcing the use of the Vivante kernel module, maybe we should do the same but I'm not fond of this approach.
Quoted 1 line
Many thanks for your support...
No problem. Thanks for your valuable feedback!
Regards,
Gary
PATCH v2 1/2 libimxvpuapi: add new package
Hello,
Quoted 3 lines · Gary Bisson
Well it is not Nitrogen6x-specific, it applies to all i.MX6 platforms so I'm not sure where would be the best place to give this info apart from the help text. Thomas, any idea on this?
I am not sure where to store such platform-specific information. A new section in the Buildroot manual, perhaps?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/2 libimxvpuapi: add new package
In reply to Gary BissonQuoted 37 lines · Gary Bisson
Hi Peter,
Quoted 21 lines · Peter Seiderer
Hello Gary,
Quoted 12 lines
<snip>
Quoted 2 lines
No, working with boundarydevices linux-imx6-f4c8395 and original boundary config and there is a '
/dev/galcore' entry on the target...Yes but that is the problem. Please try again with
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV.As you know, 3D graphics libraries match a specific kernel driver. Since it was an issue for many people, Vivante started to provide a kernel module so you can easily have the latest driver on an older kernel.
Quoted 6 lines
Since I've updated the graphics to the latest (5.0.11 p7.1), the driver inside the 3.14.28 kernel is outdated so you need to use the Vivante kernel module. I didn't for the selection of the kernel module when the libraries are selected since some kernels (3.14.52) have the correct driver built-in.
Quoted 5 lines
Got it now, the missing part was:
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV=y
Qt5 eglfs and gstreamer imxeglvivsink are working now...
Good to hear!
Quoted 5 lines
Quoted 4 lines
Sorry for the confusion but know that if you want to make sure the driver matches the user-space blobs, always select the Vivante kernel module as I'll make to always update both at the same time.
Quoted 8 lines
Quoted 1 line
Maybe a little hint in
board/boundarydevices/nitrogen6x/readme.txtwould be useful?Well it is not Nitrogen6x-specific, it applies to all i.MX6 platforms so I'm not sure where would be the best place to give this info apart from the help text. Thomas, any idea on this?
Yocto is forcing the use of the Vivante kernel module, maybe we should do the same but I'm not fond of this approach.
We can't force select because BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV depends on
the kernel to be built. But we could do
select BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV if BR2_LINUX_KERNEL
I don't think this would be such a bad idea. Added size isn't really a big
deal. Of course, the user still has to load the module...
Regards,
Arnout
Quoted 12 lines
Quoted 2 lines
Many thanks for your support...
No problem. Thanks for your valuable feedback!
Regards,
Gary
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v2 1/2 libimxvpuapi: add new package
In reply to Gary BissonHello Gary,
Quoted 35 lines
Gesendet: Dienstag, 16. Februar 2016 um 23:57 Uhr
Von: "Gary Bisson" <[email protected]>
An: "Peter Seiderer" <[email protected]>
Cc: buildroot at busybox.net, "Thomas Petazzoni" <[email protected]>
Betreff: Re: [Buildroot] [PATCH v2 1/2] libimxvpuapi: add new packagePeter, All,
Quoted 22 lines · Peter Seiderer
Hello Gary,
Review
Quoted 13 lines · Gary Bisson
<snip>
(quoted diff) +12
-0+LIBIMXVPUAPI_VERSION = 0.10.1 +LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION)) +LIBIMXVPUAPI_LICENSE = LGPLv2.1+ +LIBIMXVPUAPI_LICENSE_FILES = LICENSE +LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu +LIBIMXVPUAPI_INSTALL_STAGING = YES + +define LIBIMXVPUAPI_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ + --prefix=/usr +endefOn my
x86_64(OpenSUSE-13.2) host build the libs and libimxvpuapi.pc are installed into $(STAGING_DIR)/usr/lib64 and $(TARGET_DIR)/usr/lib64.Quoted 3 lines
To be usable by eg. gst1-imx the install path should be $(STAGING_DIR)/usr/lib and $(TARGET_DIR)/usr/lib. To achieve this I added '--libdir=/usr/lib' to overwrite the default '
/usr/lib64':
Quoted 7 lines
I'd like to understand why it behaves like this with your setup. I'm using a 64-bit OS too (Debian Testing) but the libs go to
/usr/libas expected.Could you pastebin the full log of libimxvpuapi build, your buildroot configuration as well as you 'env'?
Build log attached (rm -r build/libimxvpuapi-0.10.1; make V=1 2>&1 | tee out_build_libimxvpuapi_orig.txt), same buildroot setup as in previous e-mail: out_build_libimxvpuapi_orig.txt
$ cd build/libimxvpuapi-0.10.1/
$ /home/seiderer/Work/BD_Nitrogen6x/Buildroot-2016-02/build_2016_02_001/host/usr/bin/python2 ./waf configure --help
...
--libdir=LIBDIR object code libraries [EXEC_PREFIX/lib64]
...$ env
LESSKEY=/etc/lesskey.bin
NNTPSERVER=news
MANPATH=/usr/local/man:/usr/share/man
HOSTNAME=XXXXXXX
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
HOST=XXXXXXX
TERM=rxvt-unicode-256color
SHELL=/bin/bash
PROFILEREAD=true
HISTSIZE=1000
MORE=-sl
JRE_HOME=/usr/lib64/jvm/java/jre
USER=seiderer
LS_COLORS=
XNLSPATH=/usr/share/X11/nls
QEMU_AUDIO_DRV=pa
HOSTTYPE=x86_64
CONFIG_SITE=/usr/share/site/x86_64-unknown-linux-gnu
FROM_HEADER=
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/etc/xdg
LIBGL_DEBUG=quiet
MINICOM=-c on
MAIL=/var/mail/seiderer
PATH=/opt/tools/bin:/home/seiderer/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
CPU=x86_64
JAVA_BINDIR=/usr/lib64/jvm/java/bin
INPUTRC=/home/seiderer/.inputrc
PWD=/home/seiderer/Work/BD_Nitrogen6x/Buildroot-2016-02/build_2016_02_001/build/libimxvpuapi-0.10.1
gopher_proxy=
JAVA_HOME=/usr/lib64/jvm/java
LANG=en_US.UTF-8
PYTHONSTARTUP=/etc/pythonstart
SDK_HOME=/usr/lib64/jvm/java
GPG_TTY=/dev/pts/3
AUDIODRIVER=pulseaudio
QT_SYSTEM_DIR=/usr/share/desktop-data
JDK_HOME=/usr/lib64/jvm/java
SHLVL=1
HOME=/home/seiderer
ALSA_CONFIG_PATH=/etc/alsa-pulse.conf
SDL_AUDIODRIVER=pulse
LESS_ADVANCED_PREPROCESSOR=no
OSTYPE=linux
LS_OPTIONS=-N --color=none -T 0
WINDOWMANAGER=/usr/bin/gnome
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
LESS=-M -I -R
MACHTYPE=x86_64-suse-linux
LOGNAME=seiderer
CVS_RSH=ssh
XDG_DATA_DIRS=/usr/share
SSH_CONNECTION=10.5.121.193 49159 10.5.123.15 22
LESSOPEN=lessopen.sh %s
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=localhost:13.0
XAUTHLOCALHOSTNAME=DLxX9PSE02
NO_AT_BRIDGE=1
LESSCLOSE=lessclose.sh %s %s
G_BROKEN_FILENAMES=1
JAVA_ROOT=/usr/lib64/jvm/java
COLORTERM=1
BASH_FUNC_mc%%=() { . /usr/share/mc/mc-wrapper.sh
}
OLDPWD=/home/seiderer/Work/BD_Nitrogen6x/Buildroot-2016-02/build_2016_02_001
_=/usr/bin/envRegards,
Peter
Quoted 33 lines
Quoted 13 lines
package/libimxvpuapi/libimxvpuapi.mk +1
-1@@ -14,7 +14,7 @@ LIBIMXVPUAPI_INSTALL_STAGING = YES define LIBIMXVPUAPI_CONFIGURE_CMDS cd $(@D); \ $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ - --prefix=/usr + --prefix=/usr --libdir=/usr/lib endef define LIBIMXVPUAPI_BUILD_CMDSQuoted 5 lines
With this you can add my
Tested-by Peter Seiderer <[email protected]>for '...! imxvpudec ! imxipuvideosink'
Ok, I'll do that once I understand the difference which requires this libdir argument.
Quoted 4 lines
But I had problems using the imxeglvivsink element and
with qt5 eglfs, suspecting your 'Update most Freescale packages' patch series (using buildroot-2016.02-rc1 with your '[PATCH v3 0/2] gst1-imx: bump version to 0.12.0' patches on top), but did not find time yet to investigate further...Does a basic gstreamer pipeline work?
# gst-launch-1.0 videotestsrc ! imxeglvivsinkIf not there's no wonder qt5 doesn't like it. I haven't tried qt5 but I'm sure the gstreamer imxeglvivsink does work.
Quoted 8 lines
In case you've enabled
BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV, you might need to load the Galcore module manually in case you don't have eudev for instance:# insmod /lib/modules/3.14.28/extra/galcore.koRegards,
Gary
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: out_build_libimxvpuapi_orig.txt
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160217/72bf950a/attachment.txt>
PATCH v2 1/2 libimxvpuapi: add new package
Hi Peter,
Quoted 5 lines · Peter Seiderer
<snip>
Quoted 3 lines
Could you pastebin the full log of libimxvpuapi build, your buildroot configuration as well as you 'env'?
Quoted 7 lines
Build log attached (rm -r build/libimxvpuapi-0.10.1; make V=1 2>&1 | tee out_build_libimxvpuapi_orig.txt), same buildroot setup as in previous e-mail: out_build_libimxvpuapi_orig.txt
$ cd build/libimxvpuapi-0.10.1/ $ /home/seiderer/Work/BD_Nitrogen6x/Buildroot-2016-02/build_2016_02_001/host/usr/bin/python2 ./waf configure --help ... --libdir=LIBDIR object code libraries [EXEC_PREFIX/lib64]
Thanks for your quick reply. Indeed the same command on my platform gives me:
--libdir=LIBDIR object code libraries [EXEC_PREFIX/lib]
Plus your env seems just fine. Digging into it I've found my the difference is between our system, multiarch is enabled on mine. In the Configure.py script the libdir is initialized as follows:
if not env.LIBDIR:
if Options.options.libdir:
env.LIBDIR=Utils.sane_path(Options.options.libdir)
else:
env.LIBDIR=Utils.subst_vars('${PREFIX}/lib%s'%Utils.lib64(),env)And Utils.py tells us where the 64 comes from:
def lib64():
if os.sep=='/':
if platform.architecture()[0]=='64bit':
if os.path.exists('/usr/lib64')and not os.path.exists('/usr/lib32'):
return'64'return''
So I'll submit the v3 today and cc you. Thanks for reporting and fixing the issue!
Regards,
Gary
PATCH v2 2/2 gst1-imx: bump to version 0.12.0
In reply to Gary BissonChangelog:
* vpu:
- Completely rewritten plugin code; elements now based on libimxvpuapi instead of libfslvpuwrap
- imxvpuenc_h264 inserts SPS/PPS data in front of I/IDR frames
- imxvpuenc_mjpeg's quality factor actually has an effect, and is equivalent to the libjpeg's quality factor (it is used in exactly the same way to scale the quantization matrix' coefficients)
- the encoder's output buffers no longer have to use DMA memory; they use regular system memory instead
- new support in imxvpudec (referred to as "chroma interleaving") for NV12, NV16, NV24 as output formats as an alternative to the I420, Y42B, Y444 formats
- removed all of the system frame number tracking code, since it is unnecessary; Instead, the libimxvpuapi's context fields are used to associate input/output frames with GstVideoCodecFrame system frame numbers
- fix memory leaks related to missing buffer pool unref'ing
* imxv4l2videosrc:
- support for crop metadata
- element uses the width, height, etc. of the format that the device actually uses during operation (instead of default values)
- autofocus control support via GstPhotography
- fix incorrect GLib warnings
- fix segmentation fault when shutting down the element
* eglvivsink:
- remove extra g_free() calls, which lead to runtime errors
- remove GLESv2 VIVANTE link dependencies
- add Android platform
- manually retrieve VIV direct texture functions
with this and the link dependency elimination, this means that for platforms except the framebuffer one, no Vivante specific headers and libraries are needed anymore
- fix blocking issue in the Wayland platform mainloop
* improved and expanded documentation
* pxp: NV16 *is* supported after all (it was actually a bug in GStreamer pre-1.5.91)
NOTE: this does not break compatibility with GStreamer versions older than 1.5.91
* compositor: Update backported aggregator code to GStreamer 1.6
* blitter:
- error handling improvements
- add missing buffer pool unref'ing, which lead to memory leaks
- add missing compositor dependency to blitter base
* uniaudio:
- only build the uniaudio plugin if at least one codec was found during configuration
- disable plugin if the gstaudio library is not available
- add AAC profile field to the sink caps with GStreamer >= 1.4.4 to ensure the uniaudio decoder is only used for AAC-LC data
* ipu: increase fill frame width from 8 to 64 pixels to make IPU fill operations work with pre-3.14 Freescale kernels
* g2d: use padding pixels when setting surface parameters, fixing G2D failures with frame sizes that aren't aligned
* wscript:
- improve Android support
- fix installation paths for the common, blitter, compositor libraries
This is based on the Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/commit/cf7a088
However this package now offers a more flexible approach because it can be built without the GPU or VPU elements for devices based on SoCs that lack those features like the new i.MX7.
Tested with the following commands on i.MX6Q (IPU):
# gst-launch-1.0 playbin uri=file:///root/tears_of_steel_1080p.webm # gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \ matroskademux ! imxvpudec ! imxipuvideosink # gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \ matroskademux ! imxvpudec ! imxeglvivsink
Tested with the following commands on i.MX6SX (PXP):
# gst-launch-1.0 imxv4l2videosrc device=/dev/video1 ! imxpxpvideosink
---
Changelog v1->v2:
- add hash file
So far I've kept the PXP/IPU "options" which are not really options. As explained earlier, the goal is for users of the i.MX7 to know the PXP plugin will be built without any other dependency.
Thanks,
Gary
--- package/gstreamer1/gst1-imx/Config.in | 58 ++++++++++++++++++++++++++----- package/gstreamer1/gst1-imx/gst1-imx.hash | 2 ++ package/gstreamer1/gst1-imx/gst1-imx.mk | 15 ++++++-- 3 files changed, 64 insertions(+), 11 deletions(-) create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.hash
package/gstreamer1/gst1-imx/Config.in +49 -9
@@ -1,19 +1,13 @@ comment "gst1-imx needs an imx-specific Linux kernel to be built" depends on BR2_arm && !BR2_LINUX_KERNEL -# Required by imx-gpu-viv -comment "gst1-imx needs an (e)glibc toolchain" - depends on BR2_arm - depends on !BR2_TOOLCHAIN_USES_GLIBC - -config BR2_PACKAGE_GST1_IMX +menuconfig BR2_PACKAGE_GST1_IMX bool "gst1-imx" depends on BR2_LINUX_KERNEL depends on BR2_arm # Only relevant for i.MX - depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv - depends on BR2_PACKAGE_IMX_GPU_VIV - depends on BR2_PACKAGE_LIBFSLVPUWRAP select BR2_PACKAGE_GST1_PLUGINS_BASE + select BR2_PACKAGE_GST1_IMX_IPU_PLUGIN + select BR2_PACKAGE_GST1_IMX_PXP_PLUGIN help This is a set of GStreamer 1.0 plugins for plugins for Freescale's i.MX6 platforms, with emphasis on video en/decoding using the VPU
@@ -25,3 +19,49 @@ config BR2_PACKAGE_GST1_IMX The software as a whole is currently in beta stage. https://github.com/Freescale/gstreamer-imx + +if BR2_PACKAGE_GST1_IMX + +config BR2_PACKAGE_GST1_IMX_IPU_PLUGIN + bool "IPU plugin" + help + IPU plugin library + +config BR2_PACKAGE_GST1_IMX_PXP_PLUGIN + bool "PXP plugin" + help + PXP plugin library + +config BR2_PACKAGE_GST1_IMX_V4L2_PLUGIN + bool "V4L2 plugin" + select BR2_PACKAGE_GST1_PLUGINS_BAD + help + V4L2 plugin library + +config BR2_PACKAGE_GST1_IMX_VPU_PLUGIN + bool "VPU plugin" + select BR2_PACKAGE_LIBIMXVPUAPI + help + VPU plugin library + +# Required by imx-gpu-viv +comment "GPU sinks need an (e)glibc toolchain" + depends on !BR2_TOOLCHAIN_USES_GLIBC + +config BR2_PACKAGE_GST1_IMX_EGL_PLUGIN + bool "EGL plugin" + depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv + depends on BR2_PACKAGE_IMX_GPU_VIV + help + EGL plugin library + +config BR2_PACKAGE_GST1_IMX_G2D_PLUGIN + bool "G2D plugin" + depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv + depends on BR2_PACKAGE_IMX_GPU_VIV + depends on BR2_PACKAGE_GST1_IMX_EGL_PLUGIN + select BR2_PACKAGE_IMX_GPU_VIV_G2D + help + G2D plugin library + +endif
package/gstreamer1/gst1-imx/gst1-imx.hash new file +2 -0
@@ -0,0 +1,2 @@ +# locally computed hash +sha256 df34f080e24ac8f1619780aa5ad4e6ab1333f822cd2bf5fcb380b28c97248810 gst1-imx-0.12.0.tar.gz
package/gstreamer1/gst1-imx/gst1-imx.mk +13 -2
@@ -4,7 +4,7 @@ # ################################################################################ -GST1_IMX_VERSION = 0.11.1 +GST1_IMX_VERSION = 0.12.0 GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION)) GST1_IMX_LICENSE = LGPLv2+
@@ -13,13 +13,23 @@ GST1_IMX_LICENSE_FILES = LICENSE GST1_IMX_INSTALL_STAGING = YES GST1_IMX_DEPENDENCIES += host-pkgconf host-python \ - imx-gpu-viv gstreamer1 gst1-plugins-base libfslvpuwrap + gstreamer1 gst1-plugins-base # needs access to imx-specific kernel headers GST1_IMX_DEPENDENCIES += linux GST1_IMX_CONF_OPTS += --prefix="/usr" \ --kernel-headers="$(LINUX_DIR)/include" +ifeq ($(BR2_PACKAGE_GST1_IMX_V4L2_PLUGIN),y) +GST1_IMX_DEPENDENCIES += gst1-plugins-bad +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX_VPU_PLUGIN),y) +GST1_IMX_DEPENDENCIES += libimxvpuapi +endif + +ifeq ($(BR2_PACKAGE_GST1_IMX_EGL_PLUGIN),y) +GST1_IMX_DEPENDENCIES += imx-gpu-viv ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) GST1_IMX_DEPENDENCIES += xlib_libX11 GST1_IMX_CONF_OPTS += --egl-platform=x11
@@ -31,6 +41,7 @@ else GST1_IMX_CONF_OPTS += --egl-platform=fb endif endif +endif define GST1_IMX_CONFIGURE_CMDS cd $(@D); \
Signature · 1 line
2.6.4