README: Add a little explanation on how to add this as a dependency.
[platform/upstream/gstreamer.git] / README.md
1 gstreamer-sharp
2 =========
3
4 gstreamer-sharp is a .NET/mono binding for Gstreamer
5 generated from gobject-introspection data using the [bindinator].
6 gstreamer-sharp currently wraps the API exposed by Gstreamer 1.12
7 and is compatible with newer gstreamer versions. It was developed
8 under GSoC 2014 for the mono organization. gstreamer-sharp covers
9 the core and base gstreamer libraries.
10
11 Prerequisites
12 ----
13 These libraries are needed for gstreamer-sharp to compile:
14 * gstreamer core, base and good 1.14 or higher
15 * [gtk-sharp] 3.22.0 or higher - *NOTE: This can be built as a meson subproject.*
16
17 You will also need various .NET/mono bits (mcs and al). On debian-based distros
18 you can install these with:
19
20     sudo apt-get install mono-mcs mono-devel
21
22 Building
23 ----
24
25     meson build && ninja -C build/
26
27 Installing
28 ----
29
30 This package is not installed as part of the system. It should either
31 be built into a Nuget or used as a subproject like this. For example,
32 with meson, one would use it like this:
33
34
35     subproject('gstreamer-sharp', default_options: ['install=false'])
36     gst_sharp = subproject('gstreamer-sharp')
37     gst_sharp_dep = gst_sharp.get_variable('gst_sharp_dep')
38
39
40 HACKING
41 -------
42
43 While hacking on the code generator or the `.metadata` files, you will
44 need to force code regeneration with `ninja update-code`, a full rebuild
45 is triggered right after.
46
47 Updating to new GStreamer version
48 --------------------------------
49
50 Make sure you are in an environement where latest `.gir` files are available (either installed
51 or through the `$GI_TYPELIB_PATH` env var), those files are automatically copied to `girs/`.
52
53     ninja -C update-all
54
55 * Verify newly copied gir files in `girs/` and `git add` them
56 * Verify newly generated code and `git add` files in `sources/generated/` and `ges/generated`
57 * Commit
58
59 Supported Platforms
60 ----
61 * Linux
62 * Mac OS X
63
64 Quick Start
65 ----
66 gstreamer-sharp provides ports of all samples from gst-docs in the samples folder.
67
68 Documentation
69 ----
70
71 Since this is a gobject-introspection binding the recommended documentation is
72 the native [gstreamer] documentation. A monodoc generated documentation will be installed.
73
74 Roadmap
75 ----
76 * Add an easy way to compile on Windows
77 * iOS and Android support
78 * Provide binaries for these platforms
79
80 License
81 ----
82 gstreamer-sharp is licensed under the [LGPL 2.1](https://www.gnu.org/licenses/lgpl-2.1.html)
83
84 [bindinator]:https://github.com/GLibSharp/bindinator
85 [gtk-sharp]:https://github.com/GLibSharp/GtkSharp
86 [gstreamer]: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/