Bing Song
d7de78e554
encodebin: handle video encoder preset fail.
...
Check video encoder preset before request muxer pad as MOV/MP4 don't
support addition/removal of tracks at random times.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1064 >
2021-03-19 12:43:59 +00:00
Matthew Waters
98249a57db
gst: don't use volatile to mean atomic
...
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead. GCC 11 has started warning about using volatile
with atomic operations.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1073 >
2021-03-19 04:20:19 +00:00
Stéphane Cerveau
f25ceab46f
audioconvert: update doc for mix-matrix
...
No need for specific cast in mix-matrix
syntax.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1072 >
2021-03-17 14:26:54 +01:00
Stéphane Cerveau
a750bc8f23
playback: element_init returns void
...
no need to return boolean as it will
be always TRUE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1029 >
2021-03-16 17:59:00 +00:00
Stéphane Cerveau
4f6af9e57a
volume: 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:59:00 +00:00
Stéphane Cerveau
b4905798bb
videotestsrc: 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:59:00 +00:00
Stéphane Cerveau
90f640d90d
videoscale: 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:59:00 +00:00
Stéphane Cerveau
328f7c0b48
videorate: 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
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