Commit graph

100 commits

Author SHA1 Message Date
Niels De Graef
5bd3fcf726 cairo: Use G_DECLARE_FINAL_TYPE 2020-03-12 19:24:57 +01:00
Niels De Graef
7cf4ab6229 Don't pass default GLib marshallers for signals
By passing `NULL` to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.

Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
2019-11-17 15:32:30 +00:00
Tim-Philipp Müller
c9a47c0c8d Remove autotools build system 2019-10-14 11:04:18 +01:00
Thibault Saunier
af01988534 doc: Port documentation to hotdoc 2019-05-13 11:34:56 -04:00
Thibault Saunier
0a6a62aa76 docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
Sebastian Dröge
172d14acef cairooverlay: Optimize premultiplication/unpremultiplication loops
Pull in video frame fields into local variables. Without this the
compiler must assume that they could've changed on every use and read
them from memory again.

This reduces the inner loop from 6 memory reads per pixels to 4, and the
number of writes stays at 3.
2018-12-07 17:22:39 +00:00
Sebastian Dröge
a766dce53d cairooverlay: Don't map input buffers if we just attach the overlay as meta
https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge
10446bd371 cairooverlay: Add overlay as meta to the buffers if we can
This requires that downstream supports it and
draw-on-transparent-surface is enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge
f1c5a22a7a cairooverlay: Pre-multiply and un-premultiply alpha in case of ARGB32
Cairo expects pre-multiplied alpha, we work on un-premultiplied alpha.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Sebastian Dröge
9844bdbf7a cairooverlay: Add property for drawing on a transparent surface and then blending
This allows us to use the GstVideoOverlayComposition API and correctly
handle pre-multiplied alpha, while also only doing the alpha conversion
once instead of twice for the whole frame.

At a later point we can attach the meta to the buffer instead of
blending ourselves if downstream supports that.

https://bugzilla.gnome.org/show_bug.cgi?id=797091
2018-10-03 23:20:10 +03:00
Nirbheek Chauhan
8f807477eb meson: Add feature options for all plugins
Checks for GL, Qt5, and C++ are still automagic. FIXMEs have been
added for these so they can be fixed later.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 18:42:54 +05:30
Xavier Claessens
edd9c8f6b8 Meson: Generate pc file for all plugins in good
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:07:06 +01:00
Nicolas Dufresne
b68d936ae0 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:41:19 -04:00
Nirbheek Chauhan
b09f478e80 Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:21:12 +01:00
Vineeth TM
1071309870 good: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Julien Isorce
90b01fce61 cairooverlay: add support for RGB16
https://bugzilla.gnome.org/show_bug.cgi?id=723289
2014-01-31 14:17:54 +00:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Tim-Philipp Müller
e3dbf9e256 cairo: remove old cairo-based text renderering element
They haven't worked well or at all in a very long time
and were rather bit-rotten, and there's no need for them
any more.
2013-01-01 12:12:02 +00:00
Tim-Philipp Müller
08702be68f cairo: port cairooverlay to 0.11
The other elements are not that interesting now that we're
using pangocairo in the pango plugin, and should probably
just be removed.
2013-01-01 11:52:09 +00:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Stefan Sauer
f874922e1c collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:05:44 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Mark Nauwelaerts
67e168aef4 collectpads2: rename to collectpads 2012-04-17 15:14:27 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25 gst: Update versioning 2012-04-04 14:37:47 +02:00
Wim Taymans
225e98d623 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacenc.c
	ext/jack/gstjackaudioclient.c
	ext/jack/gstjackaudiosink.c
	ext/jack/gstjackaudiosrc.c
	ext/pulse/plugin.c
	ext/shout2/gstshout2.c
	gst/matroska/matroska-mux.c
	gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Jayakrishnan M
d6821a336d cairo: fix build, make sure libgstvideo can be found
https://bugzilla.gnome.org/show_bug.cgi?id=668648
2012-01-25 15:21:44 +00:00
Sebastian Dröge
93e3ed5a86 Merge branch 'master' into 0.11
Conflicts:
	ext/cairo/gsttextoverlay.c
	ext/pulse/pulseaudiosink.c
	gst/audioparsers/gstaacparse.c
	gst/avi/gstavimux.c
	gst/flv/gstflvmux.c
	gst/interleave/interleave.c
	gst/isomp4/gstqtmux.c
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-mux.c
	gst/matroska/matroska-mux.h
	gst/matroska/matroska-read-common.c
	gst/multifile/gstmultifilesink.c
	gst/multipart/multipartmux.c
	gst/shapewipe/gstshapewipe.c
	gst/smpte/gstsmpte.c
	gst/udp/gstmultiudpsink.c
	gst/videobox/gstvideobox.c
	gst/videocrop/gstaspectratiocrop.c
	gst/videomixer/videomixer.c
	gst/videomixer/videomixer2.c
	gst/wavparse/gstwavparse.c
	po/ja.po
	po/lv.po
	po/sr.po
	tests/check/Makefile.am
	tests/check/elements/qtmux.c
	tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Wim Taymans
47a1da9076 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-04 10:01:48 +01:00
Vincent Penquerc'h
cf344d50b1 cairotextoverlay: port to GstCollectPads2 2011-12-14 18:34:25 +00:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Stefan Sauer
8643d1caaf collectpads: port API changes 2011-11-17 08:44:45 +01:00
Vincent Penquerc'h
6a25727321 cairotextoverlay: add a 'silent' property to skip rendering
https://bugzilla.gnome.org/show_bug.cgi?id=662856
2011-11-07 12:35:26 +00:00
Vincent Penquerc'h
38b596337f cairotextoverlay: forward new segment events from the sink to the source
Not doing so will cause buffers to be received by downstream without
a time base set.
We use the same method avimux uses to get access to the event when
collectpads got the sink event function.

https://bugzilla.gnome.org/show_bug.cgi?id=640323
2011-05-26 11:35:01 +02:00
Vincent Penquerc'h
b99f4be3db textoverlay: forward source events to sinks
Events are passed to the video sink, and to the text sink if it is
linked.
This will allow seeking, for instance.

https://bugzilla.gnome.org/show_bug.cgi?id=586450
2011-05-26 11:33:10 +02:00
Stefan Kost
ed77b14aa0 cairo: fix the name of the *-marshall.list file to unbreak make distcheck 2011-03-25 12:53:43 +02:00
Sebastian Dröge
fdbdbfefd2 cairooverlay: Some minor cleanup 2011-03-02 23:14:36 +01:00
Jon Nordby
32dff9df75 cairooverlay: Add generic Cairo overlay video element.
Allows applications to connect to the "draw" signal of
the element and do their custom drawing there.
Includes an example application demonstrating usage.

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=595520
2011-03-02 22:55:52 +01:00
Edward Hervey
6e1c701502 Revert "Check that collectpads exists before removing pad"
This reverts commit 8e6b876e76.

Depends on a core commit that was reverted
2011-02-21 12:25:19 +01:00
David Schleef
8e6b876e76 Check that collectpads exists before removing pad
The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
2011-02-20 23:46:01 -08:00
Tim-Philipp Müller
cfa7225898 cairo, videofilter: use gst/math-compat.h header for rint 2010-12-31 02:16:54 +00:00
David Schleef
954a04e2b5 cairo: Don't use #ifdefs inside macros 2010-12-30 14:21:37 -08:00
Stefan Kost
45f6707784 various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Sebastian Dröge
a7a0afa5c4 cairotextoverlay: Don't render text outside the frame boundaries
Fixes bug #611986.
2010-03-15 13:41:56 +01:00
Sebastian Dröge
c78b3b1332 cairorender: Fix leaking of pad templates 2010-02-15 01:28:44 +01:00
Sebastian Dröge
9d9d08622b cairorender: Add support for ARGB/BGRA input
Note that videotestsrc outputs 100% transparent video
which will result in white output from cairorender.
2009-07-20 08:08:22 +02:00
Sebastian Dröge
bdb1e59d77 cairorender: Add to the documentation 2009-07-17 13:49:21 +02:00
Sebastian Dröge
7ba6ef6672 cairorender: Return not-negotiated if we have no caps 2009-07-17 13:42:49 +02:00