2022-12-19 15:22:15 +0100 Philipp Zabel
* gst/videoscale/gstvideoscale.c:
videoscale: fix valid_tags NULL-terminated array of strings
The valid_tags array of strings must be NULL-terminated,
as it is passed to the g_strv_contains() function.
Part-of:
2022-11-17 15:41:35 +0100 Edward Hervey
* gst/playback/gstdecodebin2.c:
decodebin2: Minor debug fix for decodepad
decodedad might have their name changed when exposing, causing a race when
trying to get their name without taking a lock. Just use GST_PTR_POINTER in
debug statements instead
Part-of:
2022-11-21 15:12:26 +0100 Edward Hervey
* ext/ogg/gstoggdemux.c:
oggdemux: Don't leak pending seek event
Make sure any pending seek event is released when going back down to READY.
Part-of:
2022-11-21 15:10:35 +0100 Edward Hervey
* gst/playback/gstparsebin.c:
parsebin: Don't leak parsepad list on shutdown
Free it as it is down in other cases
Part-of:
2022-11-30 20:48:28 +0200 Vivia Nikolaidou
* ext/opus/gstopusdec.c:
opusdec: Use proper guint/guint8 type conversion
Do not cast, that might yield wrong results.
Part-of:
2022-11-30 20:47:11 +0200 Vivia Nikolaidou
* ext/opus/gstopusdec.c:
opusdec: Negotiate default to 2 channels
In that place, dec->n_channels can still theoretically be 0. Default to
2 in that case.
Part-of:
2022-12-11 17:36:53 +0000 Tim-Philipp Müller
* ext/pango/gsttimeoverlay.c:
timeoverlay: fix pad leak
Spotted by Jiri Uncovsky.
Part-of:
2022-12-07 14:49:05 +0200 Sebastian Dröge
* ext/pango/gsttextrender.c:
textrender: Negotiate caps on a GAP event if none were negotiated yet
Otherwise downstream wouldn't have received a segment event either and
wouldn't know what to do with the gap event
And also forward any pending segment event.
Part-of:
2022-11-26 09:23:59 +0100 Tim-Philipp Müller
* gst-libs/gst/audio/gstaudiofilter.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
audioconvert, audioresample, audiofilter: fix divide by 0 for input buffer without caps
gst-launch-1.0 audiotestsrc ! udpsink host=127.0.0.1
gst-launch-1.0 udpsrc ! audioconvert ! autoaudiosink
would crash with a floating point exception when clipping the input
buffer owing to a division by zero because no caps event was received.
Part-of:
2022-11-21 18:47:50 +0200 Sebastian Dröge
* ext/pango/gsttextrender.c:
* ext/pango/gsttextrender.h:
textrender: Don't pass plaintext as pango markup to Pango
Otherwise e.g. & in the text will cause Pango to complain about invalid
markup and render the text incorrectly.
Part-of:
2022-11-21 18:43:54 +0200 Sebastian Dröge
* ext/pango/gsttextrender.c:
textrender: Don't blindly forward all events
Use gst_pad_event_default(), which does the right thing by default.
Especially it does not forward text/x-plain caps downstream.
Part-of:
2022-11-14 07:26:25 +0100 Edward Hervey
* ext/ogg/gstoggdemux.c:
oggdemux: Don't leak incoming EOS event
If we're going to drop it ... then do drop it :)
Part-of:
2022-11-05 07:34:27 +0100 Edward Hervey
* gst/subparse/gstsubparse.c:
subparse: Fix non-closed tag handling.
Unclear what the goal was, but we could end up reading way past the next_tag.
Instead just move everything from after the end tag ('>') to the next_tag.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53040
Part-of:
2022-10-27 15:13:36 +0300 Sebastian Dröge
* gst-libs/gst/app/gstappsrc.c:
* gst-libs/gst/audio/gstaudiodecoder.c:
* gst-libs/gst/audio/gstaudioencoder.c:
* gst-libs/gst/video/gstvideoencoder.c:
core/base: Only post latency messages if the latency values have actually changed
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525
Part-of:
2022-10-27 07:21:19 +0200 Edward Hervey
* gst-libs/gst/video/gstvideodecoder.c:
videodecoder: Only post latency message if it changed
Posting latency messages causes a full and potentially expensive latency
recalculation of the pipeline. While subclasses should check whether the latency
really changed or not before calling this function, we ensure that we do not
post such messages if it didn't change.
Part-of:
2022-10-06 00:00:59 +0900 Seungha Yang
* gst-libs/gst/video/gstvideosink.c:
videosink: Don't return unknown end-time from get_times()
... in case of reverse playback. Otherwise basesink will not
wait for clock
Part-of:
2022-10-21 21:50:01 +0530 Nirbheek Chauhan
* gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h:
* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
gl/vulkan: Fix static linking on macOS
duplicate symbol '__invoke_on_main' in:
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o)
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Also make the same change in iOS for consistency.
Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132
Part-of:
2022-10-14 14:59:49 +0100 Tim-Philipp Müller
* meson.build:
gst-plugins-base: bump core req to 1.20.4
For newly-added _gst_meta_tag_memory_reference symbol.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928#note_1591459
Part-of:
2022-10-04 05:39:51 +0100 Matthew Waters
* gst-libs/gst/gl/meson.build:
build/gl: fix automatic dispmanx detection for rpi4
rpi4 doesn't contain dispmanx but still contains bcm_host.pc which
confuses the configure detection. Add an explicit check for
EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when
the types are available.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952
Part-of:
2022-07-06 21:45:24 +0300 Jordan Petridis
* ext/cdparanoia/meson.build:
cdparanoia: Ignore compiler warning coming from the cdparanoia header
When trying to build the plugin, GCC starts complaining about issues
with one of the cdparanoia headers and it block us from being able
to build the plugin with Werror.
The current warning in the header look like this:
```
[1/2] Compiling C object subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so.p/gstcdparanoiasrc.c.o
In file included from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37,
from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.c:31:
/usr/include/cdda/cdda_interface.h:164:3: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
164 | "Success",
| ^~~~~~~~~
...
/usr/include/cdda/cdda_interface.h:163:14: warning: ‘strerror_tr’ defined but not used [-Wunused-variable]
163 | static char *strerror_tr[]={
| ^~~~~~~~~~~
[2/2] Linking target subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so
```
Last release of cdparanoia was in 2008, so our best bet for the
time is to ignore the warnings.
Part-of:
2022-10-14 16:12:45 +0200 Edward Hervey
* tools/gst-play.c:
gst-play: Don't leak the stream collection
We are given a reference to the collection when parsing it from the
message. Just store it (instead of referencing it again).
Part-of:
2022-08-22 16:33:23 -0400 Nicolas Dufresne
* gst-libs/gst/gl/egl/gsteglimage.c:
opengl: Fix usage of eglCreate/DestroyImage
The implementation was inconsistent between create and destroy. EGLImage
creation and destruction is requires for EGL 1.5 and up, while
otherwise the KHR version is only available if EGL_KHR_image_base
feature is set. Not doing these check may lead to getting a function
pointer to a stub, which is notably the case when using apitrace.
Fixes #1389
Part-of:
2022-10-12 18:40:25 +0100 Tim-Philipp Müller
* meson.build:
Back to development
=== release 1.20.4 ===
2022-10-12 16:39:47 +0100 Tim-Philipp Müller
* ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.20.4
2022-10-12 16:39:40 +0100 Tim-Philipp Müller
* ChangeLog:
Update ChangeLogs for 1.20.4
2022-10-01 04:51:21 +1000 Jan Schmidt
* sys/xvimage/xvimageallocator.c:
xvimagesink: Don't leak XvShmImage
If allocating an XvShmImage generates an X error, but
still returns some allocated memory, make sure to free it
so it doesn't leak.
Part-of:
2022-10-01 04:41:06 +1000 Jan Schmidt
* gst/playback/gstdecodebin3.c:
decodebin3: Make sure event is writable before modifying
Make sure we're operating on a private copy of an event when
modifying it.
Part-of:
2022-10-01 04:40:09 +1000 Jan Schmidt
* gst/playback/gsturisourcebin.c:
urisourcebin: Make sure event is writable before modifying.
Make sure we're operating on a private copy of an event before
modifying it.
Part-of:
2022-10-01 04:37:05 +1000 Jan Schmidt
* gst/playback/gstdecodebin3.c:
decodebin3: Don't lose a ref on EOS event
Make sure not to give away the ref on the final EOS
event for which the probe handler is returning GST_PAD_PROBE_REMOVE
when pushing the event manually.
Part-of:
2022-10-06 13:03:26 +0200 Aleksandr Slobodeniuk
* gst/playback/gstdecodebin3.c:
decodebin3: fix mutex leaks
Part-of:
2022-10-01 02:33:49 +1000 Jan Schmidt
* gst/playback/gstplaysink.c:
* gst/playback/gstplaysinkaudioconvert.c:
* gst/playback/gstplaysinkaudioconvert.h:
playsink: Hold a reference to the soft volume element
Always hold a reference to the soft volume element
provided by the playsinkaudioconvert bin helper, the
same as when volume is provided by a sink element,
or the soft volume element gets unreffed too soon.
Part-of:
2022-09-30 00:07:07 +0100 Tim-Philipp Müller
* gst-libs/gst/pbutils/descriptions.c:
* tests/check/libs/pbutils.c:
pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()
And add a little unit test.
Part-of:
2022-09-29 09:39:15 +0100 James Cowgill
* gst-libs/gst/tag/gstxmptag.c:
xmptag: Call gst_tag_register_musicbrainz_tags during init
We need to call this to register the MusixBrainz tags before we use
them in an XMP schema.
Fixes this critical when attempting to run jpegparse on a JPEG
containing MusicBrainz XMP tags:
GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed
Part-of:
2018-03-28 17:54:15 +0200 Philipp Zabel
* gst-libs/gst/audio/gstaudiodecoder.c:
* gst-libs/gst/audio/gstaudioencoder.c:
* gst-libs/gst/video/gstvideodecoder.c:
* gst-libs/gst/video/gstvideoencoder.c:
buffer: drop parent meta in deep copy/foreach_metadata
The purpose of a deep buffer copy is to be able to release the source
buffer and all its dependencies. Attaching the parent buffer meta to
the newly created deep copy needlessly keeps holding a reference to the
parent buffer.
The issue this solves is the fact you need to allocate more
buffers, as you have free buffers being held for no reason. In the good
cases it will use more memory, in the bad case it will stall your
pipeline (since codecs often need a minimum number of buffers to
actually work).
Fixes #283
Part-of:
2022-09-27 13:41:37 +0200 Edward Hervey
* gst/playback/gstdecodebin3.c:
decodebin3: Fix memory issues with active selection list
This had a couple of issues:
* The backing strings (from GstStream) could disappear
* The actual list wasn't properly reset/freed when decodebin3 was re-used
Part-of:
2022-09-07 16:35:38 +1000 Matthew Waters
* gst/subparse/mpl2parse.c:
subparse: fix crash when parsing invalid timestamps in mpl2
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49245
Part-of:
2022-08-30 14:29:41 +0200 Rafael Caricio
* gst-libs/gst/pbutils/gstaudiovisualizer.c:
audiovisualizer: fix buffer mapping to not increase refcount
Part-of:
2022-08-12 22:42:28 -0700 Khem Raj
* gst/subparse/gstssaparse.c:
ssaparse: include required system headers for isspace() and sscanf() functions
Newer compilers ( clang 15 ) have turned stricter and errors out instead
of warning on implicit function declations
Fixes
gstssaparse.c:297:12: error: call to undeclared library function 'isspace' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
while (isspace(*t))
Part-of:
2022-08-12 13:16:50 +0300 Sebastian Dröge
* gst-libs/gst/rtsp/gstrtspurl.c:
* tests/check/libs/rtsp.c:
rtspurl: Use gst_uri_join_strings() in gst_rtsp_url_get_request_uri_with_control() instead of a hand-crafted, wrong version
For example the query string of the base must not be taken over to the
request URL unless there is no control path, and control paths can be
absolute and must not be considered relative if they start with a /.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/971
Part-of:
2022-08-12 13:15:46 +0300 Sebastian Dröge
* tests/check/libs/rtsp.c:
rtspurl: Use fail_unless_equals_string() in tests
Part-of:
2022-07-27 22:34:42 +1000 Jan Schmidt
* ext/pango/gstbasetextoverlay.c:
* ext/pango/gstbasetextoverlay.h:
basetextoverlay: Don't miscalculate text running times
When a new segment event arrives, it immediately updates
the current stored segment, which was used for calculating
the running time of the current text buffer for every
passing video frame. This means a segment that arrives
after the text buffer might get used to (mis)calculate
the running times subsequently.
Instead, calculate and store the right running time
using the current segment when storing the buffer. Later
the stored segment can get freely updated.
This fixes the case where pieces of video and text streams
are seamlessly concatenated and fed through the text overlay.
Previously, it could lead to the current text buffer suddenly
have a massive running time and blocking all further input.
Part-of:
2022-08-09 18:06:41 +0100 Tim-Philipp Müller
* docs/plugins/gst_plugins_cache.json:
* ext/opus/gstopusenc.c:
opusenc: improve inband-fec property documentation
Part-of:
2022-06-12 05:35:27 -0600 James Hilliard
* gst/playback/gstdecodebin3-parse.c:
* gst/playback/gstdecodebin3.c:
decodebin3: fix EOS event sequence
See docs:
https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers
Per docs:
When a sink element receives an EOS event and creates a new EOS
message to post, it should copy the seqnum from the event to the
message because the EOS message is a consequence of the EOS event
being received.
Part-of:
2021-12-14 16:14:56 +0100 Edward Hervey
* gst/subparse/gstsubparse.c:
subparse: Handle GAP events before buffers
Make sure we did initial negotiation and segment pushing if we get GAP events
before buffers.
Part-of:
2021-11-17 15:30:38 +0100 Edward Hervey
* gst-libs/gst/tag/gsttagdemux.c:
tagdemux: Properly propagate sequence numbers
If we received a time segment from upstream, we need to make sure we propagate
it downstream with the same sequence number.
Part-of:
2022-08-01 17:25:56 +0200 Edward Hervey
* gst/playback/gstparsebin.c:
parsebin: Avoid crash with unknown streams
With the new addition of handling unknown sream types we *could* end up with a
chain which doesn't have a current_pad (it's an intermediary one)
Fixes #1287
Part-of:
2022-05-25 18:40:30 +0530 Nirbheek Chauhan
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtsp+rtmp: Forward warning added to tls-validation-flags to our users
With the 2.72 release, glib-networking developers have decided that
TLS certificate validation cannot be implemented correctly by them, so
they've deprecated it.
In a nutshell: a cert can have several validation errors, but there
are no guarantees that the TLS backend will return all those errors,
and things are made even more complicated by the fact that the list of
errors might refer to certs that are added for backwards-compat and
won't actually be used by the TLS library.
Our best option is to ignore the deprecation and pass the warning onto
users so they can make an appropriate security decision regarding
this.
We can't deprecate the tls-validation-flags property because it is
very useful when connecting to RTSP cameras that will never get
updates to fix certificate errors.
Relevant upstream merge requests / issues:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
Part-of:
2022-07-27 15:42:44 +1000 Matthew Waters
* gst-libs/gst/rtsp/gstrtspconnection.c:
rtspconnection: protect cancellable by a mutex
It is entirely possible for the cancellable to be cancelled (and freed)
in gst_rtsp_connection_flush() while there may be an ongoing read/write
operation.
Nothing prevents gst_rtsp_connection_flush() from waiting for the
outstanding read/writes.
This could lead to a crash like (where cancellable has been freed
within gst_rtsp_connection_flush()):
#0 0x00007ffff4351096 in g_output_stream_writev (stream=stream@entry=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6af950, cancellable=cancellable@entry=0x7fff300288a0, error=error@entry=0x7ffe2c6af958) at ../subprojects/glib/gio/goutputstream.c:377
#1 0x00007ffff44b2c38 in writev_bytes (stream=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6afb90, block=block@entry=1, cancellable=0x7fff300288a0) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:1320
#2 0x00007ffff44b583e in gst_rtsp_connection_send_messages_usec (conn=0x7fff30001370, messages=messages@entry=0x7ffe2c6afcc0, n_messages=n_messages@entry=1, timeout=timeout@entry=3000000) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:2056
#3 0x00007ffff44d2669 in gst_rtsp_client_sink_connection_send_messages (sink=0x7fffac0192c0, timeout=3000000, n_messages=1, messages=0x7ffe2c6afcc0, conninfo=0x7fffac019610) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:1929
#4 gst_rtsp_client_sink_try_send (sink=sink@entry=0x7fffac0192c0, conninfo=conninfo@entry=0x7fffac019610, requests=requests@entry=0x7ffe2c6afcc0, n_requests=n_requests@entry=1, response=response@entry=0x0, code=code@entry=0x0) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:2845
#5 0x00007ffff44d3077 in do_send_data (buffer=0x7fff38075c60, channel=, context=0x7fffac042640) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:3896
#6 0x00007ffff4281cc6 in gst_rtsp_stream_transport_send_rtp (trans=trans@entry=0x7fff20061f80, buffer=) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632
#7 0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=, buffer_list=0x0, buffer=, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2586
#8 check_transport_backlog (stream=0x7fff40019bf0, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2645
#9 0x00007ffff42793b3 in send_tcp_message (idx=, stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2741
#10 send_func (stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2776
#11 0x00007ffff7d59fad in g_thread_proxy (data=0x7fffbc062920) at ../subprojects/glib/glib/gthread.c:827
#12 0x00007ffff7a8ce2d in start_thread () from /lib64/libc.so.6
#13 0x00007ffff7b12620 in clone3 () from /lib64/libc.so.6
Fix by adding a cancellable lock and returning an extra reference used
across all read/write operations. gst_rtsp_connection_flush() can free
the in-use cancellable and it will no longer affect any in progress
read/write.
Part-of:
2022-07-23 02:49:20 +1000 Jan Schmidt
* gst-libs/gst/video/video-chroma.c:
video: Fix scaling in 4x horizontal co-sited chroma
4x downscaling of chroma with co-sited chroma has never worked
it seems.
Fixes incorrect videotestsrc output and videoconvert conversions
to Y41B, YUV9, YVU9 and IYU9 with co-sited chroma.
e.g.
gst-launch-1.0 videotestsrc ! video/x-raw,format=Y41B,width=1280,height=720 ! \
videoconvert ! autovideosink
Part-of:
2022-07-12 14:47:20 +1000 Matthew Waters
* ext/gl/gstglimagesink.c:
glimagesink: only allow setting the GL display/context if it is a valid value
Otherwise, when setting the external application context, then the
display may be cleared and then not used and the asharing mechanism does
not work anymore.
Part-of:
2022-07-11 20:12:30 +0200 Mathieu Duponchelle
* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: always convert when user provides converter-config
The `converter-config` property may be used to perform cropping,
conversion should always be performed when the user set the property
to a non-NULL value.
Part-of:
2022-07-08 20:49:21 +0200 Andoni Morales Alastruey
* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
glwindow_cocoa: fix a leak of the GstNSView
This leak is also causing a leak of the GstGLCAOpenGLLayer
which leaks the GstGLWrappedContext and the GstGLDisplay
Part-of:
2022-07-08 20:38:51 +0200 Andoni Morales Alastruey
* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
gl: Fix leak of the whole CGL context
This was leaking the CGL context and several resources
allocated in the context, around 70MB for a 1080p clip
Part-of:
2022-06-30 00:13:19 +0100 Tim-Philipp Müller
* gst/subparse/samiparse.c:
* tests/check/elements/subparse.c:
samiparse: fix handling of self-closing tags
We would check the wrong string (rest of line rather than element)
for the / suffix of self-closing tags, which is not only wrong but
also has atrocious performance with certain strings like the garbled
nonsense clusterfuzz feeds us, which might cause discoverer to time
out when processing garbled SAMI files.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47461
Part-of:
2022-06-30 09:02:00 +0300 Sebastian Dröge
* gst-libs/gst/sdp/gstsdpmessage.c:
sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields
Previously it would've silently failed reading the payload/clock-rate
and instead would've used some random value that happened to be on the
stack.
Part-of:
2022-06-29 10:55:13 +0100 Tim-Philipp Müller
* meson.build:
coding style: allow declarations after statement
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
Part-of:
2022-06-25 19:50:10 +0100 Tim-Philipp Müller
* tests/check/meson.build:
tests: skip unit tests for dependency-less elements that have been disabled
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
Part-of:
2022-06-16 00:59:00 +0100 Tim-Philipp Müller
* meson.build:
Back to development
Part-of:
=== release 1.20.3 ===
2022-06-15 23:36:18 +0100 Tim-Philipp Müller
* ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.20.3
2022-06-15 23:36:10 +0100 Tim-Philipp Müller
* ChangeLog:
Update ChangeLogs for 1.20.3
2022-05-25 02:10:30 +0900 Seungha Yang
* gst/playback/gstplaybin3.c:
playbin3: Configure combiner on pad-added if needed
When collection is updated, decodebin3 exposes pad first and then
streams-selected message is posted.
The condition can cause a situation where playbin3 links non-existing
combiner/playsink pads (since streams-selected is not posted yet) with
new decodebin output pad. This commit will re-check selected/active
streams condition on pad-added and reconfigure output if needed.
Part-of:
2022-05-23 21:24:40 -0400 Eli Schwartz
* gst-libs/gst/tag/meson.build:
meson: use better zlib dependency fallback
zlib is required, and if it isn't found it is checked several ways and
then forced via subproject(). This code was added in commit
b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
zlib doesn't have pkg-config files installed.
But Meson already does dependency fallback, and also, since 0.54.0, does
the in-between checks for find_library('z') and has_header('zlib.h') via
the "system" type dependency. Simplify dependency lookup by marking it
as required, which also makes sure that the console log doesn't
confusingly list "not found".
Part-of:
2022-04-26 09:29:39 +0200 Edward Hervey
* ext/ogg/gstoggstream.c:
oggdemux: Protect against invalid framerates
This check wasn't done for all mappings.
Part-of:
2022-05-15 16:53:12 +0000 Thibault Saunier
* gst-libs/gst/rtp/gstrtcpbuffer.c:
* gst-libs/gst/rtp/gstrtcpbuffer.h:
* tests/check/libs/rtp.c:
rtcpbuffer: Allow padding on first reduced size packets
It is valid to have the padding set to 1 on the first packet and it
happens very often from TWCC packets coming from libwebrtc. This means
that we were totally ignoring many TWCC packets.
Fix test that checked that a first packet with padding was not valid and
instead test a single twcc packet with padding to check precisely what
this patch was about.
Part-of:
2022-05-13 13:31:55 +0200 Alicia Boya García
* gst-libs/gst/app/gstappsink.c:
* tests/check/elements/appsink.c:
appsink: Fix race condition on caps handling
Background:
Whenever a caps event is received by appsink, the caps are stored in the
same internal queue as buffers. Only when enough buffers have been
popped from the queue to reach the caps, `priv->sample` gets its caps
updated to match, so that they are correct for the following buffers.
Note that as far as upstream elements are concerned, the caps of appsink
are updated immediately when the CAPS event is sent. Samples pulled from
appsink retain the old caps until a later buffer -- one that was sent by
upstream elements after the new caps -- is pulled.
The race condition:
When a flush is received, appsink clears the entire internal queue. The
caps of `priv->sample` are not updated as part of this process, and
instead remain as those of the sample that was last pulled by the user.
This leaves open a race condition where:
1. Upstream sends a new caps event, and possibly some buffers for the
new caps.
2. Upstream sends a flush (possibly from a different thread).
3. Upstream sends a new buffer for the new caps. Since as far as
upstream is concerned, appsink caps are the new caps already, no new
CAPS event is sent.
4. The appsink user pulls a sample, having not pulled before enough
samples to reach the buffers sent in step 1.
Bug: the pulled sample has the old caps instead of the new caps.
Fixing the race condition:
To avoid this problem, when a buffer is received after a flush,
`priv->sample`'s caps should be updated with the current caps before the
buffer is added to the internal queue.
Interestingly, before this patch, appsink already had code for this, in
gst_app_sink_render_common():
/* queue holding caps event might have been FLUSHed,
* but caps state still present in pad caps */
if (G_UNLIKELY (!priv->last_caps &&
gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) {
priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (psink));
gst_sample_set_caps (priv->sample, priv->last_caps);
GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT,
priv->last_caps);
}
This code assumes `priv->last_caps` is reset when a flush is received,
which makes sense, but unfortunately, there was no code in the flush
code path resetting it.
This patch adds such code, therefore fixing the race condition. A unit
test demonstrating the bug and testing its behavior with the fix has
also been added.
Part-of:
2022-05-16 12:34:36 -0400 U. Artie Eoff
* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: unref temporary caps
The "possible_caps" needs unref after finished using to
avoid memory leak.
Part-of:
2022-03-29 17:51:13 +0200 Stéphane Cerveau
* gst-libs/gst/gl/meson.build:
* tests/check/libs/gstglmatrix.c:
* tests/check/meson.build:
base:gl: add x11 deps to gstglx11_dep
On MacOS with homebrew the xlib-xcb.h is in
own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
Need to add the windowing dependencies to gl tests
Part-of:
2022-05-05 02:54:37 +0900 Seungha Yang
* tools/gst-play.c:
tools: gst-play: Print position even if duration is unknown
Gives better visual feedback regarding position information
although duration is unknown, live streams for example.
Part-of:
2022-05-07 04:43:49 +0900 Seungha Yang
* tools/gst-device-monitor.c:
tools: device-monitor: Print string property as-is without serialize
gst_value_serialize() does more than what's needed to printf-ing
especially when given GValue is already string. Just print string
value as-is without gst_value_serialize() to avoid unreadable
string print, especially for multi-bytes character encoding cases.
Part-of:
2022-05-03 16:25:19 +0200 Edward Hervey
* gst/playback/gstparsebin.c:
parsebin: Don't modify inexistant GstStream
When handling exposing un-handled streams, we can only replace the GstStream for
those we are creating ourselves (i.e. the fallback collection).
Fixes assertions when the demuxer creates those streams
Part-of:
2022-05-03 16:08:39 +0200 Edward Hervey
* gst/playback/gstdecodebin3.c:
playbin3: Don't use unknown types for default selection
When creating a fallback default selection from a collection, don't attempt to
use unknown stream types
Part-of:
2022-05-03 13:37:31 +0300 Sebastian Dröge
* gst/audioconvert/gstaudioconvert.c:
audioconvert: If no channel-mask can be fixated then use a NONE channel layout
Otherwise this is generating caps without a channel-mask, which is
invalid for >1 channels and will always fail negotiation.
Part-of:
2022-03-07 08:46:57 -0500 Xavier Claessens
* gst-libs/gst/gl/meson.build:
Meson: Fix deprecation warnings
Part-of:
2021-11-12 20:13:10 +0100 Ruben Gonzalez
* docs/plugins/gst_plugins_cache.json:
gst_plugin_load_file: force plugin reload if diff filename
If a file includes a new version of a plugin that exits in the
registry, the output of gst-inspect is incorrect. The output has the
correct version but incorrect filename, and element description.
This seems to have also fixed some documentation issues.
Part-of:
2022-05-03 00:39:09 +0100 Tim-Philipp Müller
* meson.build:
Back to development
Part-of:
=== release 1.20.2 ===
2022-05-02 23:29:25 +0100 Tim-Philipp Müller
* ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.20.2
2022-05-02 23:29:19 +0100 Tim-Philipp Müller
* ChangeLog:
Update ChangeLogs for 1.20.2
2022-04-27 10:18:39 +0100 Philippe Normand
* gst-libs/gst/video/gstvideodecoder.c:
videodecoder: release stream lock after handling gap events
The stream lock is taken before handling gap events but was not released in all
possible runtime situations. This issue was introduced in:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1274
Part-of:
2022-04-28 15:32:27 +1000 Matthew Waters
* gst/subparse/samiparse.c:
subparse: don't deref a potentially NULL variable
If the html SAMI data is malformed, then retrieving the attribute name
may fail. We then cannot retrieve the attribute value.
Fixes: https://oss-fuzz.com/testcase-detail/4700130671984640
Part-of:
2022-04-27 09:22:40 +0200 Edward Hervey
* gst/playback/gstparsebin.c:
* tools/gst-play.c:
parsebin: Expose streams of unknown type
This actually respects the existing `expose-all-streams` property by exposing
them and having them present in the stream collection (as streams of type
unknown).
Fixes #1179
Part-of:
2022-04-27 02:08:00 +0200 Mathieu Duponchelle
* gst-libs/gst/rtp/gstrtpbasepayload.c:
rtpbasepayload: always store input buffer meta before negotiation
The decision to store the input buffer depends on whether extensions
are to be added to the output buffer, I assume as an optimization.
This creates an issue for subclasses that call negotiate(), where
header_exts is actually populated, from their handle_buffer()
implementation: at chain time, no header extension has been negotiated
yet, which means that we don't add extensions to the first batch of
buffers that comes out.
Keep track of whether negotiate has been called (this is different
from the negotiated field) and always store the input buffer until
then. This fixes the issue while largely preserving the optimization.
Part-of:
2022-04-26 10:58:08 +0200 Guillaume Desmottes
* gst/videorate/gstvideorate.c:
videorate: fix assertion when pushing last and only buffer without duration
Fixing this pipeline:
gst-launch-1.0 filesrc location=sample.png ! pngdec ! videorate ! fakesink
- videorate receives a single buffer with pts = 0, duration = invalid;
- then it receives eos triggering this buffer to be pushed downstream;
- the pushing code was assuming that a duration was set, which is
impossible as we received a single buffer and no output framerate was
set either. So the best we can do is to push the buffer without
duration.
Fix #1177
Part-of:
2022-04-21 11:41:43 +0300 Sebastian Dröge
* gst/videorate/gstvideorate.c:
Revert "videorate: Update the base time on segment updates"
This reverts commit 75b4809ebc23814009bebc70c775ab44d85decf2.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
Part-of:
2022-04-21 11:41:36 +0300 Sebastian Dröge
* tests/check/elements/videorate.c:
Revert "videorate: Add test for segment update"
This reverts commit a76f38b2c7ddbed546bb058c32ebcf8a553c003f.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
Part-of:
2022-04-21 11:41:25 +0300 Sebastian Dröge
* gst/videorate/gstvideorate.c:
* tests/check/elements/videorate.c:
Revert "videorate: Only "close" the segment if it is discontinous"
This reverts commit 6f7922b4dbba5ed780e7b0988669a81848a9e333.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
Part-of:
2022-04-21 11:41:15 +0300 Sebastian Dröge
* gst/videorate/gstvideorate.c:
Revert "videorate: Drop incoming buffers that are outside of the segment"
This reverts commit 24fd80344dbc059b72e13d813ca82f414a9d6cce.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
Part-of:
2022-04-21 11:40:47 +0300 Sebastian Dröge
* tests/check/elements/videorate.c:
Revert "videorate: Add unit test for closing a segment and opening a separate one"
This reverts commit 98f2a84a289ed4d4cfac9bc5c73182a56eefa99c.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
Part-of:
2022-03-02 03:45:48 +1100 Jan Schmidt
* gst/playback/gstplaybin3.c:
playbin3: Remove stale code
Remove now-unused get_stream_type_for_event() function.
Part-of:
2022-01-18 05:48:08 +1100 Jan Schmidt
* gst/playback/gstplaybin3.c:
playbin3: Hold playbin lock on pad-added
Take the playbin lock when accessing the combiner
to add a new pad to link to. Fixes races against
streams-selected messages triggering reconfiguration.
Part-of:
2022-01-18 02:52:47 +1100 Jan Schmidt
* gst/playback/gstplaybin3.c:
playbin3: Reconfigure on streams-selected message.
Don't reconfigure outputs when the select-streams
event is sent from the app, as the selection may
not take effect for some time. Instead, wait
for the pipeline to confirm the new set of
selected streams when it sends the message.
Part-of:
2021-11-11 03:20:23 +1100 Jan Schmidt
* gst/playback/gstplaysink.c:
playsink: Fix reconfiguration after removing text_sink
If we previously had subtitles coming in, the video
may be chained through a text overlay block. Before,
the code would end up trying to link pads that were
already linked and video would not get reconnected
properly.
To fix that, make sure that the candidate
pads are actually unlinked first. If a textoverlay
is present and no longer needed, it will be cleaned
up later in the reconfiguration sequence.
Part-of:
2021-05-25 14:41:51 +0200 Guillaume Desmottes
* gst/playback/gstdecodebin3.c:
decodebin3: fix collection leak
get_merged_collection() returns an owned stream collection and was
leaked in the else block.
Fix leak when running:
GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
Part-of:
2022-04-15 14:03:08 +0900 hoonhee.lee
* gst/playback/gstplaybin3.c:
playbin3: fix missing lock when unknown stream type in pad-removed cb
Part-of:
2022-04-14 15:21:48 +0200 Edward Hervey
* gst/playback/gstdecodebin3.c:
decodebin3: Don't duplicate stream selections
Make sure that the requested stream selection isn't identical to the current
one. If that's the case, just carry on as usual.
This avoids multiple `streams-selected` posting ... when the selection didn't
change.
Part-of:
2022-04-15 19:55:34 +0300 Sebastian Dröge
* gst-libs/gst/rtp/gstrtpbasepayload.c:
rtpbasepayload: Don't write header extensions if there's no corresponding input buffer for the packet
The GstRTPHeaderExtension API requires the input buffer to exist.
This can happen if the output packet is generated e.g. from a caps or
tags event like in the case for rtpgstpay.
Part-of:
2022-04-12 01:01:23 +0900 Seungha Yang
* tools/gst-play.c:
* tools/meson.build:
win32: Enable high-resolution timer for MinGW build
timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
header instead, which defines struct and APIs in case of our MinGW
toolchain. Note that in case of native Windows10 SDK (MSVC build),
mmsystem.h will include timeapi.h
Part-of:
2022-04-14 18:44:48 +0100 Tim-Philipp Müller
* gst-libs/gst/app/gstappsrc.c:
appsrc: fix annotations
Part-of:
2022-04-12 15:23:08 +0300 Sebastian Dröge
* gst-libs/gst/rtp/gstrtpbasepayload.c:
Fix `transfer` gobject-introspection annotation typos
Part-of:
2022-04-10 10:55:02 +1000 Matthew Waters
* gst/subparse/gstsubparseelement.c:
subparse: don't try to index string with -1
If the len of the string turns out to be 0, str[len - 1] resolved to
str[-1] which is not a good idea.
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46543
Part-of:
2022-04-08 11:10:49 +1000 Matthew Waters
* ext/ogg/gstoggstream.c:
* ext/ogg/vorbis_parse.c:
* ext/ogg/vorbis_parse.h:
ogg: fix possible buffer overrun
If an ogg stream does not match our expectations of how the end of a
buffer may be structured, it was possible to read memory past the end of
the buffer parsed by libogg. Include a bounds check for this case and
stop parsing.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3930
Part-of:
2022-04-08 01:52:32 +0200 Mathieu Duponchelle
* gst-libs/gst/rtp/gstrtpbasepayload.c:
rtpbasepayload: fix transfer annotation for push and push_list
Part-of:
2022-04-07 10:08:37 +0900 hoonhee.lee
* gst-libs/gst/riff/riff-media.c:
riff-media: fix memory leak after usage for g_strjoin
This leak is observed with valgrind.
Part-of:
2022-04-06 18:08:46 +0200 Bastian Krause
* ext/gl/gstgltransformation.c:
* ext/gl/gstgltransformation.h:
gltransformation: let graphene alloc its structures memory aligned
With NEON instructions enabled, graphene expects the memory passed to it
16-byte-aligned. Otherwise unaligned memory access faults occur causing
SIGBUS signals.
graphene has alloc functions for its structures that take care of this,
so use them.
See also: https://github.com/ebassi/graphene/issues/215#issuecomment-794744829
Suggested-by: Sebastian Dröge
Signed-off-by: Bastian Krause
Part-of:
2022-04-04 10:46:24 +0530 Nirbheek Chauhan
* gst-libs/gst/app/gstappsrc.c:
appsrc: Clarify buffer ref semantics in signals
The documentation could be read to mean that the caller continuous to
'own' the buffer, and that there is some other mechanism to find out
when to unref it.
Clarify that "not taking ownership" here means "taking a reference",
and specify that you can unref it at any time after calling the
function.
Part-of:
2021-01-21 16:01:38 +0800 Zhao Zhili
* tests/examples/gl/gtk/gstgtk.c:
* tests/examples/playback/playback-test.c:
examples: fix build on macOS with gtk+-quartz-3.0
gdk_quartz_window_get_nsview is not declared in the header file now:
error: implicit declaration of function 'gdk_quartz_window_get_nsview'
is invalid in C99 [-Werror,-Wimplicit-function-declaration]
fixes #979
Part-of:
2022-04-01 10:25:23 +0300 Sebastian Dröge
* gst/playback/gstplaybin2.c:
* gst/playback/gstplaybin3.c:
playbin/playbin3: Allow setting a NULL URI
The URI is already initialized to NULL at the beginning and GstPlayer
was assuming that it is possible to set to NULL at a later time too.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1124
Part-of:
2022-03-28 12:13:12 +0200 Edward Hervey
* gst-libs/gst/pbutils/descriptions.c:
pbutils: Fix wmv screen detection
strncmp vs !strncmp :)
Part-of:
2022-03-16 10:31:56 +0000 Corentin Damman
* gst/rawparse/gstrawvideoparse.c:
rawvideoparse: set format from caps in gst_raw_video_parse_set_config_from_caps
Part-of:
2022-03-27 16:35:14 +1100 Matthew Waters
* ext/gl/gstglmixerbin.c:
glmixerbin: slightly better pad/element creation
Use the return value from gst_element_link_pads() and gst_bin_add()
Fixes:
../ext/gl/gstglmixerbin.c:305:12: error: variable 'res' set but not used [-Werror,-Wunused-but-set-variable]
gboolean res = TRUE;
^
Part-of:
2022-03-18 20:43:24 +1100 Matthew Waters
* gst-libs/gst/pbutils/gstdiscoverer-types.c:
discoverer: chain up to parent finalize methods in all our types
Fixes a memory leak:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
#0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
#1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13
#2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8
#3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3
#4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7
#5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16
#6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5
#7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
#8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
#9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
#10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
#11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
#12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
#13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
Part-of:
2022-03-15 12:57:49 +0530 Nirbheek Chauhan
* gst-libs/gst/rtp/gstrtpbuffer.c:
rtpbuffer: The out args for rtp extension data are optional
The code checks that these are != NULL before dereferencing them.
Part-of:
2021-08-06 19:27:02 +1000 Jan Schmidt
* gst/playback/gstplaysink.c:
playsink: Complete reconfiguration on pad release.
Requesting a new pad can start a reconfiguration cycle, where
playsink will block all input pads and wait for data on them
before doing internal reconfiguration. If a pad is released,
that reconfiguration might never trigger because it's now waiting
for a pad that doesn't exist any more.
In that case, complete the reconfiguration on pad release.
Part-of:
2022-03-14 14:48:01 +0000 Tim-Philipp Müller
* meson.build:
Back to development
=== release 1.20.1 ===
2022-03-14 11:33:33 +0000 Tim-Philipp Müller
* ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.20.1
2022-03-14 11:33:25 +0000 Tim-Philipp Müller
* ChangeLog:
Update ChangeLogs for 1.20.1
2022-03-09 16:02:06 +0530 Nirbheek Chauhan
* gst-libs/gst/rtp/gstrtpbasepayload.c:
* tests/check/libs/rtpbasepayload.c:
rtpbasepayload: Remove dead twcc code
This feature was removed in 7a53fbad68d702ca4905f7da223f4d2884548edc,
but this code was left behind.
Part-of:
2022-03-02 03:43:00 +1100 Jan Schmidt
* gst/playback/gstplaybin3.c:
playbin3: Add lock to protect buffering messages
Fix a small race where a group can receive stream-start
and post a pending buffering message just as another
thread posts a different buffering message, causing them
to be received by the application out of order. In the
worst case, this leads the application receiving a
stale 99% buffering message and going back to buffering
right after the 100% buffering message.
Part-of:
2022-03-04 22:21:13 +0900 Seungha Yang
* gst-libs/gst/gl/gstgldisplay.c:
gldisplay: Reorder GST_GL_WINDOW check for egl-device
"egl-device" should be checked before the "egl", otherwise unexpected egl will be picked
Part-of:
2022-02-21 10:49:15 +0100 Sebastian Fricke
* gst-libs/gst/tag/licenses.c:
Remove the uninstalled term
Remove the symbolic link `gst-uninstalled` which points to `gst-env`.
The `uninstalled` is the old name and the project should stick to a
single name for the procedure.
Remove the term from all the files, exceptions are variables from
dependencies like `uninstalled_variables` from pkgconfig and
`meson-uninstalled`.
Adjust mentions of the script in the documentation and README.
Part-of:
2022-02-23 11:10:11 +0100 Sebastian Fricke
* README.md:
Maintain build instructions at a single location
Do not maintain similar build instructions within each gst-plugins-*
subproject and the subproject/gstreamer subproject. Use the build
instructions from the mono-repository and link to them via hyperlink.
Part-of:
2022-01-22 01:30:57 +1100 Jan Schmidt
* tools/gst-play.c:
gst-play: Fix trick-mode handling.
The instant-rate value in the TrickMode enum is a
flag, but the other values are not. Move instant-rate
to the end of the enum and give it a value large enough
for it to be used without modifying the trick-mode
setting.
Part-of:
2022-02-22 15:08:48 +0100 Jan Alexander Steffens (heftig)
* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: Correct use of start_time/end_time
When 29713c5d changed most uses of `start_time` and `end_time` to
`start_running_time` and `end_running_time`, it missed two.
Fixes: 29713c5d40a1d7d1f21dada68f55f7a97f0b7025
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1038
Part-of:
2022-02-22 10:54:23 +0200 Sebastian Dröge
* gst-libs/gst/rtp/gstrtpbasepayload.c:
rtpbasepayload: Copy all buffer metadata instead of just GstMetas for the input meta buffer
This gives RTP header extensions some more metadata to work from.
Part-of:
2022-02-20 14:05:05 +0100 Sebastian Groß
* gst-libs/gst/pbutils/gstaudiovisualizer.c:
audiovisualizer: shader: Fix dframe out of bound write
shader_fade_and_move_horiz_out writes a complete stride at the end of its
dframe data
This led to SIGSEGV since the stride reached into sframe->map[0]->memory
which could not be umpapped later on.
This is due to `d` is increased twice. Once at the end of the upper loop
and at the start of the lower loop.
The corresponding dframe stride is therefore skipped.
Rewind `d` and start at the correct position.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1702
Part-of:
2022-02-19 01:58:20 +0900 Seungha Yang
* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: Use floor() to calculate current position
... instead of round(). Depending on framerate, calculated position
may not be clearly represented by using uint64, 30000/1001 for example.
Then the result of round() can be sliglhtly larger (1ns) than
buffer timestamp. And that will cause unnecessary frame delay.
Part-of:
2022-01-07 20:02:46 +0900 Seungha Yang
* gst-libs/gst/video/gstvideoaggregator.c:
* tests/check/elements/compositor.c:
videoaggregator: Fix for unhandled negative rate
Nagative rates have been considered only in
gst_video_aggregator_advance_on_timeout(). Update other places
to fix broken reverse playback.
Part-of:
2021-08-25 20:18:20 +0900 Seungha Yang
* gst/typefind/gsttypefindfunctions.c:
* tests/check/gst/typefindfunctions.c:
typefindfunctions: Fix WebVTT format detection
If WebVTT file consists of "WebVTT" header without body,
the file size can be smaller than 10 bytes.
Part-of:
2022-02-07 09:30:58 +0100 David Svensson Fors