Andoni Morales Alastruey
94e1ddad43
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736 >
2022-07-11 11:25:54 +00:00
Andoni Morales Alastruey
7db2a3cf11
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736 >
2022-07-11 11:25:54 +00:00
He Junyan
8e2bbfed13
va: baseenc: Do not use codec frame structure again after finish_frame().
...
In _push_out_one_buffer(), we use codec frame structure again for error handling
after we already call finish_frame(), which is a latent segment fault.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
He Junyan
27c33f0161
va: baseenc: Do not clear the codec frame twice when error.
...
The current manner will clear the input codec frame twice if we fail
to push the output data, which will trigger an assert.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2739 >
2022-07-11 10:12:29 +00:00
Jordan Petridis
3385ea3481
fluiddec: Remove workaround for version 1.1.9
...
We require >= 2.1 version since the previous commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Jordan Petridis
2fa6ec8733
fluidsynth: update from now deprecated api
...
fluid_synth_set_chorus_on and fluid_synth_set_reverb_on were
deprecated in favor of new funtions where you can also specify
the fx_group the effect would apply.
The behavior of the set_* variants was to apply to all groups
so we pass -1 to the new functions as per documentation.
https://www.fluidsynth.org/api/group__chorus__effect.html#ga3c48310eecdca9cd338799d19f19c32d
and
https://www.fluidsynth.org/api/group__reverb__effect.html#gacb7917564c988cf54f2e35189b509c8e
and the introduction of the change:
https://github.com/FluidSynth/fluidsynth/pull/673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Marc Leeman
18f2f83b4a
base: lookup RGB format without alpha
...
librfb requests a colour space for depth 32 and bpp 32 with alpha set to
0x0, treat this the same as depth 24 with bpp 32.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2627 >
2022-07-09 12:06:58 +00:00
Seungha Yang
b09ca8635f
d3d11: Use scoped device lock
...
Make code simpler and more deadlock-free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2728 >
2022-07-09 03:36:17 +09:00
Jan Alexander Steffens (heftig)
dfea5070df
gstinfo: Parse "NONE" as a valid level name
...
This allows using `NONE` in `GST_DEBUG`,
`gst_debug_set_threshold_from_string`, etc. It was accessible before,
but only via the integer `0`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2734 >
2022-07-08 17:07:36 +00:00
Thibault Saunier
7aeb2f6711
python: Fix the audiotestsrc example
...
Since 830d1595b9
AudioInfo::from_caps has been hidden in python
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675 >
2022-07-08 14:37:14 +00:00
Thibault Saunier
fab64c0b3a
python: Add a Gst.init_python function to be called from plugins
...
Plugins know that they will be initialized after Gst was initialized
so they can call the initialization function dedicated for the python
bindings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675 >
2022-07-08 14:37:14 +00:00
Thibault Saunier
37366ff2f4
python: Do not call gst_init when it is already is_initialized
...
GStreamer plugins written in python need to call `Gst.init` to ensure
that GStreamer is initialized so when loading a python plugin, we might
be recursively calling `gst_init` which is not a good idea.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/940
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675 >
2022-07-08 14:37:14 +00:00
Seungha Yang
0513e51716
libav: Fix for APNG encoder property registration
...
The AVClass name of Animated PNG in FFmpeg 5.x is "(A)PNG"
and it will be converted to "-a-png" through
g_ascii_strdown() and g_strcanon(). But GLib disallow leading '-'
character for a GType name. Strip leading '-' to workaround it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2724 >
2022-07-08 13:56:35 +00:00
Seungha Yang
02c2485468
qsvencoder: Fix for latency report when B-frame is enabled
...
QSV runtime will introduce additional delay when B-frame is enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730 >
2022-07-08 13:24:12 +00:00
Seungha Yang
4f90e9b561
qsvencoder: Do not query again if previous call succeeded
...
Don't need to query multiple times
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730 >
2022-07-08 13:24:12 +00:00
Seungha Yang
6cc6494287
d3d11screencapturesrc: Set colorimetry to caps
...
Make use of reported DXGI colorspace if possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 21:05:25 +09:00
Seungha Yang
2476678b3c
d3d11: Update colorspace map
...
Map DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 to sRGB colorimetry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 20:15:28 +09:00
Seungha Yang
59d92ea62c
d3d11: Add an utility method for DXGI colorspace conversion
...
Add a method for DXGI_COLOR_SPACE_TYPE -> GstVideoColorimetry conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729 >
2022-07-08 20:03:06 +09:00
Seungha Yang
f3d51ef235
d3d11: Serialize ensure_element_data() call
...
It can be called any time from random thread. Thus, multiple
device objects can be created for the same physical device
if the call is not serialized, that's not a scenario we expect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2727 >
2022-07-08 01:35:34 +09:00
Seungha Yang
8aeb8ea58f
proxysink: Fix GstProxySrc leak
...
Clear weak pointer to peer src when disposing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552 >
2022-07-07 05:54:54 +09:00
Seungha Yang
37fdaaf8ff
proxysink: Make sure stream-start and caps events are forwarded
...
There might be a sequence of event and buffer flow:
- Got stream-start/caps/segment events
- Got flush events
- And then buffers with a new segment event
In the above case, stream-start and caps event might not be reached to
peer proxysrc if peer proxysrc is not ready to receive them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552 >
2022-07-07 05:42:21 +09:00
Seungha Yang
b233df3537
splitmuxsink: Don't crash on EOS without buffer
...
Fix a case where upstream pushed EOS without buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2174 >
2022-07-05 11:33:35 +00:00
Matthew Waters
6066e913ee
webrtc: implement support for asynchronous host resolution
...
Doesn't block anymore if a mdns host resolution takes multiple seconds
to complete in e.g. stun/turn/ice candidate usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1961 >
2022-07-05 03:20:57 +00:00
Matthew Waters
dd4bbb6379
videoconvertscale: ensure writable caps when fixating format
...
gst_video_convert_scale_get_fixed_format() receives 'othercaps' from
basetransforms' fixate_caps() vmethod which explicitly mentions that
'`othercaps` may not be writable'.
The gst_caps_intersect() call just before may or may not produce new
caps. Particularly in cases like EMPTY or ANY caps on either of the
inputs, only a ref is taken and returned to the caller.
As a result, gst_video_convert_scale_fixate_format() may have attempted
to modify a non-writable caps structure.
Fix by adding a gst_caps_make_writable().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2709 >
2022-07-04 19:57:10 +00:00
Thibault Saunier
339f950e79
rtprtx: Fix copying extension headers
...
There was a typo leading to reading memory from the buffer we were
writing to.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2696 >
2022-07-04 19:20:57 +00:00
Seungha Yang
e0d1b98827
d3d11converter: Remove convert() method
...
Expose only single convert_buffer() method. It's safer approach than
passing arbitrary list of SRV/RTV pointers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
df396b9acd
d3d11testsrc: Use convert_buffer() method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
7a48843ca6
d3d11: Remove video processor
...
Processing using ID3D11VideoProcessor was integrated into
GstD3D11Converter and GstD3D11VideoProcessor implementation is
not used anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Seungha Yang
347ad181be
d3d11memory: Update alloc_wrapped() API to avoid staging texture alloc
...
Add size parameter and use it for CPU accessible memory size
instead of allocating staging texture per API call.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2713 >
2022-07-04 18:46:51 +00:00
Ignazio Pillai
76dbe45b83
wasapi: Implement default audio channel mask
...
Some multichannel capture devices does not provide a channel mask value
which will result in a pipeline failure due to the empty channel mask.
Implemented the same fix used for wasapi2
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1204
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2692 >
2022-07-04 08:56:15 +00:00
Matthew Waters
b06a97c429
examples/webrtc/signalling: Fix compatibility with Python 3.10
...
- ssl module requires an explicit TLS_SERVER role
- asyncio throws a deprecation warning when using
asyncio.get_event_loop(). Remove custom event loop handling entirely
- No need to keep the websocket server in a member variable, can use
a future to signal exit case along with the async with context manager
of websockets.serve()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2698 >
2022-07-04 03:17:15 +00:00
fduncanh
735723c230
v4l2videodec: replace multiple decoder bug warnings with single one
...
Achieve this by dropping frames after a drain if the driver failed to so.
This works around RaspberryPi driver issue [1].
[1] https://github.com/raspberrypi/linux/issues/5059#issuecomment-
Fixes #1103
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2518 >
2022-07-02 23:56:00 +00:00
Seungha Yang
5f39388ae5
d3d11videosink: Add support for rotation
...
Adding "rotate-method" property
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1396
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
4e75ca0351
d3d11videosink: Protect window with lock at every place
...
Access to the object should be thread safe to support runtime
property update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
60e6be7068
d3d11convert: Add support for GstVideoOrientationMethod
...
Add flip/rotation support via GstVideoDirectionInterface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Seungha Yang
f549575ce8
d3d11converter: Add support for GstVideoOrientationMethod
...
Shader can handle rotation/flip with other conversions
at once in a single pipeline, and depending on device
capability, videoprocessor may support it too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2708 >
2022-07-02 20:40:37 +00:00
Tim-Philipp Müller
90090dc13b
tests: udpsink: make test work in environments without IPv6
...
Part-fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/939
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2659 >
2022-07-02 11:57:31 +00:00
Seungha Yang
5eeec16502
d3d11videosink: Use single GstD3D11Converter object
...
GstD3D11Converter supports videoprocessor and texture upload.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:40:47 +09:00
Seungha Yang
46a3394581
d3d11memory: Add private method for texture wrapped memory allocation
...
Unlike public method gst_d3d11_allocator_alloc_wrapped(), newly
added method by this commit will not calculate CPU accessible memory
size, since staging texture must be allocated to calculate the size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
3919491eb2
d3d11: Use library private header in plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
9709bcf3fe
d3d11compositor: Use single GstD3D11Converter object
...
... and remove unnessary videoprocessor/upload/copy code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
993b9b36db
d3d11convert: Add border-color property
...
Use user specified border-color instead of black color
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
6a59dd95e8
d3d11convert: Use single GstD3D11Converter object
...
... and don't use GstD3D11VideoProcessor. Now GstD3D11Converter will
be able to convert using videoprocessor, and texture upload is also supported by
GstD3D11Converter. All the noisy code can be removed therefore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
91a732fe90
d3d11converter: Add support conversion using videoprocessor
...
* Add videoprocessor feature to d3d11converter, in order to unifiy
conversion flow.
* Add convert_buffer() method to support automatic shader/videoprocessor
selection. The method also supports texture upload if input memory
cannot be used for conversion (e.g., system memory or so)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:55 +09:00
Seungha Yang
fdbb9041a2
d3d11overlaycompositor: Objectify overlay render implementation
...
Be consistent with other implementations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-02 05:37:27 +09:00
Seungha Yang
b2d09de899
d3d11: Don't use const pointer to GstDxgiColorSpace
...
Instead, fill values of passed GstDxgiColorSpace struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2697 >
2022-07-01 19:34:16 +00:00
Tim-Philipp Müller
f19f579712
samiparse: clean up some GString usage
...
There's no need to re-assign the return value of
g_string_append_*() functions and such to the variable
holding the GString. These return values are just for
convenience so function calls can be chained. The actual
GString pointer won't change, it's not a GList after all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685 >
2022-07-01 17:24:52 +00:00
Tim-Philipp Müller
270d23c8e0
samiparse: micro-optimise entity handling
...
Avoid relocations and hard-code entity string length
in the struct, since we basically get it for free here.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685 >
2022-07-01 17:24:52 +00:00
Tim-Philipp Müller
84a3b0ef87
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685 >
2022-07-01 17:24:52 +00:00
Jan Schmidt
79d8b435d7
Revert "glupload: Fix caps query with no filter"
...
This reverts commit 6f9ae5d758
.
The _transform_caps() function can't tell the difference
between the caller wanting to know the output caps
for the current method, or all possible output caps. If
it includes caps for all possible methods, glupload can
end up negotiating and sending the wrong output caps
downstream.
Partially reverts !2687
Fixes #1310
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2699 >
2022-07-02 00:05:53 +10:00