Matthew Waters
c2ac57f6c9
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/2147 >
2022-04-10 10:57:08 +10:00
Matthew Waters
62d09f73b7
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/2134 >
2022-04-08 08:52:45 +00:00
Mathieu Duponchelle
4c98e2d289
rtpbasepayload: fix transfer annotation for push and push_list
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2133 >
2022-04-08 07:20:31 +00:00
hoonhee.lee
27b945aa03
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/2129 >
2022-04-07 20:36:42 +00:00
Bastian Krause
c39181903e
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/1321 >
2022-04-06 18:14:53 +02:00
Nirbheek Chauhan
bfe43121f1
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/2110 >
2022-04-05 14:40:21 +00:00
Zhao Zhili
dd27850a9a
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/2095 >
2022-04-04 16:27:45 +00:00
Haihua Hu
df0958e855
ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2098 >
2022-04-04 15:49:02 +08:00
Xavier Claessens
a40634eebe
Use gmodule-no-export-2.0
...
We don't need `-Wl,--export-dynamic`, that's used only for executables
that needs to export an API to be used by plugins they load.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031 >
2022-04-01 16:32:17 +00:00
Xavier Claessens
b004464ac6
Remove glib and gobject dependencies everywhere
...
They are part of gst_dep already and we have to make sure to always have
gst_dep. The order in dependencies matters, because it is also the order
in which Meson will set -I args. We want gstreamer's config.h to take
precedence over glib's private config.h when it's a subproject.
While at it, remove useless fallback args for gmodule/gio dependencies,
only gstreamer core needs it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031 >
2022-04-01 16:32:17 +00:00
Xabier Rodriguez Calvar
199b62570f
glcolorconvert: should copy metadatas from the incoming buffer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094 >
2022-04-01 13:07:46 +02:00
Sebastian Dröge
16ed0a6961
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/2090 >
2022-04-01 10:25:23 +03:00
Thibault Saunier
b358897a3b
navigation: Rename parse_state to parse_modifier_state
...
`parse_state` sounds a bit weird and `parse_modifier_state` is clearer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2087 >
2022-04-01 06:38:43 +00:00
Stéphane Cerveau
8492dd4255
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2061 >
2022-04-01 00:43:54 +00:00
Xavier Claessens
368f7b2cf2
overlay: Fix qt support detection
...
On Ubuntu moc-qt5 command is called moc. This requires Meson 0.54.0 for
the new has_tools() method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2075 >
2022-03-30 22:54:57 +00:00
Seungha Yang
f465156bf9
gst-play: Improve Win32 keyboard input handling
...
The console HANDLE will be keep signalled state unless application
reads console input buffer immediately. So we should read and flush
console input buffer from the thread where the event is signalled,
instead of GMain context thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2058 >
2022-03-30 20:37:54 +00:00
Thibault Saunier
2952a73f40
tools: Add support for building gstreamer tools against gst-full
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581 >
2022-03-30 17:43:17 +00:00
Enrique Ocaña González
2a30f1038a
playsink: improve GL context sharing
...
Configure playsink tried element with the bus of the main pipeline.
That tried element can be a gl video sink, which would benefit from being
able to propagate context messages to the main pipeline and have other
internal pipeline elements configured with it. Having different elements
configured with the same GL context allows them to share buffers with
video/x-raw(memory:GLMemory) caps and achieving zero-copy.
Thanks to Alicia Boya García <aboya@igalia.com> for her work co-debugging
the issue and contributing to find a solution.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2056 >
2022-03-30 15:32:19 +00:00
Edward Hervey
a6f213ad62
urisourcebin: When streams-aware, remove pads immediately
...
For the same reason we add them immediately
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905 >
2022-03-30 14:30:54 +00:00
Edward Hervey
8648182fd1
urisourcebin: Don't wait for pads content when streams-aware
...
If the adaptive demux is streams-aware it can add/remove pads at any point in
time without the need for no-more-pads or data blocking
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905 >
2022-03-30 14:30:54 +00:00
Edward Hervey
76d01f0d73
urisourcebin: Don't do buffering if source already does
...
Sources that can internally handle buffering shouldn't have yet-another
buffering element after it. This can be simply detected by checking if it can
answer a TIME BUFFERING query just after creation.
If that is the case, we can expose the element source pads directly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905 >
2022-03-30 14:30:54 +00:00
Edward Hervey
7eea928dd0
decodebin3: Handle upstream selection
...
Detect if upstream handles stream-selection, and if so bypass all stream
selection handling (streams are forwarded as-is).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905 >
2022-03-30 14:30:54 +00:00
Edward Hervey
00187ddb0c
pbutils: Fix wmv screen detection
...
strncmp vs !strncmp :)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2050 >
2022-03-29 17:31:44 +00:00
Sebastian Dröge
a4ea62ef5b
video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045 >
2022-03-28 10:39:24 +03:00
Corentin Damman
b351da5e83
rawvideoparse: set format from caps in gst_raw_video_parse_set_config_from_caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1970 >
2022-03-27 15:50:07 +00:00
Matthew Waters
b2232c5c9a
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2038 >
2022-03-27 05:38:37 +00:00
Stéphane Cerveau
4f970bb811
gl: cocoa: fix warnings of unused variables
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2026 >
2022-03-25 18:01:11 +00:00
Thibault Saunier
25819c41fb
navigation: Add support for key Modifiers in all relevant events
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010 >
2022-03-25 15:16:03 +00:00
Vivienne Watermeier
09ebe06fdf
navigation: Add missing annotation to send_event_simple
...
Adds the missing "transfer full" annotation for the event argument.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2017 >
2022-03-24 18:07:16 +00:00
Vivienne Watermeier
9389754d1a
xvimagesink: Add touch event support
...
Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
events, grouping events with identical timestamps into one TOUCH_FRAME.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:52 +00:00
Vivienne Watermeier
3b7f397863
ximagesink: Add touch event support
...
Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
events, grouping events with identical timestamps into one TOUCH_FRAME.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:52 +00:00
Vivienne Watermeier
01876d5712
navigation: Add API for touchscreen events
...
Add 5 new navigation event types for touchscreen events, with the same
naming and meaning as in libinput - touch-down, touch-motion, touch-up,
touch-frame and touch-cancel - as well as constructors and parse
functions for them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:52 +00:00
Vivienne Watermeier
6c2f6c3bd4
all: Use new navigation interface and API
...
Use and implement the new navigation interface in all relevant sink elements,
and use API functions everywhere instead of directy accessing the event structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:52 +00:00
Vivienne Watermeier
f402b2e180
navigation: Add coordinate helper functions
...
Add a function to get x/y coordinates from suitable navigation events,
and one to create a copy with given coordinate values.
For e.g. translating event coordinates, this avoids having to either
switch on the event type to select the right parse function, or
having to rely on implementation details of the underlying event
structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:51 +00:00
Vivienne Watermeier
8648275601
navigation: Improve interface to avoid exposing implementation details
...
This deprecates the current send_event interface, and the wrapper
functions based on it, replacing it with a send_event_simple interface and
wrapper function. Together with the new event constructors, this avoids
implementations having to directly access the underlying structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633 >
2022-03-23 13:14:51 +00:00
Nicolas Dufresne
ebf63e1b91
doc: Update cache after NV12_8L128 addition
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379 >
2022-03-22 00:41:39 +00:00
Ming Qian
094d121812
video: Add support for linear 8x128 NV12 tiles and 10bit BE tiles
...
This adds linear 8x128 NV12 based tiles and NV12 10bit big endian tiles.
These formats are used by i.MX 8QXP/8QM VPU and exposed in V4L2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379 >
2022-03-22 00:41:39 +00:00
Nirbheek Chauhan
1cb127f16b
meson: Bump all meson requirements to 0.60
...
Lots of new warnings ever since
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977 >
2022-03-18 22:49:16 +00:00
Matthew Waters
203e34fb75
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<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
#10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1984 >
2022-03-18 17:49:08 +00:00
Vivienne Watermeier
2b85e5f99c
glvideomixerelement: send translated navigation events to the relevant sink pads
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Vivienne Watermeier
6fd7e7699d
compositor: send translated navigation events to the relevant sink pads
...
Fixes #888
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Corentin Noël
a5249f7c5f
gst-plugins-base: Fix several annotations
...
Add annotations for virtual methods when possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965 >
2022-03-16 10:37:44 +00:00
Tim-Philipp Müller
a525a76e54
opusenc: change default bitrate-type from cbr to constrained-vbr
...
Which is the default in libopus itself as well, with a comment
that constrained-vbr is considered "safer for real-time use".
Unclear why CBR was the default in the first place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1451 >
2022-03-16 07:12:30 +00:00
Nirbheek Chauhan
1ae7ea508d
rtpbuffer: The out args for rtp extension data are optional
...
The code checks that these are != NULL before dereferencing them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1962 >
2022-03-16 02:48:34 +00:00
Bastien Nocera
bd39ad4519
convertframe: Add support for GL-memory backend GstFrame input
...
Add "gldownload" early in the pipeline so that GL-memory backed raw
frames can be downloaded and processed on the CPU.
Closes : #1073
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1916 >
2022-03-15 20:31:24 +00:00
Xavier Claessens
0fa7923937
Meson: Set install_tag on some files
...
Meson tries to guess the tag (runtime, devel, etc) for every installed
file, but it cannot guess them all. There is a list at the end of
meson-log.txt of files we need to tag manually.
See https://mesonbuild.com/Installing.html#installation-tags .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 >
2022-03-14 08:56:54 -04:00
Jan Schmidt
90426f5751
playbin3: Remove stale code
...
Remove now-unused get_stream_type_for_event() function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00
Edward Hervey
4a436b5c14
decodebin3: Reset parsebin when new caps arrive
...
Check if parsebin can handle the new caps, and if not reset it so that it can
reconfigure itself for the new stream format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00
Edward Hervey
c658e29d09
decodebin3: Convert checks to assertions
...
"decodebin.input" is never resetted and should always be present, therefore make
it an assertion check
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00
Edward Hervey
9b94798d0b
parsebin: Implement ACCEPT_CAPS handling
...
The default query handler would go through typefind, which by default accepts
any CAPS. But once configured, parsebin can't reconfigure itself, it should
therefore pass through the ACCEPT_CAPS query to the first element after
typefind (if any).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900 >
2022-03-11 15:02:02 +01:00