91 lines
2.6 KiB
Markdown
91 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/
|