gstreamer/subprojects/gstreamer-sharp
Tim-Philipp Müller 3523ba76ae csharp: fix GstAudioRingBuffer structure size and field offset mismatches
.. which caused the gstreamer_sharp_abi unit test to fail.

GstAudioRingBuffer has segdone and segbase as struct fields and
a get/set API with the same name but different types. The fields
have been deprecated and are no longer used now, and they need to
be hidden and we also need to rename them so that the generator
does not mix types (the setter/getters use guint64 but the fields
have gint types, which caused some type confusion in the generator).

Co-authored by: Andoni Morales Alastruey <ylatuya@gmail.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8541>
2025-02-27 17:38:57 +00:00
..
ges csharp: fix GstAudioRingBuffer structure size and field offset mismatches 2025-02-27 17:38:57 +00:00
samples csharp: Add RTSP server example 2024-02-21 19:00:50 +00:00
scripts gst-omx: Retire the whole package 2023-07-16 19:10:03 +00:00
sources csharp: fix GstAudioRingBuffer structure size and field offset mismatches 2025-02-27 17:38:57 +00:00
subprojects csharp: Change gtk-sharp revision in gstreamer-sharp subproject to match monorepo subproject 2024-02-22 13:21:06 +00:00
Tests gstreamer-sharp: Add test checking AppSrc and AppSink constructors work properly 2022-03-08 12:01:13 +00:00
.editorconfig csharp: do not format autogenerated code 2025-01-31 19:14:43 -03:00
.gitignore
AUTHORS
COPYING
gacutil_install.py
generate_code.py csharp: fix code generation script to list files correctly 2023-12-07 17:34:34 +01:00
gstreamer-sharp-1.0.pc.in
gstreamer-sharp.csproj
gstreamer-sharp.sln gstreamer-sharp: ensure a consitent code format 2022-04-05 08:28:50 +00:00
gstreamer-sharp.snk
meson.build Back to development after 1.25.90 2025-02-23 23:52:57 +00:00
meson_options.txt
nuget.py
README.md
update_sources.py csharp: don't force a build when updating sources 2023-12-07 17:34:34 +01:00

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