Marek Vasut
997c3f4013
jpegdec: Disable libjpeg-turbo SIMD acceleration support for now
...
The libjpeg-turbo SIMD acceleration support suffers from multiple
unresolved cornercases. Disable the libjpeg-turbo for now until
those cornercases are resolved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3704 >
2023-02-08 10:50:00 +00:00
Sebastian Dröge
9ee04be643
aom: Include stream-format and alignment in the AV1 caps
...
The decoder does not work with arbitrary alignment and annexb stream
format and the encoder can give the information that it outputs
obu-stream/tu to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3875 >
2023-02-08 10:11:14 +00:00
medithe
724de12336
gstreamer: bin: Don't unlock unlocked mutex in gst_bin_remove_func()
...
Calling `g_mutex_unlock(mutex)` leads to an undefined behavior if the
mutex is not locked by the current thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3909 >
2023-02-07 20:00:47 +00:00
Edward Hervey
854beabd20
closedcaption: Don't leak caps event
...
All events that we handle should be unreffed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3907 >
2023-02-07 17:28:25 +00:00
He Junyan
23c45c269f
va: Avoid the array index overflow when filling 8x8 scaling list.
...
The VA API has not defined the scaling list entries for U/V planes
for the 4:4:4 stream. In fact, we do not meet the 4:4:4 format output
for H264 so far, and scaling list is not used frequently, so we just
print out some warning and ignore these scaling list values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3879 >
2023-02-02 10:22:33 +00:00
Seungha Yang
864f895e1b
nvvp9dec: Fix return value
...
It should return GstFlowReturn value, not boolean
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3876 >
2023-02-02 02:08:16 +00:00
Sebastian Dröge
37999359a9
rtspsrc: Also consider "Method Not Valid In This State" error in broken control URL handling workaround
...
Some servers send a 455 error instead of any reasonable error when using
a correctly constructed control URL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3861 >
2023-02-01 14:17:21 +00:00
Jan Schmidt
f3b8f1d5b0
qmlglsrc: Handle HiDPI scaling
...
When calculating the capture framebuffer size, include
any device scaling applied to the rendered framebuffer
Fixes only capturing part of the window when there is
a global scale factor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622 >
2023-01-31 12:21:27 +00:00
Jan Schmidt
64ec73f313
qmlglsrc: Unmap buffer before adding sync meta
...
Adding a sync meta to a GstBuffer requires that it
be writable. Mapping the buffer with the video frame API
holds an extra ref on the buffer, so unmap before
trying to modify it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622 >
2023-01-31 12:21:27 +00:00
Jan Schmidt
d43ef0165e
qmlglsrc: Stop when basesrc calls unlock()
...
Instead of stopping capture when the state changes,
handle other cases of basesrc stopping capture by - such
as handling an EOS event - by implementing an unlock()
method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622 >
2023-01-31 12:21:27 +00:00
Seungha Yang
19238bdc6f
mpegpsdemux: Ignore DTS if PTS < DTS
...
It's possibly timestamp rollover case. But PTS < DTS is already
invalid case anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3834 >
2023-01-28 12:58:00 +00:00
Seungha Yang
1f45b0e7e3
wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
...
... or older. Work around an OS bug that loopback capture
device doesn't notify event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1738
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3809 >
2023-01-26 16:07:43 +00:00
Pawel Stawicki
d8bef5c7e7
v4l2h264dec: Fix Raspberry Pi4 will not play video in application
...
Ensure object v4l2object->pool will be released by
correctly releasing the temporary thread-safety lock
Fixes issue #1729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3795 >
2023-01-26 03:55:49 +00:00
Sebastian Dröge
7905628f32
gst: Fix gst_type_find_peek() return value annotation
...
It's not possible to annotate a in-parameter for a return value array as
the array length. Both are assumed to have the same direction and the
current annotation causes the size parameter to be considered an out
parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3794 >
2023-01-26 03:19:46 +00:00
Sebastian Dröge
b6a400ae6b
sdp: Fix gst_mikey_payload_key_data_set_interval() array length annotation
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1744
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3794 >
2023-01-26 03:19:46 +00:00
Mathieu Duponchelle
f08994583f
redenc: fix setting of extension ID for twcc
...
1 was previously hardcoded in, and the bug went under the radar because
webrtcsink hardcodes the number too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3793 >
2023-01-26 02:49:50 +00:00
Edward Hervey
54697df6e3
multiqueue: Handle use-interleave latency live pipelines
...
Due to the dynamic nature of multiqueue, when `use-interleave` is used we can't
report a maximum tolerated latency (when queried) since it is calculated
dynamically.
When in such live pipelines, we need to make sure multiqueue can handle the
lowest global latency (provided by this event). Failure to do that would
result in not providing enough buffering for a realtime pipeline.
Fixes #1732
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3792 >
2023-01-26 02:18:48 +00:00
Sebastian Dröge
a70935782e
avvidenc: Don't take ffmpeg timestamps verbatim but only use them to calculate DTS
...
The ffmpeg timestamps are inaccurate and only in framerate granularity.
To avoid generating inaccurate output timestamps, especially with
variable framerate streams, only use the ffmpeg timestamps for
calculating the DTS.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544
again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3791 >
2023-01-26 01:28:23 +00:00
Sebastian Dröge
ceecd4717d
Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate"
...
This reverts commit 50db59449e
.
This broke the MPEG-1 video encoder as it requires the framerate to be
used for the timebase.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1734
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3791 >
2023-01-26 01:28:23 +00:00
F. Duncanh
82ad60e905
plugins-base/tests/check/meson.build: add omitted Wayland dependence
...
SUSE places Wayland include files in /usr/include/wayland, and needs
a Cflag added to wayland_client_deps by pkg-config, which is added to
gl_winsys_deps: add this as a dependency in gstgl_dep to fix issue.
Fixes #1607
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3768 >
2023-01-22 18:53:36 +00:00
Tim-Philipp Müller
42b8214538
gst-plugins-ugly: update translations
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1575
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764 >
2023-01-21 11:16:01 +00:00
Tim-Philipp Müller
8b32e0f57a
gst-plugins-bad: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764 >
2023-01-21 11:15:58 +00:00
Tim-Philipp Müller
d7bc595acd
gst-plugins-good: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764 >
2023-01-21 11:15:53 +00:00
Tim-Philipp Müller
4b43b06093
gst-plugins-base: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764 >
2023-01-21 11:15:49 +00:00
Tim-Philipp Müller
bddfb98353
gstreamer: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764 >
2023-01-21 11:15:45 +00:00
Sebastian Dröge
44532db218
matroska: Add stream-format = (string) obu-stream
to AV1 caps
...
Anything else is not allowed in Matroska/WebM.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3741 >
2023-01-19 19:54:01 +02:00
Sebastian Dröge
c03a6d0ea2
isomp4: Add stream-format = (string) obu-stream
to AV1 caps
...
Anything else is not allowed in MP4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3741 >
2023-01-19 19:54:01 +02:00
Jan Alexander Steffens (heftig)
e5ddd94da6
input-selector: Take the object lock while iterating sinkpads
...
Otherwise we can race with pad removal and crash from use-after-free.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1717
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3747 >
2023-01-18 19:48:53 +00:00
Sebastian Dröge
2c503a8d7d
avvidenc: Offset PTS to zero to fix bitrate control
...
Otherwise ffmpeg's rate control algorithm will not work correctly as
it is based on the absolute PTS values.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/91
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3727 >
2023-01-13 20:28:09 +00:00
Seungha Yang
af97e98315
d3d11memory: Fix potential crash in GstD3D11PoolAllocator
...
Allocator object can be the final refcount holder, when a GstD3D11Memory
is being released. Do unref allocator once there's no more
remaining operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3726 >
2023-01-13 19:33:56 +00:00
Seungha Yang
230ecf3cd9
d3d11memory: Remove GstD3D11PoolAllocator::dispose
...
Clear GstD3D11Device object in finalize method as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3726 >
2023-01-13 19:33:56 +00:00
Rodrigo Bernardes
fe90b08d2f
dvbbasebin: don't rely on g_key_file_get_(integer|uint64) return
...
instead check if an error was returned, and fail if any
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3701 >
2023-01-10 01:55:35 +00:00
Olivier Crête
2544c7cb78
webrtc examples: Force regular non-MULTIOPUS
...
Using MULTIOPUS breaks with most browsers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3685 >
2023-01-05 10:18:40 +00:00
Olivier Crête
45b4bca877
webrtc-unidirectional: Avoid critical
...
Don't unref the parameter passed to a signal, it's always owned by
the caller. Fixes a GLib critical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3685 >
2023-01-04 20:05:29 +00:00
Sebastian Dröge
965e6086d0
ges: gst_bin_add() is transfer floating
so wrappers around it are too
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3684 >
2023-01-04 18:50:01 +00:00
Mathieu Duponchelle
903289613b
qtmux: For video with N/1001 framerates use N as timescale instead of centiframes
...
This is recommended by various specifications for such framerates, while
for integer framerates we continue using centiframes to allow for some
more accuracy.
Using N means that no rounding error accumulates, eventually leading to
outputting a packet with a different duration.
Some tools such as MediaInfo determine that a stream is variable
framerate if any packet has a different duration than the others, and
there is no reason I can see for not using the full 4 bytes of
resolution that the mp4 timescale offers.
Example problematic pipeline:
```
videotestsrc num-buffers=5001 ! video/x-raw,framerate=60000/1001,width=320,height=240 ! \
videoconvert ! x264enc bitrate=80000 speed-preset=1 tune=zerolatency ! h264parse ! \
video/x-h264,profile=high-10 ! mp4mux ! filesink location="result2.mp4"
```
This results in a media file that MediaInfo detects as variable
framerate because the 5000th packet has duration 99 instead of 100.
With this patch, the timescale is 60000 and all packets have duration
1001.
Related issue for context: https://bugzilla.gnome.org/show_bug.cgi?id=769041
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3683 >
2023-01-04 18:01:50 +00:00
Sebastian Dröge
49dccf42b6
avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate
...
As we now actually use the timestamps from ffmpeg for timestamping the
output we would lose a lot of accuracy if the framerate is used.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3679 >
2023-01-04 17:19:37 +00:00
Olivier Crête
7cb4f36c42
srt: Avoid crash on unknown option
...
Use the correct field that is null instead of the struct value which
never is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3682 >
2023-01-04 15:23:15 +00:00
Tim-Philipp Müller
32d11fdaf4
subprojects: libffi: pin to meson-3.2.9999.4 tag
...
In case we want to change the 'meson' branch over
to the re-done meson port based on upstream libffi
in future.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3669 >
2023-01-02 00:35:56 +00:00
Sebastian Dröge
ce7bc581f1
gl: Mark gst_gl_context_new_wrapped()
return value as nullable
...
If a GL context is requested for which no API support is compiled in
then `NULL` is returned.
Also remove a useless `NULL` check: `g_object_new()` can't possibly
return `NULL`, ever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3668 >
2023-01-02 00:05:30 +00:00
Nirbheek Chauhan
996b9ebd9e
meson: Add gstreamer-gl-1.0 pkgconfig vars to internal dependency
...
So we can fetch gl_winsys, gl_platforms, etc directly using
gst_gl_dep.get_variable() when building gstreamer as a subproject, or
when building gst-plugins-rs's gtk4 plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3667 >
2023-01-01 23:32:49 +00:00
Philippe Normand
9aa8393e06
tests: gstelement: Fix test_add_pad_while_paused flakiness
...
`gst_element_remove_pad()` doesn't automatically deactivate the pad, it has to
be done explicitly beforehand, otherwise the pad task might be left dangling,
exposed to undefined behaviour.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3651 >
2022-12-28 19:02:42 +01:00
Alicia Boya García
ebe44034c1
gstelement: fix deadlock in gst_element_add_pad() when >=PAUSED
...
gst_element_add_pad() is supposed to activate the pad if the element
state is >= PAUSED and the pad is not already active.
Unfortunately, before this patch, the activation was performed while the
element lock was still taken, which ended causing a deadlock in
gst_pad_start_task() as it attempted to post `stream-status` message in
the element, which also requires the element lock.
Elements could work around this bug by activating the pad manually
before adding it to the element.
This patch fixes the problem by performing pad activation only after the
element lock has been released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3651 >
2022-12-28 13:16:33 +01:00
Seungha Yang
e2f30cd947
gtkbasesink: Fix widget leak
...
gst_gtk_base_sink_get_widget() will increase refcount and it should
be released after use
Fixing regression introduced by the commit
941c0e81dd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3650 >
2022-12-28 11:46:14 +01:00
Yatin Maan
7cf130801b
aom: av1enc: Ensure that input pts is strictly increasing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3649 >
2022-12-27 22:42:56 +01:00
Yatin Maan
ab7b1c8d62
aom: av1enc: Fix pts unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3649 >
2022-12-27 22:42:49 +01:00
Seungha Yang
d5086a1091
rtspsrc: Fix string leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3648 >
2022-12-27 21:43:02 +01:00
Seungha Yang
620974352d
rtptimerqueue: Fix memory leak
...
Should chain up to parent's finalize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3648 >
2022-12-27 21:43:02 +01:00
Tim-Philipp Müller
8bee905f95
ci: validate: don't --check-bugs in 1.20 branch
...
Any issues fixed may only have been fixed in the main branch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3647 >
2022-12-27 21:06:08 +01:00
Sebastian Dröge
ccd582c332
bin: Fix race conditions in tests
...
The latency messages are non-deterministic and can arrive before/after
async-done or during state-changes as they are posted by e.g. sinks from
their streaming thread but bins are finishing asynchronous state changes
from a secondary helper thread.
To solve this, expect latency messages at any time and assert that we
receive one at some point during the test.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3647 >
2022-12-27 20:38:37 +01:00