Camilo Celis Guzman
3eb5d66938
gstav1parse: fixup various possible logical errors
...
Found via an analyzed build for Clang. Specifically we had:
gstav1parse.c[1850,11] in gst_av1_parse_detect_stream_format: Logic error: The left operand of '==' is a garbage value
gstav1parse.c[1606,11] in gst_av1_parse_handle_to_small_and_equal_align: Logic error: The left operand of '==' is a garbage value
Also a couple of false-positives:
gstav1parse.c[1398,24] in gst_av1_parse_handle_one_obu: Logic error: Branch condition evaluates to a garbage value
gstav1parse.c[1440,37] in gst_av1_parse_handle_one_obu: Logic error: The left operand of '-' is a garbage value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2240 >
2022-04-19 17:33:49 +01:00
Nirbheek Chauhan
f67d875936
meson: Add -Wl,-rpath,${libdir} on macOS
...
We made the gstreamer installation prefix relocatable by picking up
plugins relative to the location of libgstreamer-1.0.dylib, similar to
how it's done for Windows:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627
This had a lot of side-effects:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362
A partial fix for the cerbero side of these was:
https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807
However, this relied on the consumers knowing that they need to add
`LC_RPATH` entries to the libdir of the prefix. This is done
automatically by build systems like Meson, but not by others, such as
Autotools, CMake, Cargo, XCode, etc. For those, we need to add the
RPATH entries to the gstreamer-1.0.pc file.
This also has the side-effect of fixing the loading of gstreamer rust
plugins on macOS:
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2237 >
2022-04-19 13:23:02 +00:00
Jan Schmidt
cf61b8aa3b
playbin3: Remove stale code
...
Remove now-unused get_stream_type_for_event() function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2236 >
2022-04-19 13:28:38 +01:00
Jan Schmidt
45a709cf43
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2236 >
2022-04-19 13:25:25 +01:00
Jan Schmidt
5e3864159b
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2236 >
2022-04-19 13:25:25 +01:00
Jan Schmidt
7f377898f7
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2236 >
2022-04-19 13:25:25 +01:00
Tulio Beloqui
a5bf3fb89b
gstdevicemonitor: added cleanup of signal handlers and hidden providers list
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2221 >
2022-04-18 18:18:08 +01:00
Guillaume Desmottes
7aa763cab7
libav: fix frame leak on negotiation error
...
The function owns a reference on the frame. Drop it if negotiation
failed as we are already doing for the other error cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2217 >
2022-04-18 10:50:35 +01:00
Guillaume Desmottes
86e46e6c83
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2216 >
2022-04-18 09:44:18 +01:00
Fabrice Fontaine
60eca23bef
gst-python: fix build on systems without C++ compiler
...
Fix the following build failure on systems without C++ compiler:
The following exception(s) were encountered:
Running "/home/autobuild/autobuild/instance-0/output-1/host/bin/i686-buildroot-linux-gnu-g++ --version" gave "[Errno 2] No such file or directory: '/home/autobuild/autobuild/instance-0/output-1/host/bin/i686-buildroot-linux-gnu-g++'"
Fixes:
- http://autobuild.buildroot.org/results/eebf65036f79d21d347714d62afecd0108393308
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2214 >
2022-04-18 00:09:27 +01:00
Guillaume Desmottes
75c350283e
gstleaks: fix pthread_atfork return value check
...
pthread_atfork() returns 0 on success.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2210 >
2022-04-17 01:57:55 +01:00
hoonhee.lee
abf1bfdb9d
playbin3: fix missing lock when unknown stream type in pad-removed cb
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2209 >
2022-04-17 01:19:53 +01:00
Edward Hervey
b5b8f0ed22
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2208 >
2022-04-17 00:35:38 +01:00
Sebastian Dröge
f342618329
x264enc: Don't try to fixate ANY allowed caps
...
Instead fall back to the template caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2207 >
2022-04-16 23:46:39 +01:00
Sebastian Dröge
497b3da14d
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2205 >
2022-04-16 19:59:52 +01:00
Seungha Yang
3b5f1406f3
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2167 >
2022-04-16 10:00:04 +00:00
Tim-Philipp Müller
abd4846aaf
appsrc: fix annotations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2189 >
2022-04-16 09:00:13 +00:00
Edward Hervey
e4b9f6e6d8
tsdemux: Fix AC-4 detection
...
This regression was introduced by
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1102
and has been present since 1.18
* Stream Type 0x06 is defined in the base mpeg-ts specification as Private PES
Packets. Determining the content should be solely based on descriptors found
within the PMT.
* This was abused in that commit by defining a "bluray-only" stream type for AC4
: `ST_BD_AUDIO_AC4`
* This should be entirely handled in the regular private pes handling further
down in the code
Fixes #1154
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2176 >
2022-04-14 14:53:40 +00:00
Havard Graff
9a4804fd3f
qtdemux: fix leak of channel_mapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2184 >
2022-04-14 12:58:11 +01:00
Sebastian Dröge
d0306802b6
ptpclock: Fix wrong condition order from last commit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2173 >
2022-04-13 16:37:21 +01:00
Marc Leeman
5c346c13db
gst-rtsp-server: minor spelling fixes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2172 >
2022-04-13 16:06:22 +01:00
Sebastian Dröge
35b68d6622
ptpclock: Allow at least 100ms delay between Sync/Follow_Up and Delay_Req/Delay_Resp messages
...
It doesn't matter for measurement purposes whether receiving them takes
a while and various PTP servers are not prioritizing to send them,
causing them to be dropped unnecessarily and preventing proper
synchronization with such servers.
This is especially a problem if the RTTs in the network are very low
compared to the additional delay imposed by the server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2168 >
2022-04-12 23:20:31 +01:00
Sebastian Dröge
bf86940e60
Fix transfer
gobject-introspection annotation typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2163 >
2022-04-12 15:16:39 +01:00
Edward Hervey
e882282ffb
mxfdemux: Fix issue with re-syncing
...
In case of re-syncing (i.e. moving to another partition to avoid too much of an
interleave), there was previously no checks to figure out whether a given
partition was already fully handled (i.e. when coming across it again after a
previous resync).
In order to handle this at least for single-track partitions, check whether we
have reached the essence track duration, and if so skip the partition.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2162 >
2022-04-12 14:37:20 +01:00
Edward Hervey
98afe3bacd
mxfdemux: Don't double-increase track position
...
The essence track position should only be overriden if we sucesfully switched to
another position. In case of EOS we do not want to override it else we would
increase the track position *again* at the end of this function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2162 >
2022-04-12 14:37:20 +01:00
Matthew Waters
cd577c78f7
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2148 >
2022-04-10 09:57:08 +01:00
Tristan Matthews
e9e4ac0ba9
rtpopusdepay: assume 2 channels if sprop-stereo is missing
...
Fixes #1064
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2139 >
2022-04-08 14:57:07 +01:00
Matthew Waters
746765dbc9
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2138 >
2022-04-08 11:24:45 +00:00
Mathieu Duponchelle
f1eb2b16cf
rtpbasepayload: fix transfer annotation for push and push_list
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2137 >
2022-04-08 09:32:42 +01:00
hoonhee.lee
d7b84815cc
riff-media: fix memory leak after usage for g_strjoin
...
This leak is observed with valgrind.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2136 >
2022-04-08 08:49:37 +01:00
Bastian Krause
d1908049fa
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 <sebastian@centricular.com>
Signed-off-by: Bastian Krause <bst@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2128 >
2022-04-06 19:24:45 +01:00
Edward Hervey
34c9f41753
mxfvanc: Handle empty VANC packets
...
Some XDCAM recorders store empty packets for VANC, and don't even include the
2byte length.
Handle them in the same way as VANC packets with 0 packets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2124 >
2022-04-06 11:52:58 +01:00
Fabrice Fontaine
c164c25d9a
gst-libav: fix build on systems without C++ compiler
...
Fix the following build failure on systems without C++ compiler:
The following exception(s) were encountered:
Running "/nvmedata/autobuild/instance-9/output-1/host/bin/or1k-buildroot-linux-musl-g++ --version" gave "[Errno 2] No such file or directory: '/nvmedata/autobuild/instance-9/output-1/host/bin/or1k-buildroot-linux-musl-g++'"
Fixes:
- http://autobuild.buildroot.org/results/8ac0ba5eaaf7571857b4d8cfabf1488d640dc59a
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2119 >
2022-04-05 23:23:13 +01:00
Nirbheek Chauhan
db3bc49bb2
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2118 >
2022-04-05 16:30:21 +01:00
Stéphane Cerveau
152b878a8b
gst-examples: add -xobjective-c for darwin
...
To avoid error when including #include <AppKit/AppKit.h>
the build should include the c args xobjective-c
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2116 >
2022-04-05 11:40:01 +01:00
Stéphane Cerveau
39b6e6816b
bad: examples: fix unused res warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2116 >
2022-04-05 11:39:02 +01:00
Zhao Zhili
28091342da
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2116 >
2022-04-05 11:38:53 +01:00
Tong Wu
05ee80f104
msdk: use mfxU32 instead of uint32_t
...
Msdk should use mfx variables defined in mfxdefs.h. Replace uint32_t
with mfxU32.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2113 >
2022-04-04 22:57:04 +01:00
Sebastian Dröge
b2fe6ac3e8
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2105 >
2022-04-02 01:12:55 +01:00
Chun-wei Fan
ffea6475d4
openexr: Specify modules when finding OpenEXR.
...
Specify modules to look for OpenEXR when CMake is used, as we may have
CMake config files instead of pkg-config files that result from building
OpenEXR, which may be built with CMake which is typically the case on Visual
Studio builds.
In this case, Meson does seem to find the 'OpenEXR' package with CMake
after trying pkg-config, but does not consider it enough without the
'modules:' argument.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2035 >
2022-03-31 16:04:27 +00:00
Nirbheek Chauhan
69936ad852
meson: Add some messages when selecting libsoup
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2082 >
2022-03-31 15:32:17 +01:00
Nirbheek Chauhan
45ce19dd2d
soup: Fix usage of symbols / defines that are gone in libsoup3
...
I am not sure about the SOUP_MESSAGE_OVERWRITE_CHUNKS change, but it
was definitely already broken when using libsoup-3.0 in a shared
build. souphttpsrc probably needs to be ported from SoupMessage to
SoupServerMessage when using libsoup-3.0.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2082 >
2022-03-31 15:32:17 +01:00
Nirbheek Chauhan
2813e30392
soup: Fix pre-processor macros in souploader for libsoup-3.0
...
Some of the preprocessor conditionals in the loader were very broken
with libsoup-3.0 + --default-library=static
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2082 >
2022-03-31 15:32:17 +01:00
Edward Hervey
0425d60190
pbutils: Fix wmv screen detection
...
strncmp vs !strncmp :)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2076 >
2022-03-30 23:24:55 +01:00
Edward Hervey
530272850d
avviddec: Remove vc1/wmv3 override
...
FFMPEG 5+ doesn't allow overriding the codec anymore (causes a segfault if you
attempt to do that). But the best part is ... that with the current caps
implementation in pad template and gst_ffmpeg_caps_to_codecid() we would never
replace it by anything different than the existing codec id.
Fixes #1054
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2074 >
2022-03-30 17:36:06 +01:00
Matthew Waters
c7351622ee
validate/media-info: silence unsed variable warning
...
Fixes:
../validate/gst/validate/gst-validate-media-info.c:714:28: error: variable 'total_sink_count' set but not used [-Werror,-Wunused-but-set-variable]
guint id, ncounters = 0, total_sink_count = 0;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2068 >
2022-03-30 00:52:53 +01:00
Matthew Waters
6a4089795d
rtsp-stream: remove unused variable:
...
Fixes:
../gst/rtsp-server/rtsp-stream.c:2670:9: error: variable 'n_messages' set but not used [-Werror,-Wunused-but-set-variable]
guint n_messages = 0;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2068 >
2022-03-30 00:52:53 +01:00
Matthew Waters
9f1becb19f
applemeida/texturecache: remove unused variable
...
Fixes:
../sys/applemedia/videotexturecache.m:71:20: error: variable 'features' set but not used [-Werror,-Wunused-but-set-variable]
GstCapsFeatures *features;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2068 >
2022-03-30 00:52:53 +01:00
Matthew Waters
91eb442389
applemedia/corevideobuffer: remove unused variable
...
Fixes:
../sys/applemedia/corevideobuffer.c:209:19: error: variable 'video_meta' set but not used [-Werror,-Wunused-but-set-variable]
GstVideoMeta *video_meta;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2068 >
2022-03-30 00:52:53 +01:00
Matthew Waters
ba8c6baae4
applemedia/iosgl: remove unused variable
...
Fixes:
../sys/applemedia/iosurfaceglmemory.c:219:41: error: variable 'texfmt' set but not used [-Werror,-Wunused-but-set-variable]
GLuint tex_id, tex_target, texifmt, texfmt;
^
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2068 >
2022-03-30 00:52:53 +01:00