Commit graph

36 commits

Author SHA1 Message Date
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
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
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
Sebastian Dröge b952fc5516 docs: Update gst_plugins_cache.json 2020-06-03 22:44:23 -04: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
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