platform/upstream/gstreamer.git
21 months agosubprojects: fix pango wrap diff file location
Tim-Philipp Müller [Fri, 29 Jul 2022 10:26:01 +0000 (11:26 +0100)]
subprojects: fix pango wrap diff file location

Must match the version of the pango wrap.

Fixes ci windows docker image rebuild issue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2812>

21 months agovideobox: avoid dropping caps fields for passthrough caps transform
Mark Nauwelaerts [Fri, 22 Jul 2022 12:51:11 +0000 (14:51 +0200)]
videobox: avoid dropping caps fields for passthrough caps transform

Fixes potential negotiation failure in case downstream element
is a bit picky regarding the fields in question.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2786>

21 months agocompositor: Update plugins cache
Seungha Yang [Wed, 13 Jul 2022 13:37:26 +0000 (22:37 +0900)]
compositor: Update plugins cache

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agocompositor: Warn when inputs are SDR/HDR mixed
Seungha Yang [Tue, 18 Jan 2022 12:21:23 +0000 (21:21 +0900)]
compositor: Warn when inputs are SDR/HDR mixed

Let user know that the result of mixed SDR/HDR is not guaranteed
to be a good visual quality.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agocompositor: Add support for all formats
Seungha Yang [Wed, 24 Nov 2021 11:21:52 +0000 (20:21 +0900)]
compositor: Add support for all formats

For formats which we don't have fast-path implementation, compositor
will convert it to common unpack formats (AYUV, ARGB, AYUV64 and ARGB64)
then blending will happen using the intermediate formats.
Finally blended image will be converted back to the selected output format
if required.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agocompositor: Add support for Y444 high bitdepth formats
Seungha Yang [Fri, 19 Nov 2021 15:41:52 +0000 (00:41 +0900)]
compositor: Add support for Y444 high bitdepth formats

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agocompositor: Add support for I420/I422 high bitdepth formats
Seungha Yang [Fri, 19 Nov 2021 07:32:38 +0000 (16:32 +0900)]
compositor: Add support for I420/I422 high bitdepth formats

Implementation for {I420,I422}_{10,12}_{LE,BE} formats

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agocompositor: Calculate background color only once
Seungha Yang [Fri, 19 Nov 2021 12:46:43 +0000 (21:46 +0900)]
compositor: Calculate background color only once

... instead of do that per fill_color() call in case of RGB format.
Moreover, respect selected GstVideoColorRange

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

21 months agowasapi2: Fix initial mute/volume setting
Seungha Yang [Thu, 28 Jul 2022 17:36:40 +0000 (02:36 +0900)]
wasapi2: Fix initial mute/volume setting

Fix up volume/mute change flag setting

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2809>

21 months agortspconnection: protect cancellable by a mutex
Matthew Waters [Wed, 27 Jul 2022 05:42:44 +0000 (15:42 +1000)]
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=<optimized out>, 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=<optimized out>) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632
 #7  0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=<optimized out>, buffer_list=0x0, buffer=<optimized out>, 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=<optimized out>, 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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2799>

21 months agoGST_CHECK_VERSION: Fix unexpected "git = next version" assumption
Philippe Normand [Thu, 26 May 2022 14:26:40 +0000 (15:26 +0100)]
GST_CHECK_VERSION: Fix unexpected "git = next version" assumption

1.21.0.1 should not satisfy a check for 1.22.0.

If someone needs more control they should do a feature check for
the symbol in the headers or lib.

Based on a similar patch by Tim-Philipp Müller for libnice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2501>

21 months agovideoflip: Fix caps negotiation when method is selected
Adrian Fiergolski [Wed, 27 Jul 2022 13:44:09 +0000 (15:44 +0200)]
videoflip: Fix caps negotiation when method is selected

The caps negotiation should respect the selected method to the test pipeline below works properly.
gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=600 ! videoflip method=clockwise ! video/x-raw,width=600,height=320 ! fakesink

Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2803>

21 months agovaapi: h265dec: avoid possible NULL deref
U. Artie Eoff [Wed, 27 Jul 2022 12:45:45 +0000 (08:45 -0400)]
vaapi: h265dec: avoid possible NULL deref

Check "pi" before attempting to dereference it.

Captured by static analysis.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2801>

21 months agova: h264enc: Make AUD the first NAL unit
Eric Knapp [Tue, 26 Jul 2022 17:59:33 +0000 (13:59 -0400)]
va: h264enc: Make AUD the first NAL unit

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2796>

21 months agomeson: webrtc: ensure definition of libgstwebrtcnice_dep
U. Artie Eoff [Tue, 26 Jul 2022 19:49:32 +0000 (15:49 -0400)]
meson: webrtc: ensure definition of libgstwebrtcnice_dep

... and skip if it's disabled.

Fixes #1344

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2797>

21 months agovaapi: h264dec: Remove dead code
Nicolas Dufresne [Tue, 26 Jul 2022 16:12:50 +0000 (12:12 -0400)]
vaapi: h264dec: Remove dead code

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>

21 months agovaapi: h265dec: Refresh our sps/pps copy
Nicolas Dufresne [Tue, 26 Jul 2022 16:22:10 +0000 (12:22 -0400)]
vaapi: h265dec: Refresh our sps/pps copy

The decoder uses a copy of the SPS/PPS. Since
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575
the SPS/PPS is updated when the slice header is parsed. As a side
effect, the H265 decoder was using an partially filled copy.

Fixes: 5ae05bb42a ("codecparsers: Defering computation of pps and sps fields")
Fixes: #1343
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2795>

21 months agov4l2object.c: add support for Apple's full-range bt709 colorspace variant
fduncanh [Mon, 25 Jul 2022 03:44:10 +0000 (23:44 -0400)]
v4l2object.c: add support for Apple's full-range bt709 colorspace variant

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2793>

21 months agowebrtc: Split WebRTCICE into base classes and implementation.
yatinmaan [Mon, 18 Apr 2022 17:55:13 +0000 (23:25 +0530)]
webrtc: Split WebRTCICE into base classes and implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2398>

22 months agov4l2: fix the critical log when unreference the buffer with no data
Elliot Chen [Fri, 8 Jul 2022 10:22:58 +0000 (18:22 +0800)]
v4l2: fix the critical log when unreference the buffer with no data

In the trick mode, driver may queue a valid buffer follow by an
empty buffer which has no valid data to indicate EOS.For the empty
buffer whose memory is multi-plane, need to resize it before
unreference it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2731>

22 months agoqsvencoder: Add support for D3D11 shared texture
Seungha Yang [Fri, 22 Jul 2022 13:50:33 +0000 (22:50 +0900)]
qsvencoder: Add support for D3D11 shared texture

Although input texture belongs to the other d3d11 device,
we can do GPU copy when its physical device is identical.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790>

22 months agod3d11: Port to GstD3D11Fence
Seungha Yang [Fri, 22 Jul 2022 15:41:49 +0000 (00:41 +0900)]
d3d11: Port to GstD3D11Fence

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790>

22 months agod3d11: Implement fence abstraction
Seungha Yang [Fri, 22 Jul 2022 15:11:18 +0000 (00:11 +0900)]
d3d11: Implement fence abstraction

Depending on device feature level, d3d11 runtime can support
ID3D11Fence which is equivalent to ID3D12Fence.
Waiting using fence has performance-wise benefit over pulling
ID3D11Query status. If ID3D11Fence is not supported by device,
then ID3D11Query will be used instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2790>

22 months agoaudiointerleave: fix property docs
Tim-Philipp Müller [Fri, 22 Jul 2022 12:13:42 +0000 (13:13 +0100)]
audiointerleave: fix property docs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2785>

22 months agovideo: Fix scaling in 4x horizontal co-sited chroma
Jan Schmidt [Fri, 22 Jul 2022 16:49:20 +0000 (02:49 +1000)]
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2789>

22 months agocodecs: h265: Make sure that sps is processed just before decoding
Benjamin Gaignard [Wed, 8 Jun 2022 13:44:26 +0000 (15:44 +0200)]
codecs: h265: Make sure that sps is processed just before decoding

It may happens that bitstream doesn't provided SPS in decoding order
(like in VPSSPSPPS_A_MainConcept_1 conformance test file).
To be sure that the decoder got the correct SPS parameters process
SPS just before start decoding the frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575>

22 months agocodecs: h265: Fix typos
Sebastian Fricke [Fri, 18 Mar 2022 14:04:18 +0000 (15:04 +0100)]
codecs: h265: Fix typos

Fix multiple typos in warning and info messages.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575>

22 months agovideoparsers: h265: Be less restrictive between PPS and SPS parsing order
Benjamin Gaignard [Mon, 16 May 2022 13:27:40 +0000 (15:27 +0200)]
videoparsers: h265: Be less restrictive between PPS and SPS parsing order

Allow to parse PPS to be parser even if SPS hasn't been parsered before.
This help to parse VPSSPSPPS_A_MainConcept_1 conformance test

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575>

22 months agocodecparsers: Defering computation of pps and sps fields
Benjamin Gaignard [Mon, 16 May 2022 13:25:36 +0000 (15:25 +0200)]
codecparsers: Defering computation of pps and sps fields

While possible defer computataion of pps and sps fields until
slice parsing since it may happens that bitstreams don't encoded
them in expected order.
A example weird ordered bitstreams is VPSSPSPPS_A_MainConcept_1
conformance test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2575>

22 months agov4l2codecs: h264: Reset the number of slices on picture start
Nicolas Dufresne [Wed, 20 Jul 2022 16:11:47 +0000 (12:11 -0400)]
v4l2codecs: h264: Reset the number of slices on picture start

This way, if we aborted a frame in the middle, we don't endup thinking
there is multiple slices to send.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: h264: Fix initialization of the slice array
Nicolas Dufresne [Tue, 12 Jul 2022 19:44:45 +0000 (15:44 -0400)]
v4l2codecs: h264: Fix initialization of the slice array

The function g_array_sized_new() leaves the len to 0, but the slice
implementation assumes it would be set to 4. Sending multiple slices is
not yet support for H.264 as no driver needed it yet, but if that code
was to be used it would have overflowed as the array would never grow as
multiple 0 by 2 always results in 0.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: h264: Rename count variable to num_controls
Nicolas Dufresne [Tue, 12 Jul 2022 19:43:34 +0000 (15:43 -0400)]
v4l2codecs: h264: Rename count variable to num_controls

This is the counter for the used control slot. The term num_controls was
introduced in the HEVC decoder and felt like a better choice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: hevc: Add an API check
Nicolas Dufresne [Mon, 20 Jun 2022 16:22:20 +0000 (12:22 -0400)]
v4l2codecs: hevc: Add an API check

This adds an API check and bump recommended base kernel version to 5.20.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: Add v4l2 stateless H265 decoder
Benjamin Gaignard [Tue, 12 Jul 2022 12:56:07 +0000 (08:56 -0400)]
v4l2codecs: Add v4l2 stateless H265 decoder

Add v4l2 stateless H265 decoder.

Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: Increase minimum payload size
Benjamin Gaignard [Mon, 25 Apr 2022 13:27:39 +0000 (15:27 +0200)]
v4l2codecs: Increase minimum payload size

Fluster MAXBINS_{A-C}_TI_5 HEVC tests files require to store
a payload larger than usual given their resolutions.
Increase the minimum payload size to handle them correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agov4l2codecs: Align v4l2 headers with HEVC final uAPI
Nicolas Dufresne [Tue, 12 Jul 2022 12:57:38 +0000 (08:57 -0400)]
v4l2codecs: Align v4l2 headers with HEVC final uAPI

HEVC uAPI have landed for kernel 5.10.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agocodecparsers: h265: Introduce long_term_ref_pic_set_size
Nicolas Dufresne [Fri, 29 Apr 2022 16:10:05 +0000 (12:10 -0400)]
codecparsers: h265: Introduce long_term_ref_pic_set_size

This is the size of the `if( long_term_ref_pics_present_flag )` inside
slice_segment_header( ) syntax. This size in bit, and after de-emulation
is needed by some HW.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1079>

22 months agoaudiobuffersplit: Actually store number of samples to drop in gapless mode
Sebastian Dröge [Thu, 21 Jul 2022 13:11:03 +0000 (16:11 +0300)]
audiobuffersplit: Actually store number of samples to drop in gapless mode

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780>

22 months agoaudiobuffersplit: Use input running time for comparison instead of the currently...
Sebastian Dröge [Thu, 21 Jul 2022 13:10:18 +0000 (16:10 +0300)]
audiobuffersplit: Use input running time for comparison instead of the currently tracked running time

Otherwise gapless mode would do completely wrong calculations on
discontinuities and cause input/output to drift slowly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780>

22 months agoaudiobuffersplit: Combine two if expressions to reduce indentation
Sebastian Dröge [Thu, 21 Jul 2022 10:38:22 +0000 (13:38 +0300)]
audiobuffersplit: Combine two if expressions to reduce indentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2780>

22 months agovideoaggregator: Don't force upstream alpha format
Seungha Yang [Fri, 1 Jul 2022 21:08:57 +0000 (06:08 +0900)]
videoaggregator: Don't force upstream alpha format

"video/x-raw,format=RGBA ! some-video-filter ! video/x-raw,format=NV12"
is a very common case and therefore such erroring at baseclass
does not seem to be a desired behavior.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2703>

22 months agod3d11compositor: Add support for crop meta
Seungha Yang [Thu, 21 Jul 2022 19:51:14 +0000 (04:51 +0900)]
d3d11compositor: Add support for crop meta

GstD3D11Converter supports cropping already. Cropping is just
a matter of setting source rectangle area to converter,
from d3d11 point of view

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2782>

22 months agoexamples: d3d11: Add GstD3D11Converter example
Seungha Yang [Sun, 17 Jul 2022 15:41:00 +0000 (00:41 +0900)]
examples: d3d11: Add GstD3D11Converter example

An example to demonstrate color space conversion, rescale and flip/rotation
using GstD3D11Converter

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767>

22 months agod3d11: Move GstD3D11Converter to gst-libs
Seungha Yang [Wed, 20 Jul 2022 20:13:21 +0000 (05:13 +0900)]
d3d11: Move GstD3D11Converter to gst-libs

The object is equivalent to GstVideoConverter but for D3D11.
Application can use this object directly for various conversions,
such as color space conversion, rescale, crop and flip/rotation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767>

22 months agod3d11: Define enum and flags types manually
Seungha Yang [Wed, 20 Jul 2022 20:40:45 +0000 (05:40 +0900)]
d3d11: Define enum and flags types manually

gnome.mkenums_simple() doesn't work well for GstD3D11, seems to
be confused by numeric representation of D3D11, must be a bug
in GLib or so. Just don't rely on the incomplete automagic.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767>

22 months agod3d11: Run gst-indent
Seungha Yang [Wed, 20 Jul 2022 20:39:58 +0000 (05:39 +0900)]
d3d11: Run gst-indent

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2767>

22 months agoopenmpt: update from now deprecated api
Jordan Petridis [Wed, 6 Jul 2022 13:14:13 +0000 (16:14 +0300)]
openmpt: update from now deprecated api

https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2721>

22 months agomsdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame
Fan F He [Fri, 29 Apr 2022 11:27:16 +0000 (19:27 +0800)]
msdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame

Enable these features for accurate bitrate control.
Feature introduction of LowDelayBRC, MaxFrameSizeI and MaxFrameSizeP could be found here:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md

Signed-off-by: Fan F He <fan.f.he@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2742>

22 months agod3d11converter: Use GstStructure to set initialization options
Seungha Yang [Tue, 19 Jul 2022 20:28:51 +0000 (05:28 +0900)]
d3d11converter: Use GstStructure to set initialization options

Runtime updatable options are exposed via object properties
but there are a few options which should be known at initialization
time. Use GstStructure to signal it and to be easily extensible

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776>

22 months agod3d11converter: Use primaries and transfer function compare methods
Seungha Yang [Mon, 18 Jul 2022 16:52:48 +0000 (01:52 +0900)]
d3d11converter: Use primaries and transfer function compare methods

Different enum values could be functionally equal, then we don't need
to do full conversion.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776>

22 months agod3d11format: Move DXGI color space mapping method to gst-libs
Seungha Yang [Sat, 16 Jul 2022 19:48:24 +0000 (04:48 +0900)]
d3d11format: Move DXGI color space mapping method to gst-libs

Expose color space mapping method to public so that application
can configure GstCaps or GstVideoInfo using DXGI color space

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2776>

22 months agogststructure: Add gst_structure_get_flags method
Seungha Yang [Mon, 18 Jul 2022 19:05:55 +0000 (04:05 +0900)]
gststructure: Add gst_structure_get_flags method

We don't prevent setting G_TYPE_FLAGS on GstStructure
but no helper method for getting the value.
Add a method similar to gst_structure_get_enum()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2770>

22 months agoaggregator: Reset EOS flag after receiving a stream-start event
Sebastian Dröge [Mon, 18 Jul 2022 12:46:21 +0000 (15:46 +0300)]
aggregator: Reset EOS flag after receiving a stream-start event

And also don't assert that there are no buffers queued up when handling
an EOS event. The pad's streaming thread might've already received a new
stream-start event and queued up a buffer in the meantime.

This still leaves a race condition where the srcpad task sees all pads
in EOS state and finishes the stream, while shortly afterwards a pad
might receive a stream-start event again, but this doesn't seem to be
solveable with the current aggregator design.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2769>

22 months agod3d11convert: Use new colorimetry compare function
Seungha Yang [Sat, 16 Jul 2022 15:33:55 +0000 (00:33 +0900)]
d3d11convert: Use new colorimetry compare function

Avoid conversion if both are functionally identical

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

22 months agovideo-converter: Use primaries compare function
Seungha Yang [Sat, 16 Jul 2022 15:30:10 +0000 (00:30 +0900)]
video-converter: Use primaries compare function

Avoid conversion if both color primaries are functionally equal

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

22 months agovideo-color: Add primaries and colorimetry compare functions
Seungha Yang [Sat, 16 Jul 2022 14:36:22 +0000 (23:36 +0900)]
video-color: Add primaries and colorimetry compare functions

SMPTE 170M and 240M use the same RGB and white point coordinates
and therefore both primaries can be considered functionally
equivalent.
Also, some transfer functions have different name but equal
gamma functions. Adding another colorimetry compare function
to deal with thoes cases at once

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

22 months agoqt: Fix another instance of Qt/GStreamer both defining `GLsync` differently
Sebastian Dröge [Fri, 15 Jul 2022 10:22:14 +0000 (13:22 +0300)]
qt: Fix another instance of Qt/GStreamer both defining `GLsync` differently

In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:87,
                 from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:14:
../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration 'typedef void* GLsync'
   40 | typedef gpointer GLsync;
      |                  ^~~~~~
In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengl.h:127,
                 from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsggeometry.h:44,
                 from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgnode.h:43,
                 from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgrendererinterface.h:43,
                 from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qquickwindow.h:44,
                 from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/QQuickWindow:1,
                 from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:6:
../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: note: previous declaration as 'typedef struct __GLsync* GLsync'
   24 | typedef struct __GLsync *GLsync;
      |                          ^~~~~~

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2763>

22 months agomeson: Improve certifi documentation on macOS
Nirbheek Chauhan [Sat, 2 Jul 2022 00:03:40 +0000 (05:33 +0530)]
meson: Improve certifi documentation on macOS

First, just installing certifi doesn't install the ca-cert in the
right location. The `Install Certificates.command` script also
symlinks the openssl cert.pem to the certifi ca cert file

Second, we can make it more likely that users will notice this if we
make it a warning. If we ever get a bug report about this despite
these measures, we can try to make this an error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2707>

22 months agod3d11testsrc: Fix SMPTE pattern rendering
Seungha Yang [Sun, 17 Jul 2022 14:58:19 +0000 (23:58 +0900)]
d3d11testsrc: Fix SMPTE pattern rendering

It was wrong vertex shader code

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2766>

22 months agoci: Fix project URL when triggering cerbero pipelines
Nirbheek Chauhan [Sat, 16 Jul 2022 05:32:51 +0000 (11:02 +0530)]
ci: Fix project URL when triggering cerbero pipelines

When merge request pipelines are triggered on the gstreamer namespace,
CI_PROJECT_URL will be gitlab.[...]/gstreamer/gstreamer but we need to
use gitlab.[...]/$USER/gstreamer because that's where the source
branch is located.

This exhibits as cerbero pipelines failing because it can't find the
specified branch:

https://gitlab.freedesktop.org/gstreamer/cerbero/-/pipelines/639379

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>

22 months agoosxaudio: Fix deprecation in macOS 12.0
Nirbheek Chauhan [Fri, 15 Jul 2022 01:10:05 +0000 (06:40 +0530)]
osxaudio: Fix deprecation in macOS 12.0

kAudioObjectPropertyElementMaster has been renamed to
kAudioObjectPropertyElementMain

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>

22 months agomeson: Fix compile failures on macOS in harfbuzz and pango
Nirbheek Chauhan [Fri, 15 Jul 2022 00:47:33 +0000 (06:17 +0530)]
meson: Fix compile failures on macOS in harfbuzz and pango

These patches are taken from upstream, and they fix compile failures
with latest clang. These can be dropped when upgrading these wraps.

This is currently causing a warning because we do not require the
version of meson that ships with this feature: 0.63.0. The version has
not been bumped because older Meson versions gracefully ignore the
wrap field, this fix is optional and only needed on macOS, and 0.63.0
is a very new release with a bug that partially breaks this feature:

https://github.com/mesonbuild/meson/pull/10602

We can consider bumping the requirement once 0.63.1 is released.

Also switch from git to tarballs, no reason to use git here anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>

22 months agomeson: Update some wraps, remove unused wraps
Nirbheek Chauhan [Fri, 15 Jul 2022 00:13:55 +0000 (05:43 +0530)]
meson: Update some wraps, remove unused wraps

These wraps have point releases on the wrapdb, so update them.

Remove pcre.wrap since it is pulled in automatically by glib and not
used by gstreamer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>

22 months agomeson: Fix warning about check kwarg
Nirbheek Chauhan [Fri, 15 Jul 2022 00:12:10 +0000 (05:42 +0530)]
meson: Fix warning about check kwarg

This place was missed when we fixed this everywhere else.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>

22 months agoapplemedia: Add HEVC support to vtenc and vtdec
Piotr Brzeziński [Wed, 13 Jul 2022 08:30:49 +0000 (10:30 +0200)]
applemedia: Add HEVC support to vtenc and vtdec

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2754>

22 months agod3d11: Move HLSL compiler to gst-libs
Seungha Yang [Wed, 15 Jun 2022 18:57:37 +0000 (03:57 +0900)]
d3d11: Move HLSL compiler to gst-libs

We should move this functionality to gst-libs so that GstD3D11Converter
can be moved to gst-libs.
Another advantage is that applications can call our
HLSL compiler wrapper method without any worry about OS version
dependent system installed HLSL library.
Note that there are multiple HLSL compiler library versions
on Windows and system installed one would be OS version dependent.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2760>

22 months agoglimagesink: only allow setting the GL display/context if it is a valid value
Matthew Waters [Tue, 12 Jul 2022 04:47:20 +0000 (14:47 +1000)]
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2750>

22 months agowebrtcbin: Add a signal to plug bandwidth estimator elements
Thibault Saunier [Sat, 4 Jun 2022 22:07:16 +0000 (18:07 -0400)]
webrtcbin: Add a signal to plug bandwidth estimator elements

We need GStreamer elements to do the bandwidth estimation as this way
they can also control the pacing of the transmission flow as specified
 in the [GCC] algorithm for example.

Bandwidth estimator element are placed right before the "RTPSession" as
an "rtp-aux-sender" element. This way they can use the "Transport-wide
Congestion Control" RTCP feedback messages through the "RTPTwcc" custom
events that are sent by the rtpsession.

Applications are responsible to react to the bandwidth estimator element
and set the encoder target bitrate etc... which means that we can not
pass an estimator as an element factory, so a signal as been chosen
instead.

[GCC]: https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2562>

22 months agotracers: leaks: fix object-refings.class flags
Corentin Damman [Tue, 12 Jul 2022 10:49:27 +0000 (10:49 +0000)]
tracers: leaks: fix object-refings.class flags

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2749>

22 months agodevicemonitor: Use a sync bus handler for the provider to avoid accumulating all...
Sebastian Dröge [Sat, 9 Jul 2022 15:05:58 +0000 (18:05 +0300)]
devicemonitor: Use a sync bus handler for the provider to avoid accumulating all messages until the provider is stopped

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/981

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2741>

22 months agosplitmuxsink: Fix memory leak
Jan Schmidt [Tue, 12 Jul 2022 11:19:35 +0000 (21:19 +1000)]
splitmuxsink: Fix memory leak

Fix a leak of the buffer info struct when reaching
EOS without data on the reference input.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2751>

22 months agortsp-client: Fix url for generating key in media factory
Bruce Liang [Tue, 12 Jul 2022 08:58:00 +0000 (16:58 +0800)]
rtsp-client: Fix url for generating key in media factory

The mount point at / can be accessed by both the URL forms rtsp://<IP>:<PORT> and rtsp://<IP>:<PORT>/.
To make media factory generating the same key for both the URL forms, the url sent to gst_rtsp_media_factory_construct() needs to be normalized first.
This commit creates a new GstRTSPUrl as the normalized url to send to gst_rtsp_media_factory_construct().

Fixes:https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1297

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2681>

22 months agoglupload: Add raw caps to sink pad when needed.
Jan Schmidt [Thu, 7 Jul 2022 13:40:22 +0000 (23:40 +1000)]
glupload: Add raw caps to sink pad when needed.

When checking if the current upload method can support
the requested caps filter in _transform_caps(),
make sure the sink pad reports raw caps.

Fixes #1311

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

22 months agogstglupload: Remove raw caps from individual methods
Jan Schmidt [Thu, 7 Jul 2022 13:54:44 +0000 (23:54 +1000)]
gstglupload: Remove raw caps from individual methods

Raw memory upload should always be the least preferred input
caps, only added by the raw memory uploader as the last thing
in the caps.

Caps negotiation should still choose raw data when it needs to,
and other upload methods that can accept raw data buffers will still do so.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

22 months agovideoaggregator: always convert when user provides converter-config
Mathieu Duponchelle [Mon, 11 Jul 2022 18:12:30 +0000 (20:12 +0200)]
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2746>

22 months agortpjitterbuffer: Fix calculation of RFC7273 RTP time period start
Sebastian Dröge [Fri, 24 Jun 2022 10:32:34 +0000 (13:32 +0300)]
rtpjitterbuffer: Fix calculation of RFC7273 RTP time period start

This has to be based directly on the current estimated clock time and
has to allow for negative period starts.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2655>

22 months agoh265decoder: Report latency
Seungha Yang [Thu, 7 Jul 2022 15:16:02 +0000 (00:16 +0900)]
h265decoder: Report latency

Similar to that of h264decoder

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2726>

22 months agoglwindow_cocoa: fix a leak of the GstNSView
Andoni Morales Alastruey [Fri, 8 Jul 2022 18:49:21 +0000 (20:49 +0200)]
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>

22 months agogl: Fix leak of the whole CGL context
Andoni Morales Alastruey [Fri, 8 Jul 2022 18:38:51 +0000 (20:38 +0200)]
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>

22 months agova: baseenc: Do not use codec frame structure again after finish_frame().
He Junyan [Fri, 8 Jul 2022 14:05:12 +0000 (22:05 +0800)]
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>

22 months agova: baseenc: Do not clear the codec frame twice when error.
He Junyan [Fri, 8 Jul 2022 13:57:40 +0000 (21:57 +0800)]
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>

22 months agofluiddec: Remove workaround for version 1.1.9
Jordan Petridis [Tue, 5 Jul 2022 15:21:12 +0000 (18:21 +0300)]
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>

22 months agofluidsynth: update from now deprecated api
Jordan Petridis [Tue, 5 Jul 2022 14:32:12 +0000 (17:32 +0300)]
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>

22 months agobase: lookup RGB format without alpha
Marc Leeman [Tue, 14 Jun 2022 10:22:22 +0000 (12:22 +0200)]
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>

22 months agod3d11: Use scoped device lock
Seungha Yang [Thu, 7 Jul 2022 17:24:56 +0000 (02:24 +0900)]
d3d11: Use scoped device lock

Make code simpler and more deadlock-free

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2728>

22 months agogstinfo: Parse "NONE" as a valid level name
Jan Alexander Steffens (heftig) [Fri, 8 Jul 2022 14:37:51 +0000 (16:37 +0200)]
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>

22 months agopython: Fix the audiotestsrc example
Thibault Saunier [Tue, 28 Jun 2022 20:38:09 +0000 (16:38 -0400)]
python: Fix the audiotestsrc example

Since 830d1595b94ee855b664b2101f0832fbd0181b9c AudioInfo::from_caps has been hidden in python

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2675>

22 months agopython: Add a Gst.init_python function to be called from plugins
Thibault Saunier [Tue, 28 Jun 2022 20:35:58 +0000 (16:35 -0400)]
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>

22 months agopython: Do not call gst_init when it is already is_initialized
Thibault Saunier [Tue, 28 Jun 2022 15:02:37 +0000 (11:02 -0400)]
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>

22 months agolibav: Fix for APNG encoder property registration
Seungha Yang [Thu, 7 Jul 2022 13:16:30 +0000 (22:16 +0900)]
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>

22 months agoqsvencoder: Fix for latency report when B-frame is enabled
Seungha Yang [Fri, 8 Jul 2022 09:53:01 +0000 (18:53 +0900)]
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>

22 months agoqsvencoder: Do not query again if previous call succeeded
Seungha Yang [Fri, 8 Jul 2022 10:05:19 +0000 (19:05 +0900)]
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>

22 months agod3d11screencapturesrc: Set colorimetry to caps
Seungha Yang [Thu, 7 Jul 2022 18:38:30 +0000 (03:38 +0900)]
d3d11screencapturesrc: Set colorimetry to caps

Make use of reported DXGI colorspace if possible

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2729>

22 months agod3d11: Update colorspace map
Seungha Yang [Fri, 8 Jul 2022 11:11:00 +0000 (20:11 +0900)]
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>

22 months agod3d11: Add an utility method for DXGI colorspace conversion
Seungha Yang [Thu, 7 Jul 2022 19:37:33 +0000 (04:37 +0900)]
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>

22 months agod3d11: Serialize ensure_element_data() call
Seungha Yang [Thu, 7 Jul 2022 16:30:13 +0000 (01:30 +0900)]
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>

22 months agoproxysink: Fix GstProxySrc leak
Seungha Yang [Wed, 6 Jul 2022 17:17:56 +0000 (02:17 +0900)]
proxysink: Fix GstProxySrc leak

Clear weak pointer to peer src when disposing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1552>

22 months agoproxysink: Make sure stream-start and caps events are forwarded
Seungha Yang [Tue, 5 Jul 2022 18:14:25 +0000 (03:14 +0900)]
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>

22 months agosplitmuxsink: Don't crash on EOS without buffer
Seungha Yang [Wed, 13 Apr 2022 16:19:51 +0000 (01:19 +0900)]
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>

22 months agowebrtc: implement support for asynchronous host resolution
Matthew Waters [Fri, 4 Mar 2022 03:28:21 +0000 (14:28 +1100)]
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>