platform/upstream/gstreamer.git
22 months agowebrtcbin: Support for setting kind attribute on RTCRtpStreamStats
Philippe Normand [Thu, 22 Dec 2022 21:29:39 +0000 (21:29 +0000)]
webrtcbin: Support for setting kind attribute on RTCRtpStreamStats

The attribute maps the `kind` property of the associated transceiver.

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

22 months agoci: mark valgrind ges job as allowed to fail
Tim-Philipp Müller [Thu, 22 Dec 2022 15:51:46 +0000 (15:51 +0000)]
ci: mark valgrind ges job as allowed to fail

It's extremely flaky, especially with idle runners, and
it's not limited to just a single test.

Mark as allowed to fail until someone starts caring about it.

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

22 months agoREADME: Several updates to sync with status quo
Nirbheek Chauhan [Sun, 18 Dec 2022 16:39:50 +0000 (22:09 +0530)]
README: Several updates to sync with status quo

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

22 months agod3d11memory: Fix typo in vfunc name
Seungha Yang [Thu, 22 Dec 2022 16:00:57 +0000 (01:00 +0900)]
d3d11memory: Fix typo in vfunc name

s/set_actvie/set_active/g

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

22 months agonvcudaenc: Don't use default CUDA stream
Seungha Yang [Mon, 19 Dec 2022 10:53:28 +0000 (19:53 +0900)]
nvcudaenc: Don't use default CUDA stream

Set non-default CUDA stream via NvEncSetIOCudaStreams() if possible,
so that NVENC's internal kernel function can run on the given CUDA
stream instead of default CUDA stream

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

22 months agoqtmux: Fix buffer leak in fragment_buffers
Patricia Muscalu [Thu, 22 Dec 2022 10:16:26 +0000 (11:16 +0100)]
qtmux: Fix buffer leak in fragment_buffers

When pushing buffers from one of the sink pads fail,
make sure that all buffers added to fragment_buffers on other pads
are freed as well.

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

22 months agoqtmux: For video with N/1001 framerates use N as timescale instead of centiframes
Mathieu Duponchelle [Mon, 19 Sep 2022 19:11:39 +0000 (21:11 +0200)]
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/3049>

22 months agoamfcodec: add support of AMF AV1 encoder
Evgeny Pavlov [Wed, 14 Dec 2022 09:35:53 +0000 (10:35 +0100)]
amfcodec: add support of AMF AV1 encoder

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

22 months agocudabasetransform: Update CUDA stream on context update
Seungha Yang [Wed, 21 Dec 2022 15:22:46 +0000 (00:22 +0900)]
cudabasetransform: Update CUDA stream on context update

CUDA stream must be associated with updated CUDA context

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

22 months agova: Delay the VAProcPipelineCaps query after context created.
He Junyan [Wed, 21 Dec 2022 06:36:31 +0000 (14:36 +0800)]
va: Delay the VAProcPipelineCaps query after context created.

The VAAPI vaQueryVideoProcPipelineCaps() requires the context as the
parameter. So far, we always pass VA_INVALID_ID and it can succeed.
But the API does not say that and in theory, a valid context is required.
Now the new platform really needs a valid context and so we have to
delay that query until the context is created.

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

22 months agoqmlglsrc: Handle HiDPI scaling
Jan Schmidt [Tue, 20 Dec 2022 15:37:58 +0000 (02:37 +1100)]
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/3612>

22 months agoqmlglsrc: Unmap buffer before adding sync meta
Jan Schmidt [Tue, 20 Dec 2022 15:32:41 +0000 (02:32 +1100)]
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/3612>

22 months agoqmlglsrc: Stop when basesrc calls unlock()
Jan Schmidt [Tue, 20 Dec 2022 15:31:05 +0000 (02:31 +1100)]
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/3612>

22 months agofdsrc,fdsink: Set binary mode on FD
Hiero32 [Mon, 19 Dec 2022 18:54:46 +0000 (03:54 +0900)]
fdsrc,fdsink: Set binary mode on FD

Default mode of STD handles on Windows is text mode, and OS will
insert CRLF sequence by default.

Co-authored-by: Seungha Yang <seungha@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3070>

22 months agocoreelements: Use G_OS_WIN32 macro
Hiero32 [Mon, 19 Dec 2022 18:51:45 +0000 (03:51 +0900)]
coreelements: Use G_OS_WIN32 macro

* HAVE_WIN32 is not defined elsewhere
* Enables fdsrc/fdsink for MinGW build as well

Co-authored-by: Seungha Yang <seungha@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3070>

22 months agonvdecoder: Use own CUDA stream in GL output path
Seungha Yang [Tue, 20 Dec 2022 15:20:17 +0000 (00:20 +0900)]
nvdecoder: Use own CUDA stream in GL output path

Use the same CUDA stream passed to CuvidMapVideoFrame()

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

22 months agoFix API visibility macros
Xavier Claessens [Tue, 13 Dec 2022 13:58:43 +0000 (08:58 -0500)]
Fix API visibility macros

This copies the logic from GLib discussed there:
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2936

Beside being simpler, it also fix all public symbols being annotated
with dllexport when doing a static build, as discovered there:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3540#note_1678335

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

22 months agoavviddec: Disable AV1 decoder
Sebastian Dröge [Tue, 20 Dec 2022 12:10:01 +0000 (14:10 +0200)]
avviddec: Disable AV1 decoder

We have various elements for AV1 decoding, the ffmpeg one only works if
hardware support is available and seems to require special signalling.

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

22 months agoexamples: webrtc: Add handling of the LATENCY messages to the Rust examples
Sebastian Dröge [Tue, 20 Dec 2022 11:10:27 +0000 (13:10 +0200)]
examples: webrtc: Add handling of the LATENCY messages to the Rust examples

Without this the configured latency on the pipeline will be wrong.

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

22 months agoexamples: webrtc: Update dependencies
Sebastian Dröge [Tue, 20 Dec 2022 11:06:43 +0000 (13:06 +0200)]
examples: webrtc: Update dependencies

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

22 months agoexamples: webrtc: Remove the bus watch at the end
Sebastian Dröge [Tue, 20 Dec 2022 11:03:44 +0000 (13:03 +0200)]
examples: webrtc: Remove the bus watch at the end

Otherwise a file descriptor will be leaked.

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

22 months agoexamples: webrtc: Add handling of the LATENCY messages to the C examples
Sebastian Dröge [Tue, 20 Dec 2022 11:03:15 +0000 (13:03 +0200)]
examples: webrtc: Add handling of the LATENCY messages to the C examples

Without this the configured latency on the pipeline will be wrong.

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

22 months agoexamples: webrtc: Add bus handling to the Android and C sendrecv examples
Sebastian Dröge [Tue, 20 Dec 2022 11:02:08 +0000 (13:02 +0200)]
examples: webrtc: Add bus handling to the Android and C sendrecv examples

Without a bus, messages will just pile up and errors are not handled at
all. Also without handling the LATENCY messages the latency configured
on the pipeline will be wrong.

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

22 months agonvdec: Don't use default CUDA stream
Seungha Yang [Mon, 19 Dec 2022 09:41:46 +0000 (18:41 +0900)]
nvdec: Don't use default CUDA stream

NVDEC launches CUDA kernel function (ConvertNV12BLtoNV12 or so)
when CuvidMapVideoFrame() is called. Which seems to be
NVDEC's internal post-processing kernel function, maybe
to convert tiled YUV to linear YUV format or something similar.

A problem if we don't pass CUDA stream to the CuvidMapVideoFrame()
call is that the NVDEC's internel kernel function will use default CUDA stream.
Then lots of the other CUDA API calls will be blocked/serialized.

To avoid the unnecessary blocking, we should pass our own
CUDA stream object to the CuvidMapVideoFrame() call

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

22 months agourisourcebin: Modify check for streams-aware adaptive demuxers
Edward Hervey [Mon, 19 Dec 2022 10:49:32 +0000 (11:49 +0100)]
urisourcebin: Modify check for streams-aware adaptive demuxers

Using the "GstBin" flags to check if an adaptive demuxer is streams-aware isn't
a good idea since it prevents using elements which aren't bins.

Instead we see if a collection was posted by the demuxer by the time a pad is
added.

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

22 months agovideoconvertscale: fix valid_tags NULL-terminated array of strings
Philipp Zabel [Mon, 19 Dec 2022 14:22:15 +0000 (15:22 +0100)]
videoconvertscale: fix valid_tags NULL-terminated array of strings

The valid_tags array of strings must be NULL-terminated,
as it is passed to the g_strv_contains() function.

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

22 months agouridecodebin3: fix typo in doc
Guillaume Desmottes [Mon, 19 Dec 2022 13:24:06 +0000 (14:24 +0100)]
uridecodebin3: fix typo in doc

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

22 months agodocs: Update iPhoneOS deployment target to 11.0
Nirbheek Chauhan [Sat, 10 Dec 2022 15:46:41 +0000 (21:16 +0530)]
docs: Update iPhoneOS deployment target to 11.0

https://gitlab.freedesktop.org/nirbheek/cerbero/-/jobs/33292703

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

22 months agomeson: Update lame to -7 which contains the def file fix
Nirbheek Chauhan [Sun, 18 Dec 2022 20:13:08 +0000 (01:43 +0530)]
meson: Update lame to -7 which contains the def file fix

Continuation from https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3579

See: https://github.com/mesonbuild/wrapdb/pull/835
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3598>

22 months agompegts: Always clear packetizer on DISCONT push mode
Edward Hervey [Fri, 16 Dec 2022 14:03:12 +0000 (15:03 +0100)]
mpegts: Always clear packetizer on DISCONT push mode

If a discontinuity is detected in push mode, we need to clear the cached section
observations since they might have potentially changed.

This was only done properly when operating with TIME segments (dvb, udp,
adaptive demuxers, ...) but not with BYTE segments (such as with custom app/fd
sources).

We still don't want to flush out the PCR observations, since this might be
needed for seeking in push-based BYTE sources.

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

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

22 months agosubprojects: lame: Back to lame_3.100-5
Seungha Yang [Thu, 15 Dec 2022 20:25:54 +0000 (05:25 +0900)]
subprojects: lame: Back to lame_3.100-5

Partial revert of the commit of fc22bb8794e8b19e4fa54135f0ac69c861cafad6
It causes DLL loading failure on Windows. Reverting it for now until
it's fixed in upstream wrapdb

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

22 months agogst-integration-testsuites: Update cenc_audio_esds_property_overrides expected output...
Sebastian Dröge [Sat, 17 Dec 2022 17:30:51 +0000 (19:30 +0200)]
gst-integration-testsuites: Update cenc_audio_esds_property_overrides expected output file

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

22 months agoqtdemux: Always use `tfdt` if available in BYTE segments
Sebastian Dröge [Fri, 16 Dec 2022 15:27:33 +0000 (17:27 +0200)]
qtdemux: Always use `tfdt` if available in BYTE segments

This reverts the decision from
  https://bugzilla.gnome.org/show_bug.cgi?id=754230
where it was decided that we rather play safe and only use the `tfdt` if
it is "significantly different" to the sum of sample durations.

As the specification says

    If the time expressed in the track fragment decode time (‘tfdt’) box
    exceeds the sum of the durations of the samples in the preceding
    movie and movie fragments, then the duration of the last sample
    preceding this track fragment is extended such that the sum now
    equals the time given in this box.

we have to use the `tfdt` in general to allow for it to signal gaps in
the stream.

A muxer producing fragments might not yet know the full duration of the
last sample of a previous fragment if the next fragment starts with a
gap, and knowing the actual start of the next fragment would potentially
require to violate latency requirements.

Additionally, the existence of `tfdt` allows to avoid accumulating
rounding errors from summing up the durations.

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

22 months agobasesrc: respect FIXED_CAPS flag in caps query implementation
Mathieu Duponchelle [Sat, 17 Dec 2022 00:36:49 +0000 (00:36 +0000)]
basesrc: respect FIXED_CAPS flag in caps query implementation

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

22 months agod3d11videosink: Fixing focus lost on desktop layout change
Seungha Yang [Sat, 17 Dec 2022 11:04:01 +0000 (20:04 +0900)]
d3d11videosink: Fixing focus lost on desktop layout change

Watch all message on the window thread, instead of internal window only.
Otherwise, some global window messages, such as desktop layout change,
wouldn't be handled by our window.

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

22 months agomeson: Add a patch that fixes pangocairo usage in gst-plugins-rs
Nirbheek Chauhan [Sat, 17 Dec 2022 02:05:48 +0000 (07:35 +0530)]
meson: Add a patch that fixes pangocairo usage in gst-plugins-rs

Also remove an unused patch.

https://gitlab.gnome.org/GNOME/pango/-/merge_requests/665

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

22 months agomacos-bison-binary: Remove warning when running on arm64
Nirbheek Chauhan [Fri, 16 Dec 2022 22:15:23 +0000 (03:45 +0530)]
macos-bison-binary: Remove warning when running on arm64

The x86_64 bison works fine out of the box.

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

22 months agoavfvideosrc: Report latency when doing screen capture
Nirbheek Chauhan [Fri, 16 Dec 2022 19:31:00 +0000 (01:01 +0530)]
avfvideosrc: Report latency when doing screen capture

There is no `device` when doing screen capture, but there is always an
`input`, so use that to decide when we can reply to a latency query.
Without this, the latency query just fails.

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

22 months agovaav1dec: Remove double caps unref.
Victor Manuel Jaquez Leal [Fri, 16 Dec 2022 17:15:04 +0000 (18:15 +0100)]
vaav1dec: Remove double caps unref.

There was a duplicated caps unref raising a warning.

Also it reorgs the sorrounding code for simplicity.

Fixes: #1196
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3587>

22 months agod3d11videosink: Move potentially time-consuming operations to ::prepare()
Seungha Yang [Thu, 15 Dec 2022 17:52:08 +0000 (02:52 +0900)]
d3d11videosink: Move potentially time-consuming operations to ::prepare()

Move following tasks to ::prepare() from ::show_frame()
* CPU -> GPU upload
* GstD3D11Window object setup, including input caps change handling

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

22 months agod3d11videosink: Call ShowWindow() from window thread
Seungha Yang [Fri, 16 Dec 2022 12:42:50 +0000 (21:42 +0900)]
d3d11videosink: Call ShowWindow() from window thread

... when rendering on external HWND. ShowWindow() will cause
synchronous message passing to window thread and then can be blocked.
At the same time, window thread can wait for GStreamer thread.
Instead of the synchronous call, queue the task to window message
and performs from the window thread.

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

22 months agoChange GstSdp.sdp_message_parse_buffer to GstSdp.SDPMessage.new_from_text in examples
Seungmin Kim [Mon, 28 Nov 2022 14:54:27 +0000 (14:54 +0000)]
Change GstSdp.sdp_message_parse_buffer to GstSdp.SDPMessage.new_from_text in examples

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

22 months agotests: Cast drop-messages-interval type properly
A. Wilcox [Fri, 16 Dec 2022 07:00:46 +0000 (01:00 -0600)]
tests: Cast drop-messages-interval type properly

The rtpjitterbuffer test drop_messages_interval uses a GstClockTime for
the message drop interval.  This property is defined as a guint.  On
systems with 64-bit time_t but 32-bit uint, this can cause the
g_object_set function to fail to read the arguments properly.

Fixes: #1656
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3580>

22 months agod3d11videosink: Fix deadlock when parent window is busy
Seungha Yang [Wed, 14 Dec 2022 16:15:10 +0000 (01:15 +0900)]
d3d11videosink: Fix deadlock when parent window is busy

Deadlock sequence:
* From a streaming thread, d3d11videosink sends synchronous message
  to the parent window, so that internal (child) window can be
  constructed on the parent window's thread
* App thread (parent window thread) is waiting for pipeline's
  state change (to GST_STATE_NULL) but streaming thread is
  blocked and waiting for app thread

To avoid the deadlock, GstD3D11WindowWin32 should send message
to the parent window asynchronously.

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

22 months agobase:navigation: Cleanup navigation key modifiers enum
Thibault Saunier [Tue, 13 Dec 2022 11:23:56 +0000 (12:23 +0100)]
base:navigation: Cleanup navigation key modifiers enum

We were exposing the 'ALT' modifier as if we were guaranteeing its
accuracy but truth is we were only exposing configuration dependent
values.

Make the API simpler for now, the same way as Gtk3 was exposing it, and
when we have time to guarantee more values by making them take backends
configuration into account, we will expose those values in a accurate
way.

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

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

22 months agoglupload: add CAN_ACCEPT_RAW to all dma-buf uploaders
Matthew Waters [Wed, 30 Nov 2022 04:04:09 +0000 (04:04 +0000)]
glupload: add CAN_ACCEPT_RAW to all dma-buf uploaders

Fixes cases where a dma-buf would be uploaded using direct-dma-buf
into an external-oes texture (using video/x-raw caps) and then
attempting to reconfigure the same source.

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

22 months agogst: handle combinations in gst_stream_type_get_name()
Hosang Lee [Wed, 27 Jul 2022 15:43:42 +0000 (00:43 +0900)]
gst: handle combinations in gst_stream_type_get_name()

This should handle the majority of the valid stream cases.
The element setting the stream type may set each type separately.

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

22 months agoglvideomixer: override sink pad template
Guillaume Desmottes [Fri, 3 Jun 2022 09:40:35 +0000 (11:40 +0200)]
glvideomixer: override sink pad template

Allow us to pass the GType of its pad and so
improve the documentation when inspecting glvideomixer.

Fix #1253

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

22 months agoqtdemux: Clear protection events when we get new ones
Xabier Rodriguez Calvar [Fri, 9 Dec 2022 10:35:25 +0000 (11:35 +0100)]
qtdemux: Clear protection events when we get new ones

If we keep the old events they can be end up being passed to the app, that could
discard the protection information because it has been seen before.

Drive by improvement: use g_queue_clear_full instead of foreach+clear for
protection events.

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

22 months agowebrtc: implement support for msid values
Matthew Waters [Tue, 18 Oct 2022 01:17:04 +0000 (12:17 +1100)]
webrtc: implement support for msid values

Local msid values are taken from sink pad property, or fallback to the
previously used cname.

The remote msid values are exposed on the relevant src pads.

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

22 months agomacos: Add wrapper API to run a NSApplication in the main thread
Piotr Brzeziński [Tue, 13 Dec 2022 17:42:11 +0000 (18:42 +0100)]
macos: Add wrapper API to run a NSApplication in the main thread

On macOS, a Cocoa event loop is needed in the main thread to ensure
things like opening a GL window work correctly. In the past, this was
patched into glib via Cerbero, but that prevented us from updating it.
This workaround simply runs an NSApplication and then calls the
main function on a secondary thread, allowing GStreamer to correctly
display windows and/or system permission prompts, for example.

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

22 months agosystemclock: Use `futex_time64` syscall if available (32-bit systems) and use correct...
Sebastian Dröge [Mon, 12 Dec 2022 09:34:51 +0000 (11:34 +0200)]
systemclock: Use `futex_time64` syscall if available (32-bit systems) and use correct `struct timespec` definition

See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634

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

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

22 months agogst_init: Removed wrong warning in docstring
sezanzeb [Sat, 15 Aug 2020 12:53:13 +0000 (12:53 +0000)]
gst_init: Removed wrong warning in docstring

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

22 months agoh264parser: Update doc for GST_H264_FRMAE_PACKING_TOP_BOTTOM
Seungha Yang [Mon, 12 Dec 2022 19:31:24 +0000 (04:31 +0900)]
h264parser: Update doc for GST_H264_FRMAE_PACKING_TOP_BOTTOM

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

22 months agoh264parser: typo fix in enum value
Brad Hards [Sun, 7 Nov 2021 00:18:15 +0000 (11:18 +1100)]
h264parser: typo fix in enum value

Old value is marked deprecated, new enum with same entry is added. Should be binary compatible.

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

22 months agovideo-format: Add macro checking for validity of GstVideoFormatInfo
Philippe Normand [Mon, 12 Dec 2022 13:43:30 +0000 (13:43 +0000)]
video-format: Add macro checking for validity of GstVideoFormatInfo

Mostly to maintain consistency with the GST_AUDIO_FORMAT_INFO_IS_VALID_RAW
macro.

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

22 months agoaudio-format: Add macro checking for validity of GstAudioFormatInfo
Philippe Normand [Wed, 27 Jul 2022 08:39:52 +0000 (09:39 +0100)]
audio-format: Add macro checking for validity of GstAudioFormatInfo

`gst_audio_format_info_fill_silence()` not properly checking the validity of its
input may lead it into an infinite loop.

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

22 months agowebrtc/signalling: Give a helpful error when starting a double-session
Nirbheek Chauhan [Mon, 12 Dec 2022 14:39:00 +0000 (20:09 +0530)]
webrtc/signalling: Give a helpful error when starting a double-session

If the peer is already in a session and tries to start a new one, give
them a helpful error.

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

22 months agogst-examples: webrtc: signalling: simple-server Fix condition when calling a busy...
byran77 [Mon, 15 Nov 2021 09:04:07 +0000 (17:04 +0800)]
gst-examples: webrtc: signalling: simple-server Fix condition when calling a busy peer

When a session request is coming in, ERROR occurs when the callee is busy.
But peer_status is the status of the caller, which is of course None when
calling someone, while self.peers[callee_id][2] is that of the callee.

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

22 months agojpegdec: Enable packetized if sink caps contains parsed as true.
Víctor Manuel Jáquez Leal [Sun, 22 May 2022 08:46:12 +0000 (10:46 +0200)]
jpegdec: Enable packetized if sink caps contains parsed as true.

jpegdec is capable to parse input frames, but if jpegparse is before,
there's no need to reparse frames. This patch configure jpegdec as
packetized, skipping parsing, if negotiated sink caps has the boolean
field 'parsed' as true.

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

22 months agompegts: Handle when iconv doesn't support ISO 6937
A. Wilcox [Sat, 22 Oct 2022 03:46:16 +0000 (22:46 -0500)]
mpegts: Handle when iconv doesn't support ISO 6937

Systems like musl libc don't support ISO 6937 in iconv.  This ensures
that the MPEG-TS plugin can cope with that.  There is existing support
in the plugin for other methods, so it seems to have been the original
intent anyway.

Fixes: #1314
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3245>

22 months agopulsesink: Fix occasional period of silence on resume
Henry Hoegelow [Tue, 27 Sep 2022 09:44:51 +0000 (09:44 +0000)]
pulsesink: Fix occasional period of silence on resume

According to comment in gst_pulsering_stream_latency_cb, latency updates
happen every 100 ms. The code in gst_pulsering_stream_latency_cb does
not care about the actual state of the ringbuffer, pbuf->acquired or
not.
Thus, every 100 ms the ringbuf->segdone may be set, even though the
object itself might be in 'destroyed' state. On next
gst_pulseringbuffer_acquire the segdone is not touched, so playback may
resume with invalid/wrong segdone value. This finally leads to a period
of silence playing after resuming the pipeline.

The problem was found on 'not-yet-released'-hardware and so far was not
reproducible on desktop computer.

Removing the callback as long as the ringbuffer is not in 'acquired'
state solves the problem reliably on the hardware device that the issue
was detected on.

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

23 months agotimeoverlay: fix pad leak
Tim-Philipp Müller [Sun, 11 Dec 2022 17:36:53 +0000 (17:36 +0000)]
timeoverlay: fix pad leak

Spotted by Jiri Uncovsky.

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

23 months agovaallocator: Fix gi annotations.
Víctor Manuel Jáquez Leal [Sun, 11 Dec 2022 09:12:25 +0000 (10:12 +0100)]
vaallocator: Fix gi annotations.

Remove spurious types and skip functions that returns VASurfaceID
which isn't exposed to introspection.

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

23 months agozxing: update to 1.4.0 tag
Stéphane Cerveau [Tue, 22 Nov 2022 11:32:52 +0000 (12:32 +0100)]
zxing: update to 1.4.0 tag

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

23 months agovaapi: prefix USE_FOO defines to fix build with mesa 22.3.0
Tim-Philipp Müller [Sat, 10 Dec 2022 13:11:08 +0000 (13:11 +0000)]
vaapi: prefix USE_FOO defines to fix build with mesa 22.3.0

Apparently mesa 22.3.0 has updated the egl headers, and eglplatform.h now
contains commit
https://github.com/KhronosGroup/EGL-Registry/pull/130/commits/3670d645f4a26a0a9e87e7f3a8608e7cc1d53b5b
after which xlib headers don't get included by default anymore but are
dependent upon whether USE_X11 was defined.

This breaks headless builds of gstreamer-vaapi because we always define
an internal define USE_X11 as either 1 or 0.

Change these defines to GST_VAAPI_USE_XYZ instead to avoid this.

Fixes #1634

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

23 months agodocs: specify possibility of a NULL return
Hugo Svirak [Wed, 7 Dec 2022 21:57:31 +0000 (21:57 +0000)]
docs: specify possibility of a NULL return

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

23 months agoci: pin hotdoc to 0.13.7 for now, 0.14 has a regression
Nirbheek Chauhan [Mon, 5 Dec 2022 12:40:14 +0000 (18:10 +0530)]
ci: pin hotdoc to 0.13.7 for now, 0.14 has a regression

```
ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstGLSinkBin -> None (GstGLSinkBin) could not be resolved
ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstRTPMux -> None (GstRTPMux) could not be resolved
ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstSRTSink -> None (GstSRTSink) could not be resolved
ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstSRTSrc -> None (GstSRTSrc) could not be resolved
```

Same change was already made in the 1.20 branch:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1582#note_1669723

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

23 months agoci: Bump image tags to rebuild new fedora / windows images
Nirbheek Chauhan [Mon, 5 Dec 2022 12:40:14 +0000 (18:10 +0530)]
ci: Bump image tags to rebuild new fedora / windows images

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

23 months agomeson: Update some more wraps
Nirbheek Chauhan [Mon, 5 Dec 2022 12:28:23 +0000 (17:58 +0530)]
meson: Update some more wraps

At least the libxml2 update fixes a failure on macOS, the rest are
happening for free.

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

23 months agompegts: Check continuity counter on section streams
Edward Hervey [Tue, 6 Dec 2022 10:30:47 +0000 (11:30 +0100)]
mpegts: Check continuity counter on section streams

This wasn't really done, and is needed in order to detect potential section
changes for sections that have got identical information (such as when switching
between streams that have the same PAT/PMT pid and subtable information).

Other checks exist in tsbase to detect if the "new" PAT/PMT really is an update or not.

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

23 months agortpvp9depay: expose keyframe-related properties
Mathieu Duponchelle [Fri, 14 May 2021 21:06:43 +0000 (23:06 +0200)]
rtpvp9depay: expose keyframe-related properties

This simply brings in the wait-for-keyframe and request-keyframe
properties from rtpvp8depay.

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

23 months agomultiqueue: update for renamed log id macros
Tim-Philipp Müller [Sat, 10 Dec 2022 11:33:38 +0000 (11:33 +0000)]
multiqueue: update for renamed log id macros

See #1635.

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

23 months agoinfo: rename new log macros from GST_*_OBJECT_ID -> GST_*_ID
Tim-Philipp Müller [Sat, 10 Dec 2022 11:32:25 +0000 (11:32 +0000)]
info: rename new log macros from GST_*_OBJECT_ID -> GST_*_ID

Fixes #1635

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

23 months agogstplugin: Handle static plugins in gst_plugin_load_by_name()
Jan Schmidt [Fri, 9 Dec 2022 16:54:23 +0000 (03:54 +1100)]
gstplugin: Handle static plugins in gst_plugin_load_by_name()

gst_plugin_load_by_name() assumed a plugin has a filename,
which isn't true for static plugins, leading to criticals.

If a plugin is already loaded, just return the loaded plugin,
which makes it work for static plugins as well as saving a
moment for already-loaded dynamic plugins.

Add locking in gst_plugin_is_loaded(), as a plugin may be
still being loaded in another thread.

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

23 months agoexamples: webrtc: fix unidirectional pipeline
Guillaume Desmottes [Fri, 9 Dec 2022 12:49:44 +0000 (13:49 +0100)]
examples: webrtc: fix unidirectional pipeline

'autoaudiosrc' does not have a 'is-live' property.

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

23 months agocuda: Fix runtime compiler library loading on Windows
Seungha Yang [Wed, 7 Dec 2022 21:05:25 +0000 (06:05 +0900)]
cuda: Fix runtime compiler library loading on Windows

The cuda is a part of GPU driver but runtime compiler is a part of
cuda toolkit, which means the version number can be different.

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

23 months agocuda: Hide memory copy util function
Seungha Yang [Wed, 7 Dec 2022 20:58:48 +0000 (05:58 +0900)]
cuda: Hide memory copy util function

The method was intended to be used by only cudaupload/download elements
and not ready to be a part of public API

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

23 months agoksvideosrc: Warn for deprecated plugin use
Seungha Yang [Wed, 7 Dec 2022 19:32:47 +0000 (04:32 +0900)]
ksvideosrc: Warn for deprecated plugin use

This plugin should not be used any more

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

23 months agowinscreencap: Warn for deprecated plugin use
Seungha Yang [Wed, 7 Dec 2022 19:25:55 +0000 (04:25 +0900)]
winscreencap: Warn for deprecated plugin use

This plugin should not be used any more

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

23 months agoproxysink: Post EOS message on EOS event
Seungha Yang [Sat, 26 Nov 2022 15:26:22 +0000 (00:26 +0900)]
proxysink: Post EOS message on EOS event

proxysink is actual sink (GST_ELEMENT_FLAG_SINK flag has configured)
so it should post EOS message.

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

23 months agoqtdemux: exit when protection caps are not defined during PIFF parsing
Jacek Skiba [Wed, 7 Dec 2022 08:47:49 +0000 (09:47 +0100)]
qtdemux: exit when protection caps are not defined during PIFF parsing

Reproduction testcase (uses PlayReady):
https://developers.canal-plus.com/rx-player/upc/?appTileLocation=[object%20Object]

In test streams we are using PIFF box, but caps did not had
present GST_PROTECTION_SYSTEM_ID_CAPS_FIELD. In consequence, invalid
system_id was returned which caused SIGSEGV crash.

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

23 months agoh264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it
Thibault Saunier [Wed, 7 Dec 2022 15:28:55 +0000 (12:28 -0300)]
h264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it

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

23 months agotextrender: Negotiate caps on a GAP event if none were negotiated yet
Sebastian Dröge [Wed, 7 Dec 2022 12:49:05 +0000 (14:49 +0200)]
textrender: Negotiate caps on a GAP event if none were negotiated yet

Otherwise downstream wouldn't have received a segment event either and
wouldn't know what to do with the gap event

And also forward any pending segment event.

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

23 months agoh265decoder: Do not abort when failed to prepare ref pic set
Marek Olejnik [Thu, 1 Dec 2022 17:35:07 +0000 (19:35 +0200)]
h265decoder: Do not abort when failed to prepare ref pic set

Currently the element calls abort when failed to prepare reference
picture set. This can happent when the input stream is somehow
corrupted, like a rtsp strem with lost packets. Now it will only
return with GST_FLOW_ERROR instead of terminating whole process.

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

23 months agomeson: fix check for pthread_setname_np()
Tim-Philipp Müller [Wed, 7 Dec 2022 11:49:40 +0000 (11:49 +0000)]
meson: fix check for pthread_setname_np()

Need to define _GNU_SOURCE.

Fixes #1542

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

23 months agodvbsubenc: Forward GAP events as-is if we wouldn't produce an end packet and are...
Sebastian Dröge [Wed, 7 Dec 2022 08:21:52 +0000 (10:21 +0200)]
dvbsubenc: Forward GAP events as-is if we wouldn't produce an end packet and are not in the middle of an existing subtitle

An end packet is only produced once for the last subtitle, so multiple
GAP events between subtitles would result only in a single end packet
and nothing else otherwise. This would potentially starve downstream
then, so instead forward the GAP events in that case.

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

23 months agoci: build less for integration testsuite
Tim-Philipp Müller [Sat, 26 Nov 2022 10:02:17 +0000 (11:02 +0100)]
ci: build less for integration testsuite

- skip gst-omx
- skip sharp bindings
- skip examples and gst-examples
- skip check unit tests (only needed for check job)
- skip microdns (not needed and pulls in subproject)
- skip avtp (ditto)
- skip webrtc (same)
- skip benchmarks
- skip qt5 and gtk

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

23 months agoexamples: webrtc: fix plugins check
Guillaume Desmottes [Mon, 5 Dec 2022 14:58:46 +0000 (15:58 +0100)]
examples: webrtc: fix plugins check

`videoconvert` and `videoscale` are now part of the `videoconvertscale`
plugin, see d11f13f476411b828387c3c26619bc77c255affb

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

23 months agodirectshow: Fix build error with glib 2.75 and newer
Nirbheek Chauhan [Mon, 5 Dec 2022 14:00:43 +0000 (19:30 +0530)]
directshow: Fix build error with glib 2.75 and newer

Starting with glib 2.75, `NULL` is `nullptr`, which cannot be
implicitly coerced to `0`, unlike `NULL`. So explicitly pass `0`.

```
[3206/4524] Compiling C++ object subprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj
FAILED: subprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj
"cl" "-Isubprojects\gst-plugins-bad\sys\directshow\gstdirectshow.dll.p" "-Isubprojects\gst-plugins-bad\sys\directshow" "-I..\subprojects\gst-plugins-bad\sys\directshow" "-Isubprojects\gst-plugins-bad" "-I..\subprojects\gst-plugins-bad" "-Isubprojects\gst-plugins-base\gst-libs" "-I..\subprojects\gst-plugins-base\gst-libs" "-Isubprojects\gstreamer\libs" "-I..\subprojects\gstreamer\libs" "-Isubprojects\gstreamer" "-I..\subprojects\gstreamer" "-Isubprojects\orc" "-I..\subprojects\orc" "-I..\subprojects\gst-plugins-bad\sys\directshow\strmbase\baseclasses" "-Isubprojects\gst-plugins-base\gst-libs\gst\video" "-Isubprojects\gstreamer\gst" "-Isubprojects\gst-plugins-base\gst-libs\gst\audio" "-Isubprojects\gst-plugins-base\gst-libs\gst\tag" "-IC:/gst-install/include/glib-2.0" "-IC:/gst-install/lib/glib-2.0/include" "-IC:/gst-install/include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/EHsc" "/O2" "/Zi" "/wd4018" "/wd4146" "/wd4244" "/wd4305" "/utf-8" "/we4002" "/we4003" "/we4013" "/we4020" "/we4027" "/we4029" "/we4033" "/we4045" "/we4047" "/we4053" "/we4062" "/we4098" "/we4101" "/we4189" "/utf-8" "-D_MBCS" "/wd4189" "/wd4456" "/wd4701" "/wd4703" "/wd4706" "/wd4996" "-DHAVE_CONFIG_H" "/Fdsubprojects\gst-plugins-bad\sys\directshow\gstdirectshow.dll.p\dshowvideosink.cpp.pdb" /Fosubprojects/gst-plugins-bad/sys/directshow/gstdirectshow.dll.p/dshowvideosink.cpp.obj "/c" ../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(62): warning C5051: attribute 'noinline' requires at least '/std:c++20'; ignored
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(123): error C2664: 'LRESULT SendMessageA(HWND,UINT,WPARAM,LPARAM)': cannot convert argument 3 from 'nullptr' to 'WPARAM'
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(123): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(3690): note: see declaration of 'SendMessageA'
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(635): error C2664: 'BOOL SystemParametersInfoA(UINT,UINT,PVOID,UINT)': cannot convert argument 2 from 'nullptr' to 'UINT'
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(635): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(13153): note: see declaration of 'SystemParametersInfoA'
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(1593): error C2664: 'LRESULT SendMessageA(HWND,UINT,WPARAM,LPARAM)': cannot convert argument 3 from 'nullptr' to 'WPARAM'
../subprojects/gst-plugins-bad/sys/directshow/dshowvideosink.cpp(1593): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winuser.h(3690): note: see declaration of 'SendMessageA'
```

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

23 months agogstreamer-full: use the basename of plugin_path to avoid the ':' detection
Stéphane Cerveau [Mon, 5 Dec 2022 08:50:43 +0000 (08:50 +0000)]
gstreamer-full: use the basename of plugin_path to avoid the ':' detection

The absolute path on windows contains ':' which prevents
gstinitstaticplugins.py to work properly. Use the basename whic is good
enough for the script to make the list of plugins

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

23 months agoadaptivedemux2: Don't allow stream selection while switching periods
Edward Hervey [Mon, 5 Dec 2022 09:55:57 +0000 (10:55 +0100)]
adaptivedemux2: Don't allow stream selection while switching periods

The stream selection is done on the currently outputting tracks, but in order to
(de)activate the backing streams we can only do it if the input and output
period are identical.

Fixes crash when doing stream selection during period migration

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

23 months agogstinfo: Minor modification to avoid gst-indent pain
Edward Hervey [Tue, 29 Nov 2022 14:12:51 +0000 (15:12 +0100)]
gstinfo: Minor modification to avoid gst-indent pain

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

23 months agomultiqueue: Use new id-based debugging methods
Edward Hervey [Tue, 29 Nov 2022 09:03:14 +0000 (10:03 +0100)]
multiqueue: Use new id-based debugging methods

Clarifies the debug logs

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

23 months agogstinfo: Allow passing a string identifier for debugging
Edward Hervey [Tue, 29 Nov 2022 08:37:00 +0000 (09:37 +0100)]
gstinfo: Allow passing a string identifier for debugging

This adds "id" variants to most debugging functions, and allows providing a
string identifier instead of a GObject.

This allows providing unified and clearer debug logs for all the
non-gobject-based items, and opens the way for more unified logging.

As an extension, copying the object name is avoided as much as possible, by
using it directly instead of going through another copy.

* API : gst_debug_message_get_object_id

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

23 months agoBack to development
Tim-Philipp Müller [Mon, 5 Dec 2022 02:29:08 +0000 (02:29 +0000)]
Back to development

23 months agoRelease 1.21.3
Tim-Philipp Müller [Mon, 5 Dec 2022 01:28:21 +0000 (01:28 +0000)]
Release 1.21.3

23 months agoRemove ChangeLog files from git repository
Tim-Philipp Müller [Sun, 4 Dec 2022 12:25:41 +0000 (12:25 +0000)]
Remove ChangeLog files from git repository

This information is tracked fully in the git repository, so
no point having the ChangeLog duplicate it, and it interferes
with grepping the repository.

We are going to create the ChangeLogs on the fly when generating
tarballs going forward (with a limited history), since it's still
valuable for tarball consumers to be able to easily see a list of
recent changes.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/73

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

23 months agomeson: Generate ChangeLog files for release tarballs on dist
Tim-Philipp Müller [Mon, 7 Nov 2022 00:10:39 +0000 (00:10 +0000)]
meson: Generate ChangeLog files for release tarballs on dist

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

23 months agoflacparse: Fix handling of headers advertising 32bps
Philippe Normand [Sun, 4 Dec 2022 11:44:17 +0000 (11:44 +0000)]
flacparse: Fix handling of headers advertising 32bps

According to the flac bitstream format specification, the sample size in bits
corresponding to `111` is 32 bits per sample.

https://xiph.org/flac/format.html#frame_header

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