From patchwork Sun Nov 9 04:08:31 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gary Bisson X-Patchwork-Id: 408507 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 14D2F140098 for ; Sun, 9 Nov 2014 15:09:14 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 402F794E89; Sun, 9 Nov 2014 04:09:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FkLKMQ7MKdmL; Sun, 9 Nov 2014 04:09:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 72DBB952C4; Sun, 9 Nov 2014 04:09:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 55ED51C2DA2 for ; Sun, 9 Nov 2014 04:09:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 2402B918AF for ; Sun, 9 Nov 2014 04:09:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sEIQuAmFqbkf for ; Sun, 9 Nov 2014 04:09:02 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) by whitealder.osuosl.org (Postfix) with ESMTPS id D7030918B3 for ; Sun, 9 Nov 2014 04:09:02 +0000 (UTC) Received: by mail-pa0-f46.google.com with SMTP id lf10so5988004pab.5 for ; Sat, 08 Nov 2014 20:09:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=24Gg17S16l6VKXUGvVhDH5qmO9HH5t1U31akcsKIoWI=; b=zBB0DhC5x/kbh1RAxZZN2YbIiNRXqfd/0fMlSD9bGtuHfHJYdmBT8KFlYoFd0H2Y9+ bFShIyS5TK1xXZ3cHecmgm89Eu7h6gekMgFBIiQ7KIt7dwQKm0ZUkLgjfzg693dzmmuy SvKHkfvJRgEDkyHS8VbqIEqeqUwwCl/5N950PsNAt2cmN0kTxtytAt1YNZ976z+rCnj1 8dS3uh6o9d8TmDiCNKUFB8Ks+TjkKqFqx5Hx8rBwPKOpHuVCg2oyq4f2uCm+bmCCpWYU kyxvOnwrslxw02Fqh2LKvxNhjZg2wmHzN8lTLvqUkm3XuXK9cWlPAewyVfWS+uKbSnLV FKxQ== X-Received: by 10.66.151.141 with SMTP id uq13mr23081806pab.87.1415506142478; Sat, 08 Nov 2014 20:09:02 -0800 (PST) Received: from e6430.WORKGROUP. (c-71-227-188-44.hsd1.wa.comcast.net. [71.227.188.44]) by mx.google.com with ESMTPSA id cw5sm12798875pbc.9.2014.11.08.20.09.01 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 08 Nov 2014 20:09:01 -0800 (PST) From: Gary Bisson To: buildroot@busybox.net Date: Sat, 8 Nov 2014 20:08:31 -0800 Message-Id: <1415506111-21818-1-git-send-email-bisson.gary@gmail.com> X-Mailer: git-send-email 2.1.1 Cc: luca@lucaceresoli.net, ps.report@gmx.net Subject: [Buildroot] [PATCH v3] gst1-imx: add package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Open-source GStreamer 1.0 plugins for i.MX6 platforms. More info at https://github.com/Freescale/gstreamer-imx Signed-off-by: Gary Bisson Reviewed-by: Luca Ceresoli Tested-by: Luca Ceresoli --- Modifications v2->v3: - Change package name from gst1-plugins-imx to gst1-imx - Remove commands unnecessary parentheses - Modify package comment to clarify it is only working on i.MX6 Modifications v1->v2: - Use of github helper macro - Modify package comment with Peter S. original patch - Add comment for eglibc dependency (due to GPU libs) - Remove comments on package dependencies This patch has been tested using an i.MX6Q SabreLite (nitrogen6x config) along with the usual Tears of Steel movie in 1080p: http://media.xiph.org/mango/tears_of_steel_1080p.webm Below are the commands used to test the different sinks: $ 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 ! imxipusink $ gst-launch-1.0 filesrc location=/root/tears_of_steel_1080p.webm ! \ matroskademux ! imxvpudec ! imxeglvivsink The toolchain used was the Sourcery CodeBench 2014.05. The video above also requires the following extra configuration in order to demux the content: BR2_PACKAGE_GST1_PLUGINS_GOOD=y BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y Thanks, Gary --- package/gstreamer1/Config.in | 1 + package/gstreamer1/gst1-imx/Config.in | 25 ++++++++++++++++ package/gstreamer1/gst1-imx/gst1-imx.mk | 52 +++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 package/gstreamer1/gst1-imx/Config.in create mode 100644 package/gstreamer1/gst1-imx/gst1-imx.mk diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in index 5f08faf..ea35ecc 100644 --- a/package/gstreamer1/Config.in +++ b/package/gstreamer1/Config.in @@ -6,6 +6,7 @@ source "package/gstreamer1/gst1-plugins-base/Config.in" source "package/gstreamer1/gst1-plugins-good/Config.in" source "package/gstreamer1/gst1-plugins-bad/Config.in" source "package/gstreamer1/gst1-plugins-ugly/Config.in" +source "package/gstreamer1/gst1-imx/Config.in" source "package/gstreamer1/gst1-libav/Config.in" source "package/gstreamer1/gst1-validate/Config.in" source "package/gstreamer1/gst-omx/Config.in" diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in new file mode 100644 index 0000000..6bdbb6c --- /dev/null +++ b/package/gstreamer1/gst1-imx/Config.in @@ -0,0 +1,25 @@ +comment "gst1-imx needs an imx-specific Linux kernel to be built" + depends on BR2_arm && !BR2_LINUX_KERNEL + +# Required by gpu-viv-bin-mx6q +comment "gst1-imx needs an (e)glibc toolchain" + depends on BR2_arm + depends on !BR2_TOOLCHAIN_USES_GLIBC + +config 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 # gpu-viv-bin-mx6q + depends on BR2_PACKAGE_GPU_VIV_BIN_MX6Q + depends on BR2_PACKAGE_LIBFSLVPUWRAP + select BR2_PACKAGE_GST1_PLUGINS_BASE + 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 + engine. + + This software supports only the i.MX6 SoC family and requires a + kernel that includes the i.MX6 specific headers to be built. + + The software as a whole is currently in beta stage. diff --git a/package/gstreamer1/gst1-imx/gst1-imx.mk b/package/gstreamer1/gst1-imx/gst1-imx.mk new file mode 100644 index 0000000..4a3b5a2 --- /dev/null +++ b/package/gstreamer1/gst1-imx/gst1-imx.mk @@ -0,0 +1,52 @@ +################################################################################ +# +# gst1-imx +# +################################################################################ + +GST1_IMX_VERSION = 0.9.9 +GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION)) + +GST1_IMX_LICENSE = LGPLv2+ +GST1_IMX_LICENSE_FILES = LICENSE + +GST1_IMX_INSTALL_STAGING = YES + +GST1_IMX_DEPENDENCIES += host-pkgconf host-python \ + gpu-viv-bin-mx6q gstreamer1 gst1-plugins-base libfslvpuwrap + +# 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_XLIB_LIBX11),y) +GST1_IMX_DEPENDENCIES += xlib_libX11 +GST1_IMX_CONF_OPTS += --egl-platform=x11 +else +ifeq ($(BR2_PACKAGE_WAYLAND),y) +GST1_IMX_DEPENDENCIES += wayland +GST1_IMX_CONF_OPTS += --egl-platform=wayland +else +GST1_IMX_CONF_OPTS += --egl-platform=fb +endif +endif + +define GST1_IMX_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + $(HOST_DIR)/usr/bin/python2 ./waf configure $(GST1_IMX_CONF_OPTS) +endef + +define GST1_IMX_BUILD_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS) +endef + +define GST1_IMX_INSTALL_TARGET_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \ + install +endef + +$(eval $(generic-package))