gstreamer/subprojects/gstreamer-sharp/README.md

90 lines
2.6 KiB
Markdown

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](https://www.gnu.org/licenses/lgpl-2.1.html)
[bindinator]:https://github.com/GLibSharp/bindinator
[gtk-sharp]:https://github.com/GLibSharp/GtkSharp
[gstreamer]: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/