GStreamer Plugin Boilerplate Generator

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

GStreamer Plugin Boilerplate Generator

MaZderMind
Hi there,

last time I asked on IRC how to best start a new Plugin, the suggestion
was to "copy whatever comes close to what you're seeking for and modify it".

Unfortunately the GObject Class-System requires, at least in the way
GStreamer uses it, to write the Name of an Elemnt over and over again in
different writings.

Also setting up basic Properties requires the author to put the correct
lines of Boilerplate into multiple places, especially for some
Property-Types (ENUM, FLAGS).

Additionally setting up a working Build-Environment, configure.ac,
Makefile etc. can be a tedious task, if one is not familar with the
structure and reqirements.

I know that there is
https://gstreamer.freedesktop.org/documentation/plugin-development/basics/boiler.html
but it only kind'a solves the first Problem.

All of this poses overhead on the Plugin-Development. One can spend a
whole day or two copying an existing Plugin, removing all the functional
pieces, renaming all the things and adding back Properties, Signals and
bringing the Plugin to do at least something.

To make it simpler for me and others to create new Plugins and get a
faster start, I created https://gstreamer.mazdermind.de/ .


It's a python backed Web-GUI creating complete build-environments for
GStreamer-Plugins. It supports BaseSrc, PushSrc, BaseSink and
BaseTransform vor Video, Audio and ANY-Media-Types. It assists in
generating Property-Code for all types including ENUMs and FLAGs as well
as Signals.

It generates a .zip-File with a complete build-environment including
Shellscripts for quick inspection and running the compiled plugin.

There is a Travis-Job
(https://travis-ci.org/MaZderMind/gstreamer-plugin-generator) which,
additionally to running Unit-Test for Front and Backend, compiles a
multitude of different Combinations, so I am pretty confident that
whatever passes the Form-Validation should result in a buildable- and
runnable Plugin.

I hope you find this tool useful and would love to collect some Feedback.

Best Regards,
Peter
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer Plugin Boilerplate Generator

Antonio Ospite-2
On Mon, 4 Feb 2019 17:20:47 +0100
MaZderMind <[hidden email]> wrote:

> Hi there,
>

Hi,

> last time I asked on IRC how to best start a new Plugin, the suggestion
> was to "copy whatever comes close to what you're seeking for and modify it".
>
> Unfortunately the GObject Class-System requires, at least in the way
> GStreamer uses it, to write the Name of an Elemnt over and over again in
> different writings.
>
[...]
> I know that there is
> https://gstreamer.freedesktop.org/documentation/plugin-development/basics/boiler.html
> but it only kind'a solves the first Problem.
>

As that page suggests, some templates can be found at:
https://gitlab.freedesktop.org/gstreamer/gst-template

However as noted in one of the issue there
(https://gitlab.freedesktop.org/gstreamer/gst-template/issues/2), the
recommended templates are now in gst-plugins-bad:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/tree/master/tools

Here you can choose the base class depending on the kind of element you
want to create.

And you can create the autotools project.

I also have a script to create a meson project instead of an
autotools one and I plan to submit it to gst-plugins-bad soon.

> All of this poses overhead on the Plugin-Development. One can spend a
> whole day or two copying an existing Plugin, removing all the functional
> pieces, renaming all the things and adding back Properties, Signals and
> bringing the Plugin to do at least something.
>
> To make it simpler for me and others to create new Plugins and get a
> faster start, I created https://gstreamer.mazdermind.de/ .
>
[...]
> I hope you find this tool useful and would love to collect some Feedback.
>

This is certainly interesting for new users.

Maybe the UI can reuse the templates from gst-plugin-bad to have a
common ground for "official" examples.

Ciao,
   Antonio

--
Antonio Ospite
https://ao2.it
https://twitter.com/ao2it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel