Back to development
[platform/upstream/gstreamer.git] / subprojects / gstreamer-sharp / 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 build update-all
54
55 or if using gst-build, start gst-env and then run
56
57     ninja -C build gstreamer-sharp@@update-all
58
59 * Verify newly copied gir files in `girs/` and `git add` them
60 * Verify newly generated code and `git add` files in `sources/generated/` and `ges/generated`
61 * Commit
62
63 Supported Platforms
64 ----
65 * Linux
66 * Mac OS X
67
68 Quick Start
69 ----
70 gstreamer-sharp provides ports of all samples from gst-docs in the samples folder.
71
72 Documentation
73 ----
74
75 Since this is a gobject-introspection binding the recommended documentation is
76 the native [gstreamer] documentation. A monodoc generated documentation will be installed.
77
78 Roadmap
79 ----
80 * Add an easy way to compile on Windows
81 * iOS and Android support
82 * Provide binaries for these platforms
83
84 License
85 ----
86 gstreamer-sharp is licensed under the [LGPL 2.1](https://www.gnu.org/licenses/lgpl-2.1.html)
87
88 [bindinator]:https://github.com/GLibSharp/bindinator
89 [gtk-sharp]:https://github.com/GLibSharp/GtkSharp
90 [gstreamer]: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/