0a25f22f1b
For monorepo build and ugly/bad, for advanced feature option API like get_option('xyz').required(..) which we use in combination with the 'gpl' option. For rest of modules for consistency (people will likely use newer features based on the top-level requirement). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084> |
||
---|---|---|
.. | ||
ges | ||
girs | ||
samples | ||
sources | ||
subprojects | ||
Tests | ||
.gitignore | ||
AUTHORS | ||
ChangeLog | ||
COPYING | ||
gacutil_install.py | ||
generate_code.py | ||
gstreamer-sharp-1.0.pc.in | ||
gstreamer-sharp.csproj | ||
gstreamer-sharp.sln | ||
gstreamer-sharp.snk | ||
meson.build | ||
meson_options.txt | ||
nuget.py | ||
README.md | ||
update_sources.py |
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/
andgit add
them - Verify newly generated code and
git add
files insources/generated/
andges/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