gstreamer/subprojects/gstreamer-sharp
Nirbheek Chauhan a0e6278dba meson: Use implicit builtin dirs in pkgconfig generation
Starting with Meson 0.62, meson automatically populates the variables
list in the pkgconfig file if you reference builtin directories in the
pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
We need this, because ${prefix}/libexec is a hard-coded value which is
incorrect on, for example, Debian.

Bump requirement to 0.62, and remove version compares that retained
support for older Meson versions.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
2022-09-21 21:08:11 +05:30
..
ges Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
girs Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
samples Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
sources gstreamer-sharp: apply new code style to alll sources 2022-04-05 08:28:50 +00:00
subprojects Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
Tests gstreamer-sharp: Add test checking AppSrc and AppSink constructors work properly 2022-03-08 12:01:13 +00:00
.editorconfig gstreamer-sharp: ensure a consitent code format 2022-04-05 08:28:50 +00:00
.gitignore Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
AUTHORS Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
ChangeLog Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
COPYING Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
gacutil_install.py Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
generate_code.py Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
gstreamer-sharp-1.0.pc.in Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
gstreamer-sharp.csproj Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
gstreamer-sharp.sln gstreamer-sharp: ensure a consitent code format 2022-04-05 08:28:50 +00:00
gstreamer-sharp.snk Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
meson.build meson: Use implicit builtin dirs in pkgconfig generation 2022-09-21 21:08:11 +05:30
meson_options.txt Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
nuget.py Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
README.md Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00
update_sources.py Move files from gstreamer-sharp into the "subprojects/gstreamer-sharp/" subdir 2021-09-24 16:16:29 -03:00

gstreamer-sharp

gstreamer-sharp is a .NET/mono binding for Gstreamer generated from gobject-introspection data using the bindinator. gstreamer-sharp currently wraps the API exposed by Gstreamer 1.12 and is compatible with newer gstreamer versions. It was developed under GSoC 2014 for the mono organization. gstreamer-sharp covers the core and base gstreamer libraries.

Prerequisites

These libraries are needed for gstreamer-sharp to compile:

  • gstreamer core, base and good 1.14 or higher
  • gtk-sharp 3.22.0 or higher - NOTE: This can be built as a meson subproject.

You will also need various .NET/mono bits (mcs and al). On debian-based distros you can install these with:

sudo apt-get install mono-mcs mono-devel

Building

meson build && ninja -C build/

Installing

This package is not installed as part of the system. It should either be built into a Nuget or used as a subproject like this. For example, with meson, one would use it like this:

subproject('gstreamer-sharp', default_options: ['install=false'])
gst_sharp = subproject('gstreamer-sharp')
gst_sharp_dep = gst_sharp.get_variable('gst_sharp_dep')

HACKING

While hacking on the code generator or the .metadata files, you will need to force code regeneration with ninja update-code, a full rebuild is triggered right after.

Updating to new GStreamer version

Make sure you are in an environement where latest .gir files are available (either installed or through the $GI_TYPELIB_PATH env var), those files are automatically copied to girs/.

ninja -C build update-all

or if using gst-build, start gst-env and then run

ninja -C build gstreamer-sharp@@update-all
  • Verify newly copied gir files in girs/ and git add them
  • Verify newly generated code and git add files in sources/generated/ and ges/generated
  • Commit

Supported Platforms

  • Linux
  • Mac OS X

Quick Start

gstreamer-sharp provides ports of all samples from gst-docs in the samples folder.

Documentation

Since this is a gobject-introspection binding the recommended documentation is the native gstreamer documentation. A monodoc generated documentation will be installed.

Roadmap

  • Add an easy way to compile on Windows
  • iOS and Android support
  • Provide binaries for these platforms

License

gstreamer-sharp is licensed under the LGPL 2.1