Coder Social home page Coder Social logo

meta-gstreamer1.0's Introduction

OpenEmbedded layer for GStreamer 1.0

This layer provides UNOFFICIAL support for the GStreamer 1.0 framework for use with OpenEmbedded and/or Yocto. It is used for GStreamer recipe backports, to provide older OE versions with support for newer GStreamer versions, and also as a staging ground for recent recipe upgrades which haven't yet made it into OE-core (for example, because a new GStreamer version was released just recently).

Dependencies

  • URI: git://git.openembedded.org/openembedded-core
  • branch: master
  • revision: HEAD

Additionally, the meta-multimedia and meta-oe layers of the meta-openembedded repo at git://git.openembedded.org/meta-openembedded are necessary for optional plugins (see below).

Package names and coexistence with 0.10

Since 1.0 was designed to be able to coexist with 0.10 in the same system, the names of the recipes for GStreamer 1.0 reflect that. The names are:

  • gstreamer1.0
  • gstreamer1.0-plugins-base
  • gstreamer1.0-plugins-good
  • gstreamer1.0-plugins-bad
  • gstreamer1.0-plugins-ugly
  • gstreamer1.0-libav
  • gstreamer1.0-omx
  • gstreamer1.0-rtsp-server
  • gstreamer1.0-vaapi

Building git versions

By default, release tarballs are unpacked and built. It is possible, however, to build from the GStreamer git repositories instead. It is generally better to use the releases, however for bleeding edge features the git versions might be necessary.

To let Bitbake know that the git version of a package is preferred, add to local.conf:

PREFERRED_VERSION_<packagename> = "git"

For example, to use git versions of all packages, add to local.conf:

PREFERRED_VERSION_gstreamer1.0 = "git"
PREFERRED_VERSION_gstreamer1.0-plugins-base = "git"
PREFERRED_VERSION_gstreamer1.0-plugins-good = "git"
PREFERRED_VERSION_gstreamer1.0-plugins-bad = "git"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly = "git"
PREFERRED_VERSION_gstreamer1.0-libav = "git"
PREFERRED_VERSION_gstreamer1.0-omx = "git"

Enabling plugins with dependencies

By default, in the base/good/bad/ugly recipes, only dependency-less plugins and plugins with dependencies that are supported by OE-core (i.e. recipes for them exist in OE-core) are always enabled.

These are:

  • gstreamer1.0-plugins-base : gio-unix-2.0, ogg, pango, theora, vorbis
  • gstreamer1.0-plugins-good : cairo, flac, gdk-pixbuf, gudev, jpeg, lame, libpng, mpg123, soup, speex, taglib, v4l2
  • gstreamer1.0-plugins-bad : bz2, curl, dash, dtls, hls, neon, rsvg, sbc, smoothstreaming, sndfile, uvch264, webp
  • gstreamer1.0-plugins-ugly : a52dec, mpeg2dec
  • gstreamer1.0-libav : yasm
  • gstreamer1.0-vaapi : drm

With the X11, Wayland, ALSA, BlueZ, DirectFB, OpenGL, Vulkan, and PulseAudio plugins, the situation is a bit different. They are built depending on the contents of the DISTRO_FEATURES value (in other words, depending on what the OE distribution supports).

The rest is disabled by default, and can be enabled by appending to the respective PACKAGECONFIG values. For example, to enable vpx and wavpack support in gstreamer1.0-plugins-good , add to local.conf:

PACKAGECONFIG_append_pn-gstreamer1.0-plugins-good = "vpx wavpack"

Note that after enabling a plugin this way, it must be ensured that recipes for the plugin's dependencies are available. In the example above, recipes for vpx and wavpack must exist. This typically means that additional OE layers must be used (often meta-oe or meta-multimedia).

This is also how Orc support is enabled internally. Since version 1.6.0, Orc is included in this layer, and enabled by default. (Orc is present in OE-Core, but to make GStreamrer 1.6 buildable with older layers, its recipe is included.)

Below is a list of all configuration values for enabling additional plugins and features in the packages.

  • gstreamer1.0
    • check : build unit test libraries
    • debug : enable debug build
    • tests : build test applications
    • valgrind : enable run-time valgrind detection
    • gst-tracer-hooks : enable tracing subsystem hooks
    • trace-historic : enable historic tracing subsystem
    • unwind: enables libunwind-based stack trace generation
    • dw: adds source lines and numbers to backtraces using the elfutils libdw library
  • gstreamer1.0-plugins-base
    • cdparanoia : cdparanoia audio CD ripping plugin
    • ivorbis: Integer-only Vorbis decoding using the Tremor library
    • opus : Opus audio decoder plugin
  • gstreamer1.0-plugins-good
    • `dv1394' : IEEE 1394 raw video source plugins
    • gtk : GTK+3 plugins
    • jack : JACK audio system plugins
    • libv4l2 : additional v4l2 plugins based on libv4l2
    • vpx : plugins for en- and decoding VP8 video streams, using Google's libvpx
    • wavpack : WavPack plugins
  • gstreamer1.0-plugins-bad
    • assrender : ASS/SSA subtitle renderer plugins
    • dc1394 : libdc1394 based video source plugin for IIDC cameras
    • faac : AAC encoding plugins using the FAAC library
    • faad : AAC decoding plugins using the FAAD library
    • flite : Flite speech synthesizer plugins
    • fluidsynth : FluidSynth plugins
    • kms : Video sink plugin using the Linux kernel mode setting API
    • libmms : Microsoft Multimedia Stream plugins
    • libssh2 : Enable libssh2 support in cURL plugins
    • lcms2 : Little CMS open source color management engine plugins
    • modplug : Decoder plugins for module files (MOD/S3M/XM/IT/..) using the ModPlug library
    • openal : OpenAL audio plugins
    • opencv : OpenCV image processing plugins
    • openjpeg : OpenJPEG-based JPEG2000 image decoder/encoder plugin
    • opusparse : Opus bitstream parser plugin
    • resindvd : DVD navigation and playback plugin
    • rtmp : Real Time Messaging Protocol (RTMP) plugins
    • sctp : Stream Control Transmission Protocol (SCTP) plugin
    • srtp : RFC 3711 SRTP plugin
    • ttml : Timed Text Markup Language plugins
    • voaacenc : OpenCORE based AAC encoder plugin
    • voamrwbenc : OpenCORE based AMR wideband encoder plugin
    • webp : WebP plugins
  • gstreamer1.0-plugins-ugly
    • amrnb : OpenCORE based AMR narrowband decoder plugin
    • amrwb : OpenCORE based AMR wideband decoder plugin
    • cdio : Compact Disc audio plugins using libcdio
    • dvdread : DVD source plugins using libdvdread
    • x264 : h.264/AVC encoder plugin using libx264
  • gstreamer1.0-libav
    • libav : builds the package using the system's libav instead of the included one (not recommended unless you really know what you are doing!)
    • gpl : build the package in GPL mode (enables GPL elements)
    • valgrind : enable run-time valgrind detection
  • gstreamer1.0-vaapi
    • egl : use the EGL backend
    • glx : use the GLX backend
    • wayland : enable Wayland output sinks
    • X11 : enable X11 output sinks

OpenMAX IL support

The gstreamer1.0-omx package adds support for OpenMAX IL. By default, the recipe is configured to use the bellagio OpenMAX IL implementation that ships with OE-Core. BSP layers are encouraged to add .bbappend files which set the GSTREAMER_1_0_OMX_TARGET variable to make gstreamer1.0-omx use the device specific OpenMAX IL support. Currently, these device specific targets are supported:

  • rpi : Raspberry Pi OpenMAX IL implementation

If the value of GSTREAMER_1_0_OMX_TARGET is changed by a .bbappend file to a device specific value, the recipe automatically sets the PACKAGE_ARCH of gstreamer1.0-omx to MACHINE_ARCH.

Furthermore, if a device specific .bbappend file is written, it is recommended to also set the value of GSTREAMER_1_0_OMX_CORE_NAME in it. This value specifies the filename of the OpenMAX core (a shared library) that needs to be used. With the Bellagio OpenMAX implementation, its value is: ${libdir}/libomxil-bellagio.so.0. The gstreamer1.0-omx recipe needs this value for adjusting the core-name entries in the gstomx.conf configuration file.

meta-gstreamer1.0's People

Contributors

anujm1 avatar armcc avatar bluelightning avatar carolzhuyuqing avatar cristian-iorga avatar dorindabassey avatar dv1 avatar fbertux avatar idadelveloper avatar kanavin avatar kraj avatar markusvolk avatar marquiz avatar maxinbjohn avatar mikecrowe avatar ndechesne avatar onkelulla avatar otavio avatar philn avatar quaresmajose avatar ribalda avatar robertlinux avatar rossburton avatar rpurdie avatar saininav avatar saur2000 avatar schnitzeltony avatar shr-project avatar wangmingyu84 avatar ziswiler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meta-gstreamer1.0's Issues

Error building for Webkit

I am trying to use the newer gstreamer with webkit. During build, I received this error:

Error:
Problem 1: conflicting requests

  • nothing provides gstreamer1.0-plugins-bad-opengl needed by wpewebkit-2.20.1-r0.cortexa7t2hf_neon_vfpv4
    Problem 2: package cog-20180703-r0.cortexa7hf_neon_vfpv4 requires libWPEWebKit-0.1.so.0, but none of the providers can be installed
  • conflicting requests
  • nothing provides gstreamer1.0-plugins-bad-opengl needed by wpewebkit-2.20.1-r0.cortexa7t2hf_neon_vfpv4

linking buffer of nested source

Hi,
I am writing a gst plugin which is creating another gst plugin (gstSrc). There is already one gstbuffer created in original plugin, i just wanted to map that buffer with another (nested) gstSrc so that data of gstSrc should copied to original plugin buffer.
Is there any way or any other approach is possible?

How to build audiobuffersplit?

I am trying to include the audiobuffersplit plugin from gstreamer1.0-plugins-bad in my image.

I looked through previous issues, thinking I'd be able to figure this out on my own, but to no avail.

I added:

PACKAGECONFIG_append_pn-gstreamer1.0-plugins-bad = " audiobuffersplit"

and

IMAGE_INSTALL_append = " gstreamer1.0-plugins-bad-audiobuffersplit' -> (Couldn't find anything to satisfy 'gstreamer1.0-plugins-bad-audiobuffersplit')

to local.conf, but I think I am fundamentally missing something - either a detail or a theoretical misunderstanding.

Any help would be greatly appreciated.

backport 1.4+ support to Dora?

Is this even possible, or is there some limitation in the os that prevents this? If it is possible, I have a need to have at least version 1.4 of gstreamer compiled for a dora-based system. Simply using master fails with the following error message.

ERROR: ParseError at /home/jeffw/src/poky/meta-gstreamer1.0/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc:12: Could not inherit file classes/bluetooth.bbclass

The version "git" is supported on all branches, that that might be a workaround, but an actual release would be preferred.

Possible: Gstreamer 1.14 to morty?

Hi
I have a target that I currently only have a yocto morty build system for with a relatively old kernel (3.14), but when looking at the gstreamer release notes there are parts of the changes that might solve some of the problems we are facing. However, the morty branch on this repository is left at 1.12.

My question is therefore; what is the reason for leaving the morty branch at 1.12? Has morty been judged to be too old or would it simply be too much work?
This should not be seen as a feature request but more a request for knowledge so that I better can figure out if I should dive in to make a pull-request for updating the version myself.

Kind regards

Andreas

Unsatisfied Recommendations ?

Dear Sir,

Thanks very much for your work on these recipes.

I try to use them in order to create an Angstrom image with gstreamer1.0 (the standard Angstrom has gstreamer 0.1).

To do so, I've setup an oe-core environnement, cloned this repository in oe-core/stuff, I've added the meta-gstreamer1.0 path to the build/conf/bblayers.conf, and I've added to the build/conf/local.conf the line IMAGE_INSTALL_append = " " with all gstreamer package names.

My problem is that a huge lot of plugins are NOT built. Only gst_libav plugins are correctly built. The other plugins stay uninstalled on the final image. When trying to install the generated .ipk, it says for each plugin "unsatisfied recommendation ...." #package-name-here.

I'm a bit confused because the README here explains how dependencies are handled. The particular plugin I'm looking for, uvch264, is NOT built.

Thanks for your help !

How can I build the gstwebrtc plugins from gst-plugins-bad v1.14

I'm having some trouble including the gstwebrtc plugins from gst-plugins-bad on v1.14 using the meta-gstreamer1.0 meta layer.

I think that I am missing some dependencies from my yocto distribution. So far I have libnice json-glib libsoup-2.4 satisfied but for some reason the plugin refuses to build alongside of the other working gstreamer1.0-plugins-bad plugins.

Can anyone provide a list of necessary recipes that will enable webrtc on my build?

Sumo branch?

It would be great to have a sumo branch. Thanks!

Missing Rocko branch

Hi,

I was wondering if you plan to create a rocko branch?

Best regards,
Vincent

Missing morty support?

hi there,

is this layer still maintained? I don't see any update for the last few months. For example

  • morty branch is missing
  • gst 1.10 (currently in oe-core/master) is missing from this layer

I am planning to start using this layer, and wanted to get a better idea about its current status.

thanks!

Update the README

The information in README is outdated. As this is going to be maintained in a more long term mode, please update the information accordingly..

Build fails on gstreamer1.0-plugins-bad

Hi,

I'm using Yocto jethro and tried adding your gstreamer layer. I changed to your jethro branch also.
I bumped into this problem. Can you help me troubleshoot this?

ERROR: Command Error: exit status: 1  Output:
Applying patch 0001-PATCH-install-gstaggregator-and-gstvideoaggregator-h.patch
patching file gst-libs/gst/base/Makefile.am
patching file gst-libs/gst/video/Makefile.am
Hunk #1 FAILED at 19.
1 out of 1 hunk FAILED -- rejects in file gst-libs/gst/video/Makefile.am
Patch 0001-PATCH-install-gstaggregator-and-gstvideoaggregator-h.patch does not apply (enforce with -f)
ERROR: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /opt/home/nrm/yocto_tbs/build-dfb/tmp/work/cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi/gstreamer1.0-plugins-bad/1.6.3-r0/temp/log.do_patch.23730
ERROR: Task 306 (/opt/home/nrm/yocto_tbs/sources/meta-gstreamer1.0/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb, do_patch) failed with exit code '1'

Before changing to your Jethro branch I was using the master branch, but failed to even start the build process:
ERROR: ParseError at /opt/home/nrm/yocto_tbs/sources/meta-gstreamer1.0/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc:14: Could not inherit file classes/upstream-version-is-even.bbclass

Why on dunfell LTS branch was gstreamer was bumper to 1.18?

Hi,

this is not an issue just general question. Why gstreamer on LTS branch was bumped from 1.16 to 1.18? I need to use 1.16 internally (I added fix to build it on dunfell but I have still failing gstreamer1.0-python) with:

| checking for pygobject-3.0 >= 3.8... yes
| checking for libraries required to embed python... no
| configure: error: Python libs not found. Windows requires Python modules to be explicitly linked to libpython.

Thanks.

add support for gatesgarth

I have PR for gatesgarth on top of commit:
c3ba8f0 conf/layer.conf: Set layer compatible only with gatesgarth

It is possible to create a gatesgarth branch at this commit ?

alsasink plugin absent

hi,
i am not able get alsasink support, same sources was used. following are log:

gst-inspect-1.0 alsasink
No such element or plugin 'alsasink'

i am able to play file but failed to get audio

Last commit : Rename distro_features_check to features_check break Yocto Zeus build

Hello,
I understand that the master branch is following latest commit from meta-openembedded even if is master-next branch, but unfortunately this commit b5f510e48080b6dc710ff4800feb90ef679c5456 break builds with all zeus branches even from meta-openembedded zeus branch
Is it possible to create a zeus branch that could be maintained starting from commit bf562ab7bb4dd68e486c71be6ebcf9d872f63b33 ?
Thank you for your feedback

gstreamer1.0-plugins-bad-opencv build fails on arm neon

Hi,

do_configure task of gstreamer1.0-plugins-bad-opencv fails with this error:
gstreamer1.0-plugins-bad/1.12.0-r0/recipe-sysroot/usr/include/opencv2/core/cvdef.h:316:5: error: '__fp16' does not name a type
__fp16 h;

I'm using 1.12.0 gstreamer version from this layer, with opencv 3.2 from meta-openembedded.

OpenCV 3.2 adds an extra flag -mfpu=neon-fp16 (see openembedded/meta-openembedded@c931bc6) and gstreamer does not.

I'm not sure how to resolve this problem, any help fixing this ?

Thanks,
Vincent

gstreamer1.0-plugins-good - lame

In 1.14.0 Gstreamer version, lame plugin moved to "good", and gstreamer1.0-plugins-good.inc file add lame by default in PACKAGECONFIG:

PACKAGECONFIG ??= " \
    ${GSTREAMER_ORC} \
    ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
    cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup \
    speex taglib v4l2 \
"
PACKAGECONFIG[lame]       = "--enable-lame,--disable-lame,lame"

But lame recipe in oe-core (lame_3.99.5.bb) has commercial flag, so it fails to generate "good" package without commercial flag set in whitelist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.