From patchwork Thu Oct 30 02:32:24 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gary Bisson X-Patchwork-Id: 404853 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (hemlock.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id EEB2614007D for ; Thu, 30 Oct 2014 13:32:59 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id A2FD3954E6; Thu, 30 Oct 2014 02:32:58 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XUqUYCMB-5mI; Thu, 30 Oct 2014 02:32:54 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 36C7E9520D; Thu, 30 Oct 2014 02:32:54 +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 6014B1C2DD5 for ; Thu, 30 Oct 2014 02:32:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 5AD5791B99 for ; Thu, 30 Oct 2014 02:32:53 +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 mZf1V9lCvRee for ; Thu, 30 Oct 2014 02:32:49 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pd0-f176.google.com (mail-pd0-f176.google.com [209.85.192.176]) by whitealder.osuosl.org (Postfix) with ESMTPS id 825D691ACD for ; Thu, 30 Oct 2014 02:32:49 +0000 (UTC) Received: by mail-pd0-f176.google.com with SMTP id ft15so4157457pdb.35 for ; Wed, 29 Oct 2014 19:32:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=Mcrk2yrFz7prTtE70c74pgZUMotY/6s7cKmEgTSphIg=; b=KUy2Cy1omVgiCGgOlPu1HhID0NkZ8Ik9oG75EkqyhKxvywNsLoP04FQowXHxBH8r7c djovJ5rj7gOt6Oiv9iJFVnZwcbErt204DjWw/aib1tuyCdhB2BlwQx3uKXXtEKNXef+K A3rfTX5H5EHlb4LvW3tWZDG4L7WL1o6BbGsRrBhzAEk1TdaUUra39jFpgmcy+32vrWF8 t5aKNEzqOncAaHvcVSGf5J1F592GIs7IRarQtf5vh29stWXrqZKGaznDdo4eOeFXsnRK fxtwRyhPxN5Uv7foRFeFDRcrOHfAzZAHPd4bhCPHV8LYn/PPX72B0qArsLRAoFhUTQKE H2DQ== X-Received: by 10.68.211.193 with SMTP id ne1mr8690484pbc.49.1414636369144; Wed, 29 Oct 2014 19:32:49 -0700 (PDT) Received: from e6430.WORKGROUP. (c-71-227-188-44.hsd1.wa.comcast.net. [71.227.188.44]) by mx.google.com with ESMTPSA id hm1sm5509336pdb.84.2014.10.29.19.32.48 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 29 Oct 2014 19:32:48 -0700 (PDT) From: Gary Bisson To: buildroot@busybox.net Date: Wed, 29 Oct 2014 19:32:24 -0700 Message-Id: <1414636344-8152-1-git-send-email-bisson.gary@gmail.com> X-Mailer: git-send-email 2.1.1 Cc: luca@lucaceresoli.net, ps.report@gmx.net, yann.morin.1998@free.fr Subject: [Buildroot] [PATCH v2] gst1-plugins-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.MX platforms. More info at https://github.com/Freescale/gstreamer-imx Signed-off-by: Gary Bisson Reviewed-by: Luca Ceresoli --- 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 One thing I wasn't sure about, should all new package contain a .hash file? If so I can submit a v3 right away. 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-plugins-imx/Config.in | 28 +++++++++++ .../gst1-plugins-imx/gst1-plugins-imx.mk | 56 ++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 package/gstreamer1/gst1-plugins-imx/Config.in create mode 100644 package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk diff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in index 5f08faf..9dbbed4 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-plugins-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-plugins-imx/Config.in b/package/gstreamer1/gst1-plugins-imx/Config.in new file mode 100644 index 0000000..d499874 --- /dev/null +++ b/package/gstreamer1/gst1-plugins-imx/Config.in @@ -0,0 +1,28 @@ +comment "gst1-plugins-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-plugins-imx needs an (e)glibc toolchain" + depends on BR2_arm + depends on !BR2_TOOLCHAIN_USES_GLIBC + +config BR2_PACKAGE_GST1_PLUGINS_IMX + bool "gst1-plugins-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.MX platform, with emphasis on video en/decoding using the i.MX + VPU engine. + + Currently, this software has been tested only with 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. + + More info at https://github.com/Freescale/gstreamer-imx diff --git a/package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk b/package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk new file mode 100644 index 0000000..56b6fdf --- /dev/null +++ b/package/gstreamer1/gst1-plugins-imx/gst1-plugins-imx.mk @@ -0,0 +1,56 @@ +################################################################################ +# +# gst1-plugins-imx +# +################################################################################ + +GST1_PLUGINS_IMX_VERSION = 0.9.9 +GST1_PLUGINS_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_PLUGINS_IMX_VERSION)) + +GST1_PLUGINS_IMX_LICENSE = LGPLv2+ +GST1_PLUGINS_IMX_LICENSE_FILES = LICENSE + +GST1_PLUGINS_IMX_INSTALL_STAGING = YES + +GST1_PLUGINS_IMX_DEPENDENCIES += host-pkgconf host-python \ + gpu-viv-bin-mx6q gstreamer1 gst1-plugins-base libfslvpuwrap + +# needs access to imx-specific kernel headers +GST1_PLUGINS_IMX_DEPENDENCIES += linux +GST1_PLUGINS_IMX_CONF_OPTS += --prefix="/usr" \ + --kernel-headers="$(LINUX_DIR)/include" + +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) +GST1_PLUGINS_IMX_DEPENDENCIES += xlib_libX11 +GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=x11 +else +ifeq ($(BR2_PACKAGE_WAYLAND),y) +GST1_PLUGINS_IMX_DEPENDENCIES += wayland +GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=wayland +else +GST1_PLUGINS_IMX_CONF_OPTS += --egl-platform=fb +endif +endif + +define GST1_PLUGINS_IMX_CONFIGURE_CMDS + (cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + $(HOST_DIR)/usr/bin/python2 ./waf configure \ + $(GST1_PLUGINS_IMX_CONF_OPTS) \ + ) +endef + +define GST1_PLUGINS_IMX_BUILD_CMDS + (cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS) \ + ) +endef + +define GST1_PLUGINS_IMX_INSTALL_TARGET_CMDS + (cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) \ + install \ + ) +endef + +$(eval $(generic-package))