Stéphane Cerveau
aa230852ba
videoconvert: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
a3875c7d02
overlaycomposition: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
4e9520ab34
encoding: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
0ae61fd48d
compositor: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
a71bf2e3da
adder: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
2cc37e706c
audioconvert: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
5dcdc09077
gio: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
160ba7d0e9
app: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
f94d9f1cc5
audiomixer: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
520a682c7c
tcp: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
3d3831656d
rawparse: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:58:59 +00:00
Stéphane Cerveau
01d1bbd1da
playback: remove useless ret test
...
Use GST_ELEMENT_REGISTER_DEFINE_CUSTOM instead
of GST_ELEMENT_REGISTER_DEFINE_WITH_CODE if a specific
init needs to be tested before registering the element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1060 >
2021-03-10 20:06:20 +01:00
Mathieu Duponchelle
dd71f359be
compositor: fix drawing of transparent background
...
When drawing the background multithreaded, y_start needs to be
scaled to obtain the correct byte offset from which to start
memsetting (yoffset).
Fixes #871
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1042 >
2021-03-01 23:38:35 +00:00
Francisco Javier Velázquez-García
740ea66e73
videotestsrc.c: Correct left shift operator
...
Use the left shift operator '<<' instead of the mistakenly typed less
than operator '<'.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1047 >
2021-02-23 14:53:43 +01:00
Jeongki Kim
fd41fca7f3
audioresample: Respect buffer layout when drain
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1045 >
2021-02-22 15:36:53 +09:00
Jan Schmidt
ebad39b865
videoconvert: Only prefer upstream chroma-site with same subsampling.
...
If converting YUV formats with different chroma-subsampling, there's
probably no good reason to prefer the upstream chroma-siting so just use
the default for the output format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033 >
2021-02-19 09:45:07 +00:00
Jan Schmidt
eabb2c1802
videoconvert: Implement more sophisticated colorimetry caps transfer
...
Implement a more sophisticated transfer of colorimetry and
chroma-site fields to output caps when fixating.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033 >
2021-02-19 09:45:07 +00:00
Jan Schmidt
98bdc76fa5
videoconvert: Forward colorimetry and chroma-site from upstream.
...
If downstream has expressed no preference for particular colorimetry
and chroma-site configuration, transfer them from the input caps.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/614
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1033 >
2021-02-19 09:45:07 +00:00
Stéphane Cerveau
8bf7816790
decodebin3: change stream selection message owner
...
In order to select the streams on GST_MESSAGE_STREAM_COLLECTION,
the app needs to send the select-streams event
to the decodebin and not to the parsebin.
The message should be always owned by the decodebin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1014 >
2021-02-19 08:01:57 +00:00
Tim-Philipp Müller
c7f1fd8320
uridecodebin3: make caps property work
...
The caps set on uridecodebin3 via the "caps" property
were never passed to the internal decodebin3, so did
absolutely nothing.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/837
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1034 >
2021-02-16 22:58:22 +00:00
Thibault Saunier
a8fca8d040
encodebin: Add APIs to set element properties on encoding profiles
...
User often want to set encoder properties on encoding profiles,
this introduces a way to easily 'preset' properties when defining the
profile. This uses GstStructure to define those properties the same
way it is done in `splitmux` for example as it makes simple to handle.
This also defines a more complex structure type where we can map a set
of properties to set depending on the muxer/encoder factory that has
been picked by EncodeBin so it is quite flexible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1002 >
2021-02-10 15:56:26 +00:00
Vivia Nikolaidou
b7b3ec6a6e
videoscale: Support for alternate-field interlacing
...
Accept the negotiation, video-converter.c is aware of the half-height
already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1027 >
2021-02-04 18:28:54 +02:00
Vivia Nikolaidou
ca4240bd03
videoconvert: Support for alternate-field interlacing
...
Treat the data just like normal data with half the height. Also treat it
as progressive when converting from/to I420 because it requires
different handling for chroma subsampling.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1027 >
2021-02-04 18:22:07 +02:00
Sebastian Dröge
23370ec429
typefindfunctions: Consider the number and types of atoms found in a row for suggesting a probability
...
If there are 3 or more known atoms in a row, it's likely that this is
actually MOV/MP4 even if we don't find any other known atoms. If 5 or
more are found then this is most certainly MOV/MP4 and we can return.
Also if a moov and mdat atom is found, this is definitely a MOV/MP4 file
and can be used as such, independent of anything else following the
mdat.
Fixes typefinding of various MOV files that have no `ftyp` atom but
otherwise a valid file structure followed by some garbage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1013 >
2021-01-31 11:53:43 +02:00
Marijn Suijten
abb026ec6a
gl,video: Make ptrs to VideoInfo and (GL)AllocationParams immutable
...
These parameters are incorrectly regarded as mutable in G-IR making them
"incompatible" with languages that are explicit about mutability like
Rust. In order to clean up the code and expected API there, update the
signatures here, right at the source (instead of overriding them in
Gir.toml and hoping for the best).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1005 >
2021-01-14 11:53:10 +00:00
Thibault Saunier
dc969bf538
giosrc: Ensure that an error is posted when underlying file is deleted
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1001 >
2021-01-08 09:31:30 +00:00
Thibault Saunier
5950fc1aae
encodebasebin: Ensure that parsers are compatible with selected encoders
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/845
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/963 >
2021-01-07 20:36:30 +00:00
Mathieu Duponchelle
e0a4d3ac4e
compositor/blend.c: fix MT checker pattern
...
When filling the checker pattern from multiple threads, y_start
needs to be taken into account to determine the shade of the
current pixel.
Example pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw, width=1920, height=1080, format=I420 ! \
queue ! compositor sink_0::xpos=200 ! video/x-raw, format=I420 ! videoconvert ! \
xvimagesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/988 >
2020-12-29 22:48:08 +00:00
Mathieu Duponchelle
247f821826
compositor/blend.c: fix MT fill_checker for YUY2
...
The initial byte offset should be calculated from the stride,
not from the dest_add variable
Example pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw, width=1920, height=1080, format=YUY2 ! \
queue ! compositor sink_0::xpos=200 ! video/x-raw, format=YUY2 ! xvimagesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/988 >
2020-12-29 22:48:08 +00:00
Mathieu Duponchelle
8ff5079e5e
compositor/blend: fix blending of subsampled components
...
The correct way to determine the byte offset at a certain yoffset
in a subsampled component is to shift the yoffset by the component's
hsub
This fixes out-of-bounds memory accesses and visible artefacts,
example pipeline with the samples from #802 :
gst-launch-1.0 compositor name=vmixer sink_1::xpos=1910 sink_1::ypos=1080 ! \
videoconvert ! videorate ! xvimagesink \
filesrc location=VID_20200723_203606.mp4 ! decodebin name=demux1 ! \
queue ! videoflip method=vertical-flip ! vmixer. \
filesrc location=bridgeoverstubbledwater.mp4 ! decodebin name=demux2 ! \
queue ! vmixer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/988 >
2020-12-29 22:48:08 +00:00
Sebastian Dröge
15fb391401
decodebin3: When reconfiguring a slot make sure that the ghostpad is unlinked
...
This was only taken care of previously if there was a decoder before.
However if previously a decoder was not needed then the ghostpad
would've been linked directly to the slot's srcpad.
Reconfiguring the slot requires this to be undone so that linking can
happen normally.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/985 >
2020-12-24 11:44:27 +02:00
Sebastian Dröge
dcea0b3999
audiorate: Make buffer writable before changing its metadata
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/977 >
2020-12-15 13:16:31 +00:00
Edward Hervey
56e05f63f5
decodebin3: Release selection lock when pushing EOS
...
We can't keep the lock otherwise this would lock other actions. In order to keep
it safe, we grab a list of peer pads to send EOS to with the lock taken, then
send to the peer pads with the lock released.
Also make sure the selection lock is taken for another call to this function
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/847
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/971 >
2020-12-11 18:36:30 +00:00
Edward Hervey
030ccaedb5
typefind: Fix debug category usage
...
Only register it in one place and use it everywhere from the header. Also make
sure it doesn't clash with the debug category from core.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/972 >
2020-12-11 14:06:30 +01:00
Stéphane Cerveau
dff494977b
typefindfunctions: allow per features registration
...
Split plugin into features including
typefind functions which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900 >
2020-12-10 13:01:57 +00:00
Stéphane Cerveau
817a533e47
pbtypes: allow per features registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900 >
2020-12-10 13:01:57 +00:00
Stéphane Cerveau
b6f8d0544c
subparse: allow per feature registration
...
Split plugin into features including
elements and device providers which
can be indiviually registered during
a static build.
More details here:
i
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900 >
2020-12-10 13:01:57 +00:00
Stéphane Cerveau
1e02717e83
playback: allow per feature registration
...
Split plugin into features including
elements and device providers which
can be indiviually registered during
a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900 >
2020-12-10 13:01:57 +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
Sebastian Dröge
831199a808
compositor: Don't crash in prepare_frame() if the pad was just removed
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/950 >
2020-12-01 13:13:58 +02:00
Thibault Saunier
db17502446
encodebin: Enhance algorithm to check if profiles can be plugged to muxer
...
In particular muxing sinks have specific set of sinkpads and we need
to handle that.
2020-11-30 15:44:53 -03:00
Thibault Saunier
174201059e
encodebin: Ignore element classification when a muxer name specified
...
Instead of going through the list of known muxers go ahead and
instantiate the muxer specified as 'preset name' as this specifies
the exact element factory name to use.
2020-11-30 15:44:53 -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
Marijn Suijten
3ec795f613
audio: Move fill_silence into audio_format_info
...
With the function named gst_audio_format_fill_silence it would get
associated to the GstAudioFormat type in .gir which is incorrect and
confusing. See [1] for the discussion sparking this change.
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/630#note_694795
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/940 >
2020-11-25 19:18:25 +01:00
Edward Hervey
0dc419197f
decodebin3: Take into account decoder latency for interleave size
...
Some decoders might introduce quite large latencies, which would result in
multiqueue draining out on some streams. In order to avoid that, check the
latency of decoders and adjust the minimum interleave time of multiqueue
accordingly.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/800
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/931 >
2020-11-20 09:43:50 +01:00
Edward Hervey
929d2bca09
decodebin3: Don't leak filter caps
...
Introduced by previous commit
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/933
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/934 >
2020-11-19 14:36:19 +01:00
Edward Hervey
32a4953882
decodebin3: Properly handle caps query with no filter
...
There's no guarantee that upstream elements will do queries with specified
filter caps. If that's the case, just return GST_CAPS_ANY
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/933 >
2020-11-19 11:05:03 +01: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