Commit graph

802 commits

Author SHA1 Message Date
Seungha Yang
1ae8b61ec0 compositor: Add "max-threads" property
Adding new property for user to be able to set expected the maximum
number of blend task threads. This can be useful in case that user
wants to restrict the number of parallel task runners for system
resource management or debugging/development purpose.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1242>
2021-08-20 18:43:26 +09:00
Guillaume Desmottes
0a657d6db5 appsink: add API to catch events
There is currently no way for users to receive incoming events from
appsink while keeping them properly serialized with the buffers flow.
This can be especially useful when application is injecting custom
downstream events into the pipeline and needs to know when they reached
appsink.

Solving this by adding a new signal notifying about new incoming events
and a set of action signals and method to pull those events.
The API is actually pulling the samples and events all together as they
are actually fetched from the same queue.
Having a specific API to pull only events would have the side effect of
discarding samples (and pulling samples would discard events) making
this API not convenient for users.

Partially fix #247

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1046>
2021-07-22 13:56:22 +02:00
Francisco Javier Velázquez-García
6389eef70d videotestsrc: Add SMPTE75 RP-219 color bars conformant
Implement 8-bit values of SMPTE RP 2019-1:2014.  The bar widths and
heights are the result of fractions as integers.  The remainders of
widths are distributed in a way that they match the values in Table
C.1 (a) in the specification.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1063>
2021-07-01 18:03:14 +02:00
Seungha Yang
058f1e92b7 compositor: Add scaling policy to support PAR-aware scaling
Adding "sizing-policy" property for user to be able to specify
scaling policy (aspect-ratio for example).
At the moment, supported mode is only keep-aspect-ratio, but we might
be able to add more policies such as cropping, etc.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/696
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1156>
2021-06-29 23:06:37 +09:00
Sebastian Dröge
c18dd84f79 video: Sort video formats correctly
AV12 should be right after A420 because it is the same format with just
one plane less, instead of being next to I420/NV12 which don't have an
alpha channel.

RGBP should be before GBR because it's the same format except for the
more canonical component order.

See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/790
which actually checks on the CI if the algorithm defined in
video-format.h is implemented correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1189>
2021-06-03 14:00:54 +03:00
Nicolas Dufresne
07fe3289bc doc: Update cache for AV12 pixel format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1152>
2021-05-21 21:16:24 -04:00
Daniel Almeida
195981767c gl: add support for A420 conversion
A420 is a four planar format similar to I420 but with an extra buffer
for alpha values.

A common use of the gl stack is for GPU format conversions using
shaders, in which case one can use glupload, glcolorconvert and
gldownload elements to upload their buffer to the GPU context, perform
the conversion on the GPU itself and then retrieve the data to CPU
context.

A420 was not supported. This patch adds said support mainly by adding
the corresponding shader to perform the conversion and updating the
supported caps.

Both A420->RGBA and RGBA->A420 conversions are supported.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1153>
2021-05-20 15:06:26 +00:00
Matthew Waters
f0205645b3 compositor: perform conversions in parallel
Improves throughput of the total convert and blend process and allows
for higher performance across slightly more threads.

Also make use of video aggregator's task pool for blending as well in
order to reduce the number of threads.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1129>
2021-05-17 19:20:57 +10:00
Nicolas Dufresne
725763f8b2 opusdec: Add Converter class to hint gst-validate
opusdec have minimal conversion capability, adding the Converter class allow
gst-validate to behave properly and not spit an error when it notice that the
number of channels or rate miss-match in and out.

Related to https://gitlab.freedesktop.org/gstreamer/gst-integration-testsuites/-/merge_requests/102

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1142>
2021-05-11 15:06:39 -04:00
Haihao Xiang
d15f88adc5 doc: update gst_plugins_cache.json
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141>
2021-05-11 12:24:41 +08:00
Sebastian Dröge
02530e9d3e appsrc: Implement a leaky property similar to the queue element
This allows dropping the newest or oldest buffer when the internal queue
is full instead of blocking or continuing to grow.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Sebastian Dröge
d987ec21f2 appsrc: Add new max-buffers / max-time / current-level-buffers / current-level-time properties
These work the same way as the corresponding properties on queue and
allow to control the internal buffer size of the appsrc in a more
flexible way.

Unlike in queue the max-buffers and max-time properties are 0 (i.e.
disabled) by default for backwards compatibility reasons.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Thibault Saunier
f1f966d987 giosrc: Add support for growing source files
Add a way for applications to specify that the underlying file is
growing which implies that the source won't EOS when reaching the end
of the file but instead start monitoring it and start reading it again
whenever a change is detected.

Also add a validate test to check the behavior

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/937>
2020-12-08 12:14:58 -03:00
Thibault Saunier
b68767ca06 encoding: Implement encodebin2 with an ON_REQUEST src pad
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/304
2020-11-30 15:44:53 -03:00
Thibault Saunier
5aa5faecf0 encodebin: Split implementation into a base class
Create EncodeBaseBin as a base class for the existing
encodebin to allow other implementations.

Co-authored with Jan Schmidt <jan@centricular.com>
2020-11-30 15:44:53 -03:00
Mathieu Duponchelle
fe20cac1a7 compositor: expose zero-size-is-unscaled property
When that property is left to its default, the width and height
property considers frames from input pads with width or height <= 0
should be left unscaled in that dimension.

Setting this property to FALSE changes that behaviour to < 0, as when
animating these properties, 0 should be a valid end value (eg. shrinking
an input stream until it disappears).

The default value of the width and height properties is set to -1, so that
the default behaviour stays consistent whether that new property is set
or not.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/923>
2020-11-13 14:33:54 +00:00
Thibault Saunier
d268c193ad videoaggregator: Guarantee that the output format is supported
In the case `videoaggregator` is set as allowing format conversions,
and as we convert only on the sinkpads, we should ensure that the
chosen format is usable by the subclass. This in turns implies
that the format is usable on the srcpad.

When doing conversion *any* format can be used on the sinkpads, and this
is the only way that we can avoid race conditions during renegotiations
so we can not change that fact, we just need to ensure that the chosen
intermediary format is usable, which was not actually ensured before
that patch.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/834

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/909>
2020-11-03 00:10:31 +00:00
Sebastian Dröge
28ff6b377d timeoverlay: Add elapsed-running-time mode
This takes the first running time and the first after each flush-stop as
an offset for the running time that is rendered.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/737>
2020-10-08 23:51:02 +03:00
Haihao Xiang
9ccc3dbd6f gl: add support for GBR and GBRA
example pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=GBR ! glimagesink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/789>
2020-09-09 12:04:52 +00:00
Guillaume Desmottes
dd5f7f1bf9 gl: move each gl platform specific API to its own gir
With contributions from:
Thibault Saunier <tsaunier@igalia.com>
Matthew Waters <matthew@centricular.com>

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/651

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/661>
2020-08-06 04:09:09 +00:00
Nicolas Dufresne
9a6730eee6 doc: Update cache with new raw pixel format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/754>
2020-07-14 22:03:39 -04:00
Nicolas Dufresne
29497285d7 doc: Update cache after adding a new pixel format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/753>
2020-07-14 17:33:31 +00:00
Seungha Yang
64e768e836 appsrc: Add support for custom GstSegment
Add property "handle-segment-change" for user to allow pushing
custom segment event. For now, this property can work only for
time format GstSegment.
This property can be useful in case application controls timeline
of stream such as there is timestamp discontinuity but playback is
expected to be continuous. Multi-period scenario of MPEG-DASH is an
example of this use case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/663>
2020-07-10 07:52:53 +00:00
Edward Hervey
6abc6f33da docs: Update cache for removed properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/738>
2020-07-07 15:53:23 +02:00
Edward Hervey
50be315a1a playback: Clarify flag usage for playbin3
Forcing software-decoder has no effect on playbin3 now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/738>
2020-07-07 15:53:23 +02:00
Mathieu Duponchelle
101dc08e5b basetextoverlay: mark valign and halign props as DOC_SHOW_DEFAULT
To document it, we instantiate a subclass and inspect the properties
on the created object. Subclasses (in that case textrender) may
initialize those properties with a different default, we do not
want to expose that in the base class documentation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/723>
2020-07-01 19:44:57 +01:00
Mathieu Duponchelle
648acbe726 docs: add GstVisual to plugins cache 2020-06-23 14:52:21 -04:00
Mathieu Duponchelle
99545b9bea plugins_cache: add base classes 2020-06-23 14:52:20 -04:00
Mathieu Duponchelle
21278981ba meson: mark plugins cache target as always stale 2020-06-23 14:52:20 -04:00
Thibault Saunier
930e9bada4 doc: Stop documenting properties from parents 2020-06-23 14:52:20 -04:00
Sebastian Dröge
63933da9e8 audiodecoder: Add max-errors property
The number of consecutive decode errors that should be tolerated before
returning flow error should be up to the application, not the element.

Hence max-error should be exposed as a property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/720>
2020-06-23 07:17:00 +00:00
Tim-Philipp Müller
82a58f567f Release 1.17.1 2020-06-19 19:16:03 +01:00
Thibault Saunier
4986138c16 docs: Update plugins cache 2020-06-10 13:37:09 +00:00
Thibault Saunier
cef7c833cd docs: Update plugins cache 2020-06-09 09:19:40 -04:00
Thibault Saunier
7495006efa doc: Require hotdoc >= 0.11.0 2020-06-03 22:44:23 -04:00
Sebastian Dröge
b952fc5516 docs: Update gst_plugins_cache.json 2020-06-03 22:44:23 -04:00
Tim-Philipp Müller
289d8e53e2 Remove autotools build system 2019-10-13 14:15:43 +01:00
Seungha Yang
5f70adf667 gl/egl/display: Add support EGLDevice display type
Simple addition for supporting EXT_platform_device typed display.
It's a kind of special display type (part of EGL specification)
which has no window at all.
To use EGLDevice explicitly, set environment "GST_GL_WINDOW=egl-device"

See also https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_platform_device.txt
2019-08-21 05:19:46 +00:00
Nirbheek Chauhan
4d5d7bf1c0 meson: Don't generate doc cache when no plugins are enabled
Fixes gst-build with -Dauto-features=disabled
2019-07-17 19:12:49 +05:30
Mathieu Duponchelle
fad8539c31 docs: override rtsp library project name
.. to avoid conflicts with the rtsp plugin
2019-06-04 15:04:03 +02:00
Mathieu Duponchelle
1abecb3f42 docs: override rtp library project name
.. to avoid conflicts with the rtp plugin
2019-06-04 14:58:45 +02:00
Mathieu Duponchelle
e3e5ccdb08 docs: unprefix subproject paths
special case for app, renamed to applib to not conflict
with the plugin
2019-06-01 02:39:20 +02:00
Tim-Philipp Müller
3645c0c4cb docs: update plugin docs cache 2019-05-29 11:14:05 +01:00
Mathieu Duponchelle
66552a8a2a Update plugin cache 2019-05-25 19:43:33 +02:00
Matthew Waters
51f2d05ff6 gl/docs: add to new docs system 2019-05-21 01:49:48 +00:00
Tim-Philipp Müller
4a89608f07 docs: don't build plugins doc cache by default
https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
2019-05-17 12:26:40 +01:00
Thibault Saunier
b26ae29c20 docs: Update plugins documentation cache
Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
2019-05-16 09:33:33 -04:00
Thibault Saunier
bd72ad601f Mark some properties as DOC_SHOW_DEFAULT 2019-05-13 11:34:08 -04:00
Thibault Saunier
27ba8d24ec doc: Port to hotdoc 2019-05-13 11:34:08 -04:00
Thibault Saunier
cf6ed5700c doc: Remove gtk-doc support 2019-05-13 10:21:37 -04:00