* [Buildroot] [PATCH] Add HW decoding support for Hantro x170
@ 2013-05-27 21:13 Alexandre Belloni
2013-05-28 11:39 ` Thomas Petazzoni
0 siblings, 1 reply; 4+ messages in thread
From: Alexandre Belloni @ 2013-05-27 21:13 UTC (permalink / raw)
To: buildroot
This actually consist in a set of proprietary libs, on2-8170-libs and a
gstreamer plugin making use of those libraries.
on2-8170-libs is probably libc agnostic but this has not been tested
thoroughly.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
package/multimedia/Config.in | 2 ++
package/multimedia/gst-plugin-x170/Config.in | 10 ++++++++
.../gst-plugin-x170-01-correct-CFLAGS.patch | 28 ++++++++++++++++++++++
.../multimedia/gst-plugin-x170/gst-plugin-x170.mk | 14 +++++++++++
package/multimedia/on2-8170-libs/Config.in | 8 +++++++
package/multimedia/on2-8170-libs/on2-8170-libs.mk | 20 ++++++++++++++++
6 files changed, 82 insertions(+)
create mode 100644 package/multimedia/gst-plugin-x170/Config.in
create mode 100644 package/multimedia/gst-plugin-x170/gst-plugin-x170-01-correct-CFLAGS.patch
create mode 100644 package/multimedia/gst-plugin-x170/gst-plugin-x170.mk
create mode 100644 package/multimedia/on2-8170-libs/Config.in
create mode 100644 package/multimedia/on2-8170-libs/on2-8170-libs.mk
diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 931e6d3..e13e9da 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -14,12 +14,14 @@ source "package/multimedia/gst-plugins-base/Config.in"
source "package/multimedia/gst-plugins-good/Config.in"
source "package/multimedia/gst-plugins-bad/Config.in"
source "package/multimedia/gst-plugins-ugly/Config.in"
+source "package/multimedia/gst-plugin-x170/Config.in"
source "package/multimedia/lame/Config.in"
source "package/multimedia/madplay/Config.in"
source "package/multimedia/mpd/Config.in"
source "package/multimedia/mpg123/Config.in"
source "package/multimedia/mplayer/Config.in"
source "package/multimedia/musepack/Config.in"
+source "package/multimedia/on2-8170-libs/Config.in"
source "package/opus-tools/Config.in"
source "package/multimedia/pulseaudio/Config.in"
source "package/multimedia/tidsp-binaries/Config.in"
diff --git a/package/multimedia/gst-plugin-x170/Config.in b/package/multimedia/gst-plugin-x170/Config.in
new file mode 100644
index 0000000..83ddd1b
--- /dev/null
+++ b/package/multimedia/gst-plugin-x170/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_GST_PLUGIN_X170
+ bool "gst-plugin-x170"
+ depends on BR2_PACKAGE_GSTREAMER && BR2_arm926t
+ select BR2_PACKAGE_ON2_8170_LIBS
+ help
+ GStreamer plug-in to use the Hantro X170 video decoder present on
+ ATMEL AT91SAM9M10 SoC.
+
+ http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer
+
diff --git a/package/multimedia/gst-plugin-x170/gst-plugin-x170-01-correct-CFLAGS.patch b/package/multimedia/gst-plugin-x170/gst-plugin-x170-01-correct-CFLAGS.patch
new file mode 100644
index 0000000..9c32e46
--- /dev/null
+++ b/package/multimedia/gst-plugin-x170/gst-plugin-x170-01-correct-CFLAGS.patch
@@ -0,0 +1,28 @@
+The configure script is correctly getting the CFLAGS needed to compile a plugin
+for gstreamer and storing them in GST_BASE_CFLAGS but the Makefiles are never
+making use of those.
+
+We actually have to use AM_CPPFLAGS as AM_CFLAGS is used everywhere but on the
+real compiling rule...
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+---
+ src/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8cb51d1..6af5d91 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -5,6 +5,8 @@
+ ##############################################################################
+ plugin_LTLIBRARIES = libgstx170.la
+
++AM_CPPFLAGS = @GST_BASE_CFLAGS@
++
+ ##############################################################################
+ # for the next set of variables, rename the prefix if you renamed the .la, #
+ # e.g. libgstplugin_la_SOURCES => libmysomething_la_SOURCES #
+--
+1.8.1.2
+
diff --git a/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk b/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk
new file mode 100644
index 0000000..e1c42ef
--- /dev/null
+++ b/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk
@@ -0,0 +1,14 @@
+#############################################################
+#
+# gst-plugins-x170
+#
+#############################################################
+GST_PLUGIN_X170_VERSION = 1.0
+GST_PLUGIN_X170_SITE = ftp://ftp.linux4sam.org/pub/demo/linux4sam_1.9/codec/
+
+# There is no generated configure script in the tarball.
+GST_PLUGIN_X170_AUTORECONF = YES
+GST_PLUGIN_X170_AUTORECONF_OPT = -Im4/
+GST_PLUGIN_X170_DEPENDENCIES = gstreamer libglib2 on2-8170-libs
+
+$(eval $(autotools-package))
diff --git a/package/multimedia/on2-8170-libs/Config.in b/package/multimedia/on2-8170-libs/Config.in
new file mode 100644
index 0000000..d5d1a58
--- /dev/null
+++ b/package/multimedia/on2-8170-libs/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_ON2_8170_LIBS
+ depends on BR2_arm926t
+ bool "on2-8170-libs"
+ help
+ Libraries for Hantro X170 video decoder
+
+ http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer
+
diff --git a/package/multimedia/on2-8170-libs/on2-8170-libs.mk b/package/multimedia/on2-8170-libs/on2-8170-libs.mk
new file mode 100644
index 0000000..160b2d9
--- /dev/null
+++ b/package/multimedia/on2-8170-libs/on2-8170-libs.mk
@@ -0,0 +1,20 @@
+#############################################################
+#
+# on2-8170-libs
+#
+#############################################################
+ON2_8170_LIBS_VERSION = 1.0
+ON2_8170_LIBS_SITE = ftp://ftp.linux4sam.org/pub/demo/linux4sam_1.9/codec/
+
+ON2_8170_LIBS_INSTALL_STAGING = YES
+
+define ON2_8170_LIBS_INSTALL_STAGING_CMDS
+ cp -dpf $(@D)/*.a $(@D)/*.so $(STAGING_DIR)/usr/lib
+ cp -dpf $(@D)/*.h $(STAGING_DIR)/usr/include
+endef
+
+define ON2_8170_LIBS_INSTALL_TARGET_CMDS
+ cp -dpf $(@D)/*.so $(TARGET_DIR)/usr/lib
+endef
+
+$(eval $(generic-package))
--
1.8.1.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Add HW decoding support for Hantro x170
2013-05-27 21:13 [Buildroot] [PATCH] Add HW decoding support for Hantro x170 Alexandre Belloni
@ 2013-05-28 11:39 ` Thomas Petazzoni
2013-05-28 12:02 ` Simon Dawson
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2013-05-28 11:39 UTC (permalink / raw)
To: buildroot
Dear Alexandre Belloni,
On Mon, 27 May 2013 23:13:44 +0200, Alexandre Belloni wrote:
> This actually consist in a set of proprietary libs, on2-8170-libs and a
> gstreamer plugin making use of those libraries.
>
> on2-8170-libs is probably libc agnostic but this has not been tested
> thoroughly.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
> package/multimedia/Config.in | 2 ++
> package/multimedia/gst-plugin-x170/Config.in | 10 ++++++++
> .../gst-plugin-x170-01-correct-CFLAGS.patch | 28 ++++++++++++++++++++++
> .../multimedia/gst-plugin-x170/gst-plugin-x170.mk | 14 +++++++++++
> package/multimedia/on2-8170-libs/Config.in | 8 +++++++
> package/multimedia/on2-8170-libs/on2-8170-libs.mk | 20 ++++++++++++++++
We normally do separate patches for separate package additions. So a
first patch for on2-8170-libs, and then a second patch with the
gst-plugin.
> diff --git a/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk b/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk
> new file mode 100644
> index 0000000..e1c42ef
> --- /dev/null
> +++ b/package/multimedia/gst-plugin-x170/gst-plugin-x170.mk
> @@ -0,0 +1,14 @@
> +#############################################################
> +#
> +# gst-plugins-x170
> +#
> +#############################################################
On empty new line between header and variables please.
> +GST_PLUGIN_X170_VERSION = 1.0
> +GST_PLUGIN_X170_SITE = ftp://ftp.linux4sam.org/pub/demo/linux4sam_1.9/codec/
You should add _LICENSE and _LICENSE_FILES variables as well.
> diff --git a/package/multimedia/on2-8170-libs/Config.in b/package/multimedia/on2-8170-libs/Config.in
> new file mode 100644
> index 0000000..d5d1a58
> --- /dev/null
> +++ b/package/multimedia/on2-8170-libs/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_ON2_8170_LIBS
> + depends on BR2_arm926t
> + bool "on2-8170-libs"
> + help
> + Libraries for Hantro X170 video decoder
> +
> + http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer
As was pointed out in a previous review, this package contains
pre-built library. And they can only work with glibc:
$ readelf -d libdwlx170.so | grep NEEDED
0x00000001 (NEEDED) Shared library: [libc.so.6]
This means that whenever something will try to load libdwlx170.so, it
will try to find libc.so.6, which is glibc.
So your package should have something like:
depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
BR2_TOOLCHAIN_CTNG_eglibc || \
BR2_TOOLCHAIN_CTNG_glibc
with a comment above that explains why.
> diff --git a/package/multimedia/on2-8170-libs/on2-8170-libs.mk b/package/multimedia/on2-8170-libs/on2-8170-libs.mk
> new file mode 100644
> index 0000000..160b2d9
> --- /dev/null
> +++ b/package/multimedia/on2-8170-libs/on2-8170-libs.mk
> @@ -0,0 +1,20 @@
> +#############################################################
> +#
> +# on2-8170-libs
> +#
> +#############################################################
Missing empty line.
> +ON2_8170_LIBS_VERSION = 1.0
> +ON2_8170_LIBS_SITE = ftp://ftp.linux4sam.org/pub/demo/linux4sam_1.9/codec/
_LICENSE and _LICENSE_FILES.
> +
> +ON2_8170_LIBS_INSTALL_STAGING = YES
> +
> +define ON2_8170_LIBS_INSTALL_STAGING_CMDS
> + cp -dpf $(@D)/*.a $(@D)/*.so $(STAGING_DIR)/usr/lib
> + cp -dpf $(@D)/*.h $(STAGING_DIR)/usr/include
> +endef
> +
> +define ON2_8170_LIBS_INSTALL_TARGET_CMDS
> + cp -dpf $(@D)/*.so $(TARGET_DIR)/usr/lib
> +endef
> +
> +$(eval $(generic-package))
Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Add HW decoding support for Hantro x170
2013-05-28 11:39 ` Thomas Petazzoni
@ 2013-05-28 12:02 ` Simon Dawson
2013-05-28 13:55 ` Alexandre Belloni
0 siblings, 1 reply; 4+ messages in thread
From: Simon Dawson @ 2013-05-28 12:02 UTC (permalink / raw)
To: buildroot
Hi Alexandre, Thomas.
On 28 May 2013 12:39, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> As was pointed out in a previous review, this package contains
> pre-built library. And they can only work with glibc:
>
> $ readelf -d libdwlx170.so | grep NEEDED
> 0x00000001 (NEEDED) Shared library: [libc.so.6]
>
> This means that whenever something will try to load libdwlx170.so, it
> will try to find libc.so.6, which is glibc.
>
> So your package should have something like:
>
> depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
> BR2_TOOLCHAIN_CTNG_eglibc || \
> BR2_TOOLCHAIN_CTNG_glibc
>
> with a comment above that explains why.
Indeed, this is true. I spent some time trying to get this hardware
decoder to work, and never managed to get anywhere with it. Atmel
technical support were incredibly frustrating, providing such pearls
of wisdom as:
"We found that there might be a little problem if you we use dynamic
libraries like cannot play video correctly. Our OS experts are still
working on this."
On the basis of this and other information provided by Atmel, I ended
up using the static libraries. This complicates the package makefiles
somewhat, of course; but you can presumably then avoid the restriction
to glibc.
Alexandre: have you actually managed to get the decoder to work?
Simon.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Add HW decoding support for Hantro x170
2013-05-28 12:02 ` Simon Dawson
@ 2013-05-28 13:55 ` Alexandre Belloni
0 siblings, 0 replies; 4+ messages in thread
From: Alexandre Belloni @ 2013-05-28 13:55 UTC (permalink / raw)
To: buildroot
On 28/05/2013 14:02, Simon Dawson wrote:
> Indeed, this is true. I spent some time trying to get this hardware
> decoder to work, and never managed to get anywhere with it. Atmel
> technical support were incredibly frustrating, providing such pearls
> of wisdom as:
>
> "We found that there might be a little problem if you we use dynamic
> libraries like cannot play video correctly. Our OS experts are still
> working on this."
>
> On the basis of this and other information provided by Atmel, I ended
> up using the static libraries. This complicates the package makefiles
> somewhat, of course; but you can presumably then avoid the restriction
> to glibc.
That's a nice idea, I doubt on2-8170-libs would ever be used without the
gstreamer plugin.
> Alexandre: have you actually managed to get the decoder to work?
It has been working but I don't remember all the specific. That is
something I did quickly for a customer having to create a demo for an
exhibition so the buildroot integration was not really in the scope.
> Simon.
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-05-28 13:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-27 21:13 [Buildroot] [PATCH] Add HW decoding support for Hantro x170 Alexandre Belloni
2013-05-28 11:39 ` Thomas Petazzoni
2013-05-28 12:02 ` Simon Dawson
2013-05-28 13:55 ` Alexandre Belloni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox