From patchwork Mon Feb 1 21:55:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gary Bisson X-Patchwork-Id: 576703 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 61629140BFB for ; Tue, 2 Feb 2016 08:56:21 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=boundarydevices-com.20150623.gappssmtp.com header.i=@boundarydevices-com.20150623.gappssmtp.com header.b=ORh+aYxU; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 90E31A5CE1; Mon, 1 Feb 2016 21:56:20 +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 iHJe1m5t4PLh; Mon, 1 Feb 2016 21:56:16 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id A6340A5C6B; Mon, 1 Feb 2016 21:56:14 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id E1F1C1C1514 for ; Mon, 1 Feb 2016 21:56:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id E449C8C335 for ; Mon, 1 Feb 2016 21:56:15 +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 mFB6vOtLOvIE for ; Mon, 1 Feb 2016 21:56:15 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by whitealder.osuosl.org (Postfix) with ESMTPS id A8EC78C45D for ; Mon, 1 Feb 2016 21:56:14 +0000 (UTC) Received: by mail-wm0-f50.google.com with SMTP id l66so92040932wml.0 for ; Mon, 01 Feb 2016 13:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boundarydevices-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qIUi5QaZUYH1LSkp0sr5v9LzxG4uFlwJcyS/UNq79eA=; b=ORh+aYxU0QKgo2qwnsBcJ3j03QOAeO9a+TpCpZ0bi1mFXZyWKikCeNJUdZrLzb4RsI YqOl88INzenAw3U13Iu31ytELVibbqe7zDaOIBxDNkZovfftP0eePSIeDV2vbuE1nRsy GrO5mKX1X2dLgfkn678MeCSfqeartZAi0h3LB0fBObImm8b4hb8tst/RWaDJ/0A4Eupv eHtOzntJK5Xt4uByLSpBIWYk0HGC5xR3dIe+fNUWN7wMNYjqHWi06rTb1RtKenAu2RWj 5WfxO5uTfVWONreCkTjz3W4BD33D9NAxfMWpevj3GDsaC4ronaRF1GT+LMyyBglBtbvz I2Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qIUi5QaZUYH1LSkp0sr5v9LzxG4uFlwJcyS/UNq79eA=; b=k4KoSI5NZoBh9Hs8Jh++Sco+1EpXVVZ0usH+nhKPmolPR5qOYgOrP+t6WJO2qOe5uI Szdb2d2OXVvrPCdolzYdIfy4Jr9dM4rQyHedS1+0VdDuFloBPsJ4HOQepDoqqiKjR5bQ UTOkPfxsADk6DcKo2YQUReLRS8Lj3fdS09s+a/YFEvwPrImlbqW/P3Kizll3cTbuGAKa zoDOJME8rh3k+Av21i//XAyleqNTeEGPDJzb8+zqigUoAeIKaxYKo+QawkHyb8Vh83cw 2xpAEF+Jh88rv5F2WwEgVf9AGSqtQ1e1lwMijR0T3a6BU/i5PjlSPNagrTazM0L5YIek W11A== X-Gm-Message-State: AG10YOSay1hlpBVvRpbT/hRAmK02tYi/Qt/FOBsW7nwEEHZX+E2Yv8xSm2I+R1M3vQZsdg== X-Received: by 10.28.7.72 with SMTP id 69mr14983647wmh.50.1454363766321; Mon, 01 Feb 2016 13:56:06 -0800 (PST) Received: from t450s.lan (89-92-99-128.hfc.dyn.abo.bbox.fr. [89.92.99.128]) by smtp.googlemail.com with ESMTPSA id t3sm31095058wjz.11.2016.02.01.13.56.05 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 01 Feb 2016 13:56:05 -0800 (PST) From: Gary Bisson To: buildroot@busybox.net Date: Mon, 1 Feb 2016 22:55:59 +0100 Message-Id: <1454363759-23349-3-git-send-email-gary.bisson@boundarydevices.com> X-Mailer: git-send-email 2.6.4 In-Reply-To: <1454363759-23349-1-git-send-email-gary.bisson@boundarydevices.com> References: <1454363759-23349-1-git-send-email-gary.bisson@boundarydevices.com> Cc: thomas.petazzoni@free-electrons.com Subject: [Buildroot] [PATCH v2 2/2] gst1-imx: bump to version 0.12.0 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" Changelog: * 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 Signed-off-by: Gary Bisson --- 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 diff --git a/package/gstreamer1/gst1-imx/Config.in b/package/gstreamer1/gst1-imx/Config.in index f7284f4..5f0da84 100644 --- a/package/gstreamer1/gst1-imx/Config.in +++ b/package/gstreamer1/gst1-imx/Config.in @@ -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 diff --git a/package/gstreamer1/gst1-imx/gst1-imx.hash b/package/gstreamer1/gst1-imx/gst1-imx.hash new file mode 100644 index 0000000..03e1729 --- /dev/null +++ b/package/gstreamer1/gst1-imx/gst1-imx.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 df34f080e24ac8f1619780aa5ad4e6ab1333f822cd2bf5fcb380b28c97248810 gst1-imx-0.12.0.tar.gz diff --git a/package/gstreamer1/gst1-imx/gst1-imx.mk b/package/gstreamer1/gst1-imx/gst1-imx.mk index 8ede8ad..f3eac0a 100644 --- a/package/gstreamer1/gst1-imx/gst1-imx.mk +++ b/package/gstreamer1/gst1-imx/gst1-imx.mk @@ -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); \