Commit graph

6391 commits

Author SHA1 Message Date
Piotrek Brzeziński 2bc9abd60b csharp: Make nuget targets depend on underlying libraries
Without this, build will fail if meson/ninja decides to call nuget before building gstreamer-sharp.dll.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5961>
2024-02-21 19:00:49 +00:00
ekwange 0cbb396ab9 mse: Add logging init for mediasource sample map
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6033>
2024-02-21 18:11:25 +00:00
Sebastian Dröge 69e4564c87 rtphdrext-clientaudiolevel: Fix typo in documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6175>
2024-02-21 17:25:43 +00:00
Arnaud Vrac 9e2e456d9f adaptivedemux2: fix build with recent meson
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6168>
2024-02-21 13:53:40 +00:00
Sebastian Dröge 5ec73afe75 rtpbasedepayload: Add "extensions" property for the currently enabled extensions
This works the same way as the one from `rtpbasepayload`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Sebastian Dröge 08d4527d22 rtpbasepayload: Use gst_value_array_append_and_take_value() as a micro optimization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Sebastian Dröge ea261a58e0 rtpbasepayload: Also notify "extensions" property when changing list during negotiation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Tim-Philipp Müller 0a6948ee20 rtppassthroughpay: fix critical in gst-inspect
gst_segment_to_running_time() will fail noisily
if the segment has not been initialised yet.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6151>
2024-02-21 11:25:10 +00:00
Kamal Mostafa ce45e63dcc tests: cudafilter: actually check for cudascale
Actually check for availability of 'cudascale' instead of accidentally
checking for 'cudadownload' twice.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3327
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6158>
2024-02-21 10:16:02 +00:00
Stéphane Cerveau 977a59a3fb test: vkimagebufferpool: fix queue leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6143>
2024-02-21 04:50:47 +00:00
Nirbheek Chauhan 11f6984bf5 soup: Link to libsoup in all cases on non-Linux
We have unsolvable issues on macOS because of this, and the feature
was added specifically for issues that occur on Linux distros since
they ship both libsoup 2.4 and 3.0.

Everyone else should just pick one and use it, since you cannot mix
the two in a single process anyway.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6156>
2024-02-21 09:27:59 +05:30
Jan Schmidt f7e494f348 rtspsrc: Reset combined flows after a seek before restarting
After a flushing seek, rtspsrc doesn't reset the last_ret value for
streams, so might immediately shut down again when it resumes pushing
buffers to pads due to a cached `GST_FLOW_FLUSHING` result

Prevent a stored flushing value from immediately stopping
playback again by resetting pad flows before (re)starting
playback.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6137>
2024-02-21 01:50:13 +00:00
Tim-Philipp Müller 9b84d6398a qsv: use new plugin status message API
Minimal example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
2024-02-21 00:58:19 +00:00
Tim-Philipp Müller 28f262b9ad gst-inspect: print plugin error/warning/info status messages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
2024-02-21 00:58:19 +00:00
Tim-Philipp Müller bc4f7040fa plugin: add API for plugins to provide status info messages
This can be used to store informational messages, errors or
warnings which can later be shown to the user in gst-inspect-1.0,
which can be useful for plugins that expose elements dynamically
based on external libraries or hardware capabilities.

Status messages can then provide an indication as to why a
plugin doesn't have any elements listed, for example.

Plus unit test to make sure code paths are exercised a little.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
2024-02-21 00:58:19 +00:00
Tim-Philipp Müller 59c09eb029 gstobject: add CONSTRUCTED flag
This can be used later by base class APIs to know whether they're
called from a subclass instance init function (where the object
isn't properly constructed yet and one should only really poke
at the instance structure but not much else) or after object
construction has been finished.

Fix up GstBin unit test for CONSTRUCTED flag addition.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2794

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6150>
2024-02-20 19:16:54 +00:00
Edward Hervey 157471889e meta: Skip gst_meta_info_new in gir
```
gstmeta.c:500: Warning: Gst: gst_meta_info_new: return value: Invalid
non-constant return of bare structure or union; register as boxed type or (skip)
```

Skip this for now

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6147>
2024-02-20 12:30:39 +00:00
Seungha Yang 354af30d9f wasapi2: Respect ringbuffer buffer/latency time
Decide buffer size based on configured buffer/latency time
if low-latency is disabled, so that ringbuffer can buffer more
than minimum required size.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2870
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6141>
2024-02-20 11:37:09 +00:00
Edward Hervey 62b9049d20 mpegst: Fix ownership of return value
This inherits from the same rule as gst_buffer_add_meta

```
gst-mpegtspesmetadatameta.h:98: Warning: GstMpegts:
gst_buffer_add_mpegts_pes_metadata_meta: return value: Invalid non-constant
return of bare structure or union; register as boxed type or (skip)
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6146>
2024-02-20 11:33:33 +02:00
Maksym Khomenko ccf544a50e osxaudio: add mapping for top/left/right surround channels
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5731>
2024-02-20 08:03:15 +00:00
Maksym Khomenko f1e02ebb92 osxaudio: correct mapping for left/right surround
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5731>
2024-02-20 08:03:15 +00:00
Philippe Normand 6059391e10 protection: Document original-media-type caps field
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6142>
2024-02-19 18:35:03 +00:00
Guillaume Desmottes d972acd3c5 uridecodebin3: fix deadlock when switching input item
There was a race between urisourcebin src pad handlers.
One was starting the next item before the other was blocked.

See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3297#note_2288799
for details.

Fix #3297

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6145>
2024-02-19 16:22:12 +01:00
Marc Leeman eb17de27d6 qt6: search in /usr/lib/qt6/bin/ for qsb
In Debian and possibly other distributions, qsb (qt6-shader-baker) is
not in the default path, but in a QT6 specific path. Search there too

Applied changes from Nirbheek

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6095>
2024-02-19 12:29:32 +00:00
Jochen Henneberg 6608b89977 rtpxqtdepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 4788a3da0d rtpasfdepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 5d1d0cf9a5 rtpmp4gdepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 75849c63c8 rtpsbcdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 3fffcd021a rtpvorbisdepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg e1e7421982 rtpmp4vdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 334ceaca21 rtptheoradepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one
process run we push them all into a GstBufferList and push them out at
once to make sure that each buffer gets notified about each header
extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 0a4918a509 rtpsv3vdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg d810049f01 rtpmp4adepay: Enabled header extension aggregation
Because this depayloader may build several output buffers within one process
run we push them all into a GstBufferList and push them out at once to
make sure that each buffer gets notified about each header extension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 90b5d2eb93 rtpklvdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:17 +00:00
Jochen Henneberg 2c3f169ebb rtpjpegdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:16 +00:00
Jochen Henneberg 460813f7ee rtpj2kdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:16 +00:00
Jochen Henneberg ae3a00abd2 rtph263pdepay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:16 +00:00
Jochen Henneberg 4fd4c240e0 rtph263depay: Enabled header extensions aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:16 +00:00
Jochen Henneberg ae5bdaa7e1 rtph261depay: Enabled header extension aggregation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5378>
2024-02-19 11:23:16 +00:00
Philippe Normand 2834973d55 parsebin: Fix stream type for encrypted streams
Without this patch the stream type for encrypted streams would be 'unknown'.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6138>
2024-02-19 09:50:03 +00:00
Priit Laes 4e782da32e cacasink: add driver selection support from the pipeline
https://bugzilla.gnome.org/show_bug.cgi?id=599018

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5491>
2024-02-19 07:50:15 +00:00
Guillaume Desmottes b4752ef792 docs: initialize values when GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS is set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5491>
2024-02-19 07:50:15 +00:00
Seungha Yang 93f0135798 wasapi2: Fix choppy rendering
This reverts questionable commit 009bc15f33
which looks completely wrong.

The GstWasapi2RingBuffer:buffer_size variable is used to
calculate available buffer size we can write
(i.e., available size = buffer_size - padding_size).
But the commit makes the size to be exactly same as buffer period.
Then, it can confuse this element as if the endpoint buffer is full on
I/O event callback (if padding size is equal to buffer period)
but it's not true.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2870
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6132>
2024-02-19 04:39:25 +00:00
Loïc Molinari fb02516b75 video: Fix NV12_16L32S video frame size
The size of a NV12_16L32S video frame is bigger than expected because
it uses the size of a Y tile to compute the interleaved UV plane
size. Get the right UV tile size instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6118>
2024-02-16 17:07:03 +00:00
Víctor Manuel Jáquez Leal 03d7082657 gstreamer-vaapi: tests: test vaapipostproc only if exists
Fix: #2491
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6129>
2024-02-16 15:11:23 +00:00
Robert Mader 6b024b50ab v4l2codecs: h264: Fix a memory leak on renegotiation
We only use this anchor when streaming, in which case output_state is
set and needs to get unreffed.
This is in line with how it is handled for all other codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6127>
2024-02-15 22:37:11 +01:00
Xavier Claessens 22b7200d60 bus: do not leak message on invalid handler return value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124>
2024-02-15 18:37:48 +00:00
Xavier Claessens 57f12dd2fa bus: do not leak messages if there is no async handler
This does not typically happen because "enable-async" property is TRUE
by default. The only place where it is set to FALSE is in GstBin where a
sync handler is used and always returns GST_BUS_DROP.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124>
2024-02-15 18:37:48 +00:00
Xavier Claessens 350345150e bus: warn when message queue grows too much
It usually means application is not handling messages causing memory
consumption to grow infinitely.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3313>
2024-02-15 17:45:06 +00:00
Tim-Philipp Müller 88412ef100 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6126>
2024-02-15 16:38:53 +00:00
Tim-Philipp Müller 88751d4110 Release 1.23.2 2024-02-15 15:37:17 +00:00
Tim-Philipp Müller 28b64bc28a Revert "audiobuffersplit: Update out_segment even without discont"
This reverts commit c0dc65d40a.
2024-02-15 15:37:11 +00:00
Jan Alexander Steffens (heftig) 9426eaae6a videoparseutils: Don't double-attach AFD, Bar or unregistered data
We already did this for captions. We also need to do it for the other
meta types to ensure our parsers are idempotent and don't attach
duplicates.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) 92017b983e videoparseutils: Store multiple user data unregistered messages
A frame can have multiple unregistered messages attached. We need to
store them all.

For: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3008
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) 75f61cba80 videoparsers: Clear user_data_unregistered explicitly in _reset_frame
This fits better with the model used by the parser elements. It also
properly resets the data when the parser is reset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) 3577fdec51 videoparsers: Clear user data explicitly in _reset_frame
This fits better with the model used by the parser elements. It also
properly resets the data when the parser is reset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) b3c03cec8d videoparseutils: Minor improvements to _parse_afd
- Add the missing field parameter and put the output parameter at the
  end.
- Use a switch to verify valid values instead of hard-to-follow range
  checks.
- Don't consider bad values a programming error, just a regular failure.
- Set all data fields at the end so we can pass a pointer to an
  uninitialized structure without GCC complaining.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) 5c0cad5f02 videoparseutils: Minor improvements to _parse_bar
Use the enum type for the argument and loudly complain when not passing
a place to output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:30 +00:00
Jan Alexander Steffens (heftig) c0dc65d40a audiobuffersplit: Update out_segment even without discont
We need to forward the segments we get even if we don't see a discont
buffer, or discont was suppressed by gapless mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5450>
2024-02-15 13:32:29 +00:00
Edward Hervey d62c6e1084 urisourcebin: Don't acquire STATE_LOCK if shutting down
If we are shutting down (PAUSED->READY) we shouldn't take the STATE LOCK since
this function is being called from a streaming thread (which is trying to be
deactivated while the STATE LOCK is held)

Fixes #3292

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6121>
2024-02-15 10:09:10 +00:00
Xavier Claessens d86a6715e1 aja: Replace global semaphore with per-device flock()
The global semaphore was never closed/unlinked, causing permission
denied issue if the device is later used by another user. Properly
removing the semaphore when stopping the pipeline would still leave it
open in case of a crash.

With a GStreamer specific name, it was also not preventing other apps to access
the device concurrently.

Finally, if the system has multiple cards, the lock should be per card
and not global (to be confirmed).

Fixes: #3283.

Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6117>
2024-02-15 09:30:20 +00:00
Edward Hervey d26194db0e libgstplay: Use playbin3 by default
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6120>
2024-02-15 09:00:45 +01:00
Sebastian Dröge 499474a76d Revert "rtpvp8pay: Use GstBitReader instead of dboolhuff implementation from libvpx"
This reverts commit b730e7a1b2.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6116>
2024-02-14 15:45:24 +00:00
Seungha Yang d98c922995 h265decoder: Fix DPB size calculation
MaxDpbSize specified in A.4.2 tells upper bound of decoded picture
buffer size but does not tell actual required size.
Use max_dec_pic_buffering value as a dpb size. Some backends
such as DXVA and NVDEC might require pre-allocated DPB buffer
and unnecessary large DPB size will result in waste of GPU memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6101>
2024-02-14 15:05:59 +00:00
Edward Hervey 144657dc0d gst-play: Default to using playbin3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6115>
2024-02-14 12:27:25 +01:00
Mathieu Duponchelle 91317aacaf webrtcbin, rtpbin: check before setting properties on jitterbuffer
In rtpbin we already systematically check for all property names
except latency, correct that.

In webrtcbin we need to check before trying to use the do-retransmission
property.

This is useful for the case where an element like identity gets passed
to rtpbin's request-jitterbuffer property, when the application wants
to use webrtcbin in an SFU situation, with no reordering and no added
latency

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6112>
2024-02-14 08:52:50 +00:00
Sebastian Dröge c726add352 rtpfunnel: Handle NTP-64 RTP header extension in caps similar to TWCC
This is another header extension that is handled by rtpsession and needs
to be preserved in the caps that are created by rtpfunnel.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6109>
2024-02-14 08:05:33 +00:00
Tim-Philipp Müller 6cfe6299d2 gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
2024-02-14 04:43:00 +00:00
Tim-Philipp Müller a3de2b48ba gst-plugins-ugly: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
2024-02-14 04:43:00 +00:00
Tim-Philipp Müller b87093207c gst-plugins-good: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
2024-02-14 04:43:00 +00:00
Tim-Philipp Müller 39acedf053 gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
2024-02-14 04:43:00 +00:00
Tim-Philipp Müller c127a4fd74 gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>
2024-02-14 04:43:00 +00:00
Sebastian Dröge 17e7af7181 rtpfunnel: Also write TWCC RTP header extension into buffer list buffers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6110>
2024-02-14 01:56:20 +00:00
Daniel Morin b2098849dc h264parse: correct NAL mode backlog processing
- Only process what is left in backlog when AU was completed, draining or next
  nal is AUD.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6093>
2024-02-13 13:58:13 +00:00
Seungha Yang cfa8386dd0 nvdecoder: Enable zero-copy only if explicitly enabled
Keep pre-1.24 behavior unless user specifies the number of
output surface size. We are calculating output surface size
conservatively, and it can result in over allocation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6102>
2024-02-13 12:37:07 +00:00
Seungha Yang 59358e439d nvh265dec: Don't convert unknown video format to string
gst_video_format_to_string() method does not allow unknown format

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6102>
2024-02-13 12:37:06 +00:00
Tim-Philipp Müller 68d62a8433 realmedia: remove RealServer RTSP extension, RDT handling and PNM source
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6091>
2024-02-13 11:44:29 +00:00
Damian Hobson-Garcia 1ef7e9be73 GstShmAllocator: Map/unmap full buffer when padding is added
When allocating buffers with alignment parameters specified, it
may be necessary to overallocate memory to adjust to the requested
alignment.  Previously the padding length was not included in the mmaped
buffer size, leaving unmapped bytes at the end of the buffer.
This caused intermittent SEGV faults and valgrind failures when running
the wayland_threads example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6104>
2024-02-12 16:19:35 -05:00
Jonas K Danielsson f0b8a33f10 check: Add valgrind leak exception for srt test
The srt unittest test_src_listener_sink_call will sometimes fail under
valgrind with the following splat:

 Memcheck, a memory error detector
 Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
 Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
 Parent PID: 14579

 HEAP SUMMARY:
     in use at exit: 799,848 bytes in 2,182 blocks
   total heap usage: 64,090 allocs, 61,908 frees, 37,891,032 bytes allocated

 120 bytes in 1 blocks are definitely lost in loss record 1,563 of 1,681
    at 0x4842FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
    by 0x6031E29: srt::sync::SetThreadLocalError(CUDTException const&) (sync_posix.cpp:461)
    by 0x5FCD77E: CUDT::epoll_wait(int, std::set<int, std::less<int>,
    std::allocator<int> >*, std::set<int, std::less<int>,
    std::allocator<int> >*, long, std::set<int, std::less<int>,
    std::allocator<int> >*, std::set<int, std::less<int>, std::allocator<int> >*) [clone .cold] (api.cpp:3796)
    by 0x5FE2F79: UDT::epoll_wait2(int, int*, int*, int*, int*, long, int*, int*, int*, int*) (api.cpp:4277)
    by 0x5F0C626: gst_srt_object_read (gstsrtobject.c:1569)
    by 0x5F0F978: gst_srt_src_fill (gstsrtsrc.c:180)
    by 0x5F5A2A1: gst_base_src_default_create (gstbasesrc.c:1620)
    by 0x5F5C9AE: gst_base_src_get_range (gstbasesrc.c:2630)
    by 0x5F5EF5A: gst_base_src_loop (gstbasesrc.c:2959)
    by 0x4918B13: gst_task_func (gsttask.c:399)
    by 0x4A60B33: g_thread_pool_thread_proxy.lto_priv.0 (gthreadpool.c:354)
    by 0x4A5DC41: g_thread_proxy (gthread.c:826)
    by 0x4F532A4: start_thread (pthread_create.c:481)
    by 0x4C71322: clone (clone.S:95)

An issue has been started against libsrt here:

https://github.com/Haivision/srt/issues/2867

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6098>
2024-02-12 13:24:21 +00:00
Philippe Normand 6f778eebf9 dashdemux2: Basic support for container-specific-track-id tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>
2024-02-12 10:37:29 +00:00
Philippe Normand 080320609c dashdemux: Basic support for container-specific-track-id tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>
2024-02-12 10:37:29 +00:00
Philippe Normand e9ecde83a7 matroska-demux: Basic support for container-specific-track-id tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>
2024-02-12 10:37:29 +00:00
Philippe Normand 30bb88a91b qtdemux: Basic support for container-specific-track-id tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>
2024-02-12 10:37:29 +00:00
Philippe Normand 1ecabcd1c5 taglist: Register new tag for container specific track ID
Unique identifier for the audio, video or text track this tag is associated
with. The mappings for several container formats are defined in the [Sourcing
In-band Media Resource Tracks from Media Containers into HTML
specification](https://dev.w3.org/html5/html-sourcing-inband-tracks).

Based on previous patch by Brendan Long.
Fixes #45

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>
2024-02-12 10:37:29 +00:00
Seungha Yang 75ddcd7566 pluginloader-win32: Early terminate if plugin loader binary is not installed
External plugin loader support for Windows is introduced
in this dev cycle. Since helper binary was not required (useless)
before this version, people may not ship the binary
with new GStreamer version, then they will observe warning message.

Instead of displaying the warning at plugin loading time,
checks helper bin earlier and disable external plugin loader
if helper binary is not installed.

Fixes: https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/448
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6083>
2024-02-11 13:49:34 +00:00
Seungha Yang 693dbc9667 d3d12screencapturesrc: Fix choppy display
According to recommendation from MS, IDXGIOutputDuplication::ReleaseFrame()
needs to be called just before IDXGIOutputDuplication::AcquireNextFrame()
for performance reasons, so that driver can accumulate dirty rects
and update texture at once. But it seems to cause choppy output.
Do release acquired frame immediately once processing done,
like d3d11 implementation does.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6092>
2024-02-11 13:13:18 +00:00
Víctor Manuel Jáquez Leal b485417d03 vulkanh265dec: add H.265 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:24 +00:00
Víctor Manuel Jáquez Leal 4268268a79 tests: vkvideodecode: add H.265 decoding test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:24 +00:00
Víctor Manuel Jáquez Leal 8a4a619c32 tests: vkvideodecode: choose the queue's codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:24 +00:00
Víctor Manuel Jáquez Leal d581690f61 tests: vkvideodecode: h264 prefix to global variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:24 +00:00
Víctor Manuel Jáquez Leal a853cc419f tests: vkvideodecode: refactor functions for later reuse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:24 +00:00
Víctor Manuel Jáquez Leal 50791d66e1 vulkanh264dec: don't remove graphics queue if it's the same as decoder
Since graphics queue is used for the context transference. So lets' keep it with
its own reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:23 +00:00
Víctor Manuel Jáquez Leal 5d27f09740 vulkanh264dec: small cleanups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:23 +00:00
Víctor Manuel Jáquez Leal 2011dec249 vulkan/decoder: fix documentation generation
GstVulkanDecoderParameters is an union, not a struct, and that isn't handled by
hotdoc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:23 +00:00
Víctor Manuel Jáquez Leal f0c5a853a6 vulkan/decoder: don't initialize function table once
Since it has to be associated with the device and it gets destroyed when the
decoder is freed.

Now it's created when the decoder starts and it's flagged.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6089>
2024-02-10 17:17:23 +00:00
Markus Ebner bf936fa6c0 docs: Minor correction in keyframe-force.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6090>
2024-02-10 16:03:51 +00:00
Seungha Yang 36c4ef361b d3d12: Add VP8 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6088>
2024-02-10 21:23:51 +09:00
Seungha Yang e2eff3e4a3 d3d12decoder: Fix bitstream buffer usage
Resource state of a buffer in upload heap should stay in
generic-read although it's effectively in common state. Some drivers
complains about the wrong state.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6088>
2024-02-10 21:23:28 +09:00
Seungha Yang b3a29b61c5 dxvavp8decoder: Fix reference frame setting
Fixing typo

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6088>
2024-02-10 21:18:44 +09:00
Tim-Philipp Müller 9fe9e60012 aja: suppress compiler warnings for aja ntv2 subproject
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6087>
2024-02-10 10:10:06 +00:00
Seungha Yang c5e241932c amfcodec: Update plugin cache
Adding AV1 encoder documentation (added in 1.22) with various
new properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6084>
2024-02-10 01:18:27 +00:00
Jonas K Danielsson 87ab5adf7e meson: srt: make sure srt_dep is defined
Without this we will get errors when we try to build with srt disabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6082>
2024-02-09 17:45:29 +00:00
Xavier Claessens 561f8b71ee structure: Allow STRICT flag only in _serialize_full()
The STRICT flag makes _serialize() nullable which is an API break for
bindings. Forbid it and add _serialize_full() that accepts it and is
properly annotated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5829>
2024-02-09 15:45:33 +00:00
Sebastian Dröge 2c8f232d79 sdpdemux: Add SDP message (aka session) attributes to the caps too
They apply to all medias, and if overridden by the specific media then
they would also be overridden just below in the created caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6079>
2024-02-09 14:54:29 +00:00
Seungha Yang b4ee86d1e7 ksdeviceprovider: Fix crash while probing device caps
Ignore unexpected media type reported by driver, instead of abort

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6081>
2024-02-09 14:09:07 +00:00
Edward Hervey a1cbe351ec musepack: Prefer using FFmpeg musepack decoder/demuxer
* Bump the rank of the musepack v7/v8 FFmpeg demuxers to SECONDARY
* Bump the rank of the musepack v7/v8 FFmpeg audio decoders to SECONDARY
* Demote the rank of the musepackdec element to MARGINAL

This is for two reasons:
* The musepack library is no longer maintained, whereas the FFmpeg
  implementation can/will receive fixes
* The `musepackdec` implementation was a all-in-one "parsing and decoding" blob
  which doesn't play nicely with decodebin3 and others

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6074>
2024-02-09 12:15:14 +00:00
Seungha Yang d2d2ac43e8 ccconverter: Send gap event if generated output is empty
Sends a gap event if nothing to output for a given input buffer.
For example, an input buffer might not contain any caption data
for downstream requested field, then we need to inform downstream
of the case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6073>
2024-02-09 11:03:21 +00:00
Guillaume Desmottes 550a21ccbe avdtpsink: post error message when failing to start
Subclasses are supposed to report errors messages if their start
implementation failed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1678>
2024-02-09 10:09:13 +00:00
Sebastian Dröge 0871d1edc4 examples: webrtc: Update dependencies in Rust examples
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6078>
2024-02-09 09:35:10 +00:00
Sebastian Dröge 6bb47a125f orc: Pin subproject to 0.4.37
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6076>
2024-02-09 07:58:38 +00:00
Sebastian Dröge 728646cb12 gst-plugins-rs: Follow the 0.12 branch
After 1.24 release this should be switched to main.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6076>
2024-02-09 07:58:38 +00:00
Nirbheek Chauhan d0ae93771e meson: Don't use fs.copyfile() for qt6 resources
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3285

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6077>
2024-02-09 11:14:09 +05:30
Marvin Schmidt da6b28d90b wpe: Rename WPEView to GstWPEThreadedView
WebKit commit b12e7ed2ad3a ("[WPE] Upstream the new WPE platform API
https://bugs.webkit.org/show_bug.cgi?id=265286")[1] added a `WPEView` typedef
which clashes with our `WPEView` class.

Rename the `WPEView` class to `GstWPEThreadedView` to avoid the collision.
Also prefix the `WPEContextThread` class with `Gst` and rename the
source files to reflect the new class name and use lowercase while at it
for consistency

[1] b12e7ed2ad

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6065>
2024-02-08 20:06:08 +00:00
Carlos Rafael Giani cea5d19665 switchbin: Rework gst_switch_bin_get_allowed_caps() to limit path lock
Previously, the path lock was held even while issuing caps queries to
other elements. This can lead to deadlocks in more complex pipelines.
Avoid this by reworking gst_switch_bin_get_allowed_caps() to acquire
references to switchbin paths and then releasing the path lock.
Subsequent operations in that function then act on the acquired
references, thus eliminating the need for holding the path lock for
the entirety of that function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani cfe484d983 switchbin: Always respond to caps query with all allowed caps
The caps query specifies _all_ caps that the element can handle, not just
caps from the current path element. If for example a switchbin has two
paths, with one having an element that handles video/x-h264, and another
path whose element handles video/x-raw, and the second path is the
current path, then the existing code would report only video/x-raw as
supported. Fix this by report all allowed caps, even if there is a
current path defined.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani c994f27f34 switchbin: Update and improve documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani fcc3420929 switchbin: Forward filter caps to internal caps queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani d0b9f9fc27 switchbin: Rework allowed-caps computation to allow for passthrough paths
The rationale is that a passthrough path (= one with no element) behaves
as if the switchbin's sink- and srcpad were one. In particular, internal
caps queries (needed for computing the allowed caps) then go to the peers
instead to path elements. Rework gst_switch_bin_get_allowed_caps () for
a clear handling of NULL path elements and for proper dataflow passthrough
and caps & accept-caps query handling.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani 0f279cdb86 switchbin: Improve filter caps application
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Carlos Rafael Giani 9429a69f1c switchbin: Remove leftover drop probe code bits
The drop probe was present in early switchbin versions to implement paths
that drop dataflow. However, this feature turned out to be too problematic
and thus was removed. Some bits remained though. This commit removes those
bits and clarifies that in the current switchbin version, a NULL path
element instead means passthrough.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4632>
2024-02-08 18:33:29 +00:00
Sebastian Dröge 3ca5a2554f ajasink: Add HANC/VANC ancillary data from GstAncillaryMeta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Sebastian Dröge efa7e70d16 ajasrc: Add GstAncillaryMeta for any HANC/VANC ancillary data that is captured
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Edward Hervey b0de86ff68 video-anc: New GstMeta for SMPTE ST-291M Ancillary Data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>
2024-02-08 15:28:39 +00:00
Ignazio Pillai 34741e1db2 cutter: add audio-level-meta
Set GstAudioLevelMeta on buffers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5771>
2024-02-08 13:52:40 +00:00
Vivia Nikolaidou 60d9cfc954 videorate: Correct segment-based calculations
It was adding and subtracting the segment base here and there, but it
was also doing so incorrectly, leading to various calculation errors.

Fixed a few bugs uncovered, related to getting a new segment:
* If we reset base_ts/next_ts/out_frame_count, also reset prevbuf
* Only do so if the new segment is different than the previous one

Also replaced a few occurrences of GST_BUFFER_TIMESTAMP with
GST_BUFFER_PTS for consistency.

Integrated the tests of
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
, now passing. The test_segment_update_same test had to be fixed,
because it was wrongly assuming that we would not fill the gap inside
the new-but-same segment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6031>
2024-02-08 12:08:08 +00:00
Guillaume Desmottes b6d8a55103 basesrc: add FIXME 2.0 about automatic_eos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1334>
2024-02-08 10:51:56 +01:00
Daniel Morin afa41ec3bc analyticsoverlay: fix gst-launch exemple
- Adapt example to new onnx elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6062>
2024-02-07 22:39:57 +00:00
Seungha Yang d444fe3fdc nvcodec: Update plugin cache
Updating plugin cache for IPC elements, JPEG encoder, and newly added
properties. Also removing Gst*SLDec which does not exist anymore
but renamed to Gst*Dec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6070>
2024-02-07 22:06:39 +00:00
Sebastian Dröge 77a09c1781 analytics: Allow getting a related meta with ANY type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6068>
2024-02-07 14:07:52 +00:00
Jan Schmidt 6f652ec8a1 tsdemux: Detect reaching the end of configured segment
If the current segment has a configured stop point, detect
when when pad timestamps proceed past that point and mark
them as EOS. Otherwise, tsdemux continues streaming
the whole input downstream (unless something downstream detects
and returns EOS for us)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6023>
2024-02-07 07:36:02 +00:00
Jan Schmidt 61aefda664 tsdemux: Support segment seeking
Add support for segment seeks and posting segment-done for
seamless non-flushing looping

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6023>
2024-02-07 07:36:02 +00:00
Hosang Lee df0be57d38 tracing: Fix some typos
Fix example commands to work when copied/pasted to the terminal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6064>
2024-02-07 03:59:31 +00:00
Nirbheek Chauhan f6f448bb80 meson: Fix several warnings in the build
Deprecations, incorrect options, etc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6058>
2024-02-06 23:57:17 +00:00
Nirbheek Chauhan 63322705c8 good/tests: Don't enable soup tests if soup is disabled
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3268

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6058>
2024-02-06 23:57:17 +00:00
Tim-Philipp Müller 2111d6f015 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6066>
2024-02-06 18:29:31 +00:00
Tim-Philipp Müller 9255e397f0 Release 1.23.1 2024-02-06 16:43:27 +00:00
Tim-Philipp Müller e7d771903e meson_options.txt: fix meson warning about default bool values being a string 2024-02-06 16:37:13 +00:00
Tim-Philipp Müller f1940077a2 codecparsers: av1bitwriter: fix Since marker
... and add them to the symbol index to make hotdoc happy
2024-02-06 16:37:13 +00:00
Tim-Philipp Müller 6651bb3ed8 codecparsers: document new GstH265Level and GstH264Level enums
... and add them to the symbol index to make hotdoc happy.
2024-02-06 16:37:13 +00:00
Tim-Philipp Müller b9b249be48 va: fix g-i annotation
This parameter annotation is unknown :[allow-null-none] None
2024-02-06 16:37:12 +00:00
Nirbheek Chauhan 4822c9a1e2 y4mdec: Fix some debug log categories
Fatal errors should be logged as ERROR, extremely spammy messages
should be logged with TRACE

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
Nirbheek Chauhan 56b16e5232 y4mdec: Parse extended headers written out by FFmpeg
References:
https://wiki.multimedia.cx/index.php/YUV4MPEG2
https://github.com/FFmpeg/FFmpeg/blob/eee3b7e2/libavformat/yuv4mpegenc.c#L74-L166

The primary purpose is to add high bit-depth y4m support, which is
commonly used for testing codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
Nirbheek Chauhan 968ebd26ab y4mdec: Simplify header parsing
Use string parsing instead of pointer arithmetic, which makes the code
easier to understand and less error-prone. This has no functional
changes, and is preparation for the next commit, which extends the
header parsing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5997>
2024-02-06 12:42:54 +00:00
Sebastian Dröge 7c1ea2eeab pad: Copy over seqnum when creating a new segment event for applying pad offset
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6057>
2024-02-06 10:24:26 +00:00
sergey radionov ebc51e3253 nice: resolve result should go to nice helper thread
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5921>
2024-02-06 09:12:13 +00:00
Sebastian Dröge 3972736f91 utils: Remove unnecessary const-removal casts from gst_util_filename_compare()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063>
2024-02-06 08:03:56 +00:00
Sebastian Dröge 404e4ca626 utils: Annotate gst_util_filename_compare() parameters as filenames
They're not UTF-8 strings.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063>
2024-02-06 08:03:56 +00:00
Daniel Morin 8afc305fe2 onnx: fix, update tensor producer and consumers
- Propagate GstTensor.type becoming to GstTensor.data_type to tensor producer
  (onnx) and consumer (TensorDecoder)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6061>
2024-02-05 22:27:59 -05:00
Olivier Crête 7271410391 analyticsoverlay: Don't error out on lack on dependency in auto mode
If the option is set to auto, it shouldn't fail if the dependency is missing.

Fixes #3266

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6060>
2024-02-05 14:59:06 -05:00
Sebastian Dröge ddd9dcc559 ajasink: Remove workaround for NTV SDK bug that is fixed since a while
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6056>
2024-02-05 16:24:13 +00:00
Víctor Manuel Jáquez Leal 4949c6d153 vkh264dec: GST_USE_UNSTABLE_API for plugin compilation
The code to include H264 decoder base class header wrongly disabled the unstable
API  message. This patch fixes it by setting it as a compilation define of the
plugin.¡

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6055>
2024-02-05 14:25:38 +01:00
Víctor Manuel Jáquez Leal 2c660ee8f5 vkupload: remove unused parameter fetching
It's not required to create a vulkan buffer to fetch its size since all this
handled by internally by the allocator and it was never needed, so it looks like
dead code. Let's delete it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6028>
2024-02-05 10:38:54 +00:00
Nicolas Dufresne 0fd76c2848 allocators: drm-dumb: Fix non-thread safe dmabuf allocator creation
If the allocation function get called from multiple threads at the same time,
multiple allocators may get created but only one get saved. Leading to other
allocators to be leaked. Simply create it once in the instance initialization.

Fixes: #2456
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6052>
2024-02-05 07:39:56 +00:00
sergey radionov 39f2afbd45 webrtcbin: it's better to have thread default main context
on thread bound to that main context.
fixes #3271

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6053>
2024-02-05 00:56:47 +00:00
Seungha Yang 35e5178f0e d3d12: Fix potential self thread join
Fence data could hold GstD3D12Device directly or indirectly.
Then if it's holding last refcount, the device object will
be released from the device object's internal thread,
and will try join self thread.
Delegates it to other global background thread to avoid
self thread joining.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6042>
2024-02-05 01:37:32 +09:00
Seungha Yang 1c0f224f05 d3d12memory: Remove unused method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6042>
2024-02-03 23:22:58 +09:00
Nirbheek Chauhan a5cb2ef9cd meson: Print a useful error message when qt windowing is not found
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6040>
2024-02-03 05:42:26 +00:00
Olivier Crête 3325a10f57 onnx: Port SSD detector to C
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:47:52 -05:00
Olivier Crête 5e1291fd86 onnx: Only read labels file one and use GIO
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:22 -05:00
Olivier Crête 13de5160be onnx: Add more tensor data types
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Olivier Crête e3d8168a5a onnx: Remove unecessary gst_tensor_meta_get_all_from_buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Olivier Crête 2034f776bb onnx: Merge tensor into tensor meta file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6001>
2024-02-02 18:43:21 -05:00
Loïc Le Page eb416d5077 webpenc: add animation properties
- animation background color
- number of animation loops

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Loïc Le Page 05bd35f625 webpenc: don't allow changing resolution in animation mode
- fails on image resolution changes in animation mode
- fails with a log message on invalid color spaces

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Loïc Le Page 9fe504c423 webpenc: fix naming and libwebp API calls
- uniformize parameters naming
- call symetric init and clear functions systematically from libwebp API

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Mathieu Duponchelle a6409525ef webpenc: add support for animated WebP
The libwebp API doesn't match very well with the GstVideoEncoder
API, as it only delivers an unframed bitstream once all pictures
have been processed, which means we can only push a single buffer
manually on our srcpad on finish().

Supporting animated webp is still valuable, and the feature is
behind an opt-in property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5994>
2024-02-02 17:23:08 +00:00
Olivier Crête 351f823704 analytics: Always return a string from mtd_type_get_name()
It makes it easier to use in printf() style strings without worrying
about getting a NULL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6035>
2024-02-02 15:49:56 +00:00
Jonas K Danielsson 7c4e6442db srt: Add basic check test of srt[src|sink]
Add some basic tests for the srtsrc and the srtsink and set us up for
more advanced tests down the road.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5440>
2024-02-02 15:08:02 +00:00
Tim-Philipp Müller e93298e882 subprojects: update x264 wrap to latest stable 164.3108
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5480>
2024-02-02 14:46:06 +00:00
Jonas K Danielsson e7ae5f0995 srt: Add more fields to application/x-srt-statistics
In order to see how many packets where retransmitted and how many was
dropped we add some new fields.

Please see https://github.com/Haivision/srt/blob/master/docs/API/statistics.md

For details about the new fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5322>
2024-02-02 13:57:26 +00:00
Edward Hervey 900a9c47be gst-python: Fix unit test for python >= 3.12
unittest.TestCase.assertEquals was marked deprecated since 3.0 and was finally
removed in 3.12

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5633>
2024-02-02 14:15:49 +01:00
Edward Hervey 7c68ef354b gst-python: Fix override loading in python >= 3.12
The `imp` module got removed in python 3.12 and the `importlib` module should be
used instead.

This is also a good excuse to switch to the new finder module from PEP 451 :
https://www.python.org/dev/peps/pep-0451/

This only requires implement the `find_spec()` method in our custom loaders

Co-authored-by: Stefan <107316-stefan6419846@users.noreply.gitlab.freedesktop.org>
Co-authored-by: Jordan Petrids <jordan@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5633>
2024-02-02 13:30:38 +01:00
Piotr Brzeziński 0b65c0ead5 tutorials: Fix warning when compiling on macOS
GstMainFunc has one more arg than the standard main() to support bindings, let's cast to get rid of the warning.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6038>
2024-02-02 12:54:32 +01:00
Heiko Becker 567a2a7f67 neon: Allow building against neon 0.33.x
From its NEWS file:

"API and ABI backwards-compatible with 0.27.x and later"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6036>
2024-02-02 00:22:39 +01:00
Hou Qi aa68b5e02a hlsdemux2/m3u8: use GstClockTimeDiff to do timestamp comparison
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5234>
2024-02-01 08:41:23 +00:00
Thibault Saunier 5051a34318 nlecomposition: Do not forward QoS event while setting up the new stack
Otherwise we might end up dropping buffers even before prerolling the sources

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6032>
2024-01-31 19:43:06 +00:00
Philippe Normand 1b01415c3b srtpenc: Fix potential leak
When attempting to process a buffer after the rtcp session was closed the output
buffer memory would remain referenced.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6029>
2024-01-31 18:46:59 +00:00
Thibault Saunier b684ce33b7 timeline: forward element messages we do not know
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +00:00
Thibault Saunier 1627a944e7 nlecomposition: Use a bus message to retrieve pipeline position
Instead of recursing up, as this will allow to have nested composition
run inside auxiliary pipelines. It is a bit cleaner also.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +00:00
Thibault Saunier 79c211a5fb nlecomposition: Use a message to check if we need an initialization seek
Subtimeline might be in an auxiliary pipeline which make the current
recurse up approach not working.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +00:00
Thibault Saunier 37602d1d02 ges: Keep internal stream selection messages internally
Timeline StreamCollection are very specific to inner working of nested
timelines and should not interfere with the usual stream selection
process and are now handled as element messages.

Stream selection inside `nleobject` need to be handled internally by the
application or GES itself so we should just drop all those as they would
interfere and fail if they are exposed to other elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +00:00
Thibault Saunier b14207cc9e nle: Use a message based mechanism to detect parent nleobject duration
Recursing up is pretty ugly and will fail when we start using ancillary
pipelines for sources in nle, using a message/event based mechanism is
a common pattern that is much cleaner.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>
2024-01-31 17:37:41 +00:00
Sebastian Dröge b730e7a1b2 rtpvp8pay: Use GstBitReader instead of dboolhuff implementation from libvpx
All compressed frame header values that are read as part of the
payloader are encoded as bits with 50:50 probability, and as such are
just the plain bits as they are.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5810>
2024-01-31 16:52:28 +00:00
Daniel Morin 95464c8977 analyticsoverlay: add object-detection overlay
- Overlay analytics-meta-od attached to video buffer

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5768>
2024-01-31 16:15:06 +00:00
Daniel Morin 8122f623f6 analytics: Change indexes type from i32 -> gsize
- gst_analytics_cls_mtd_get_length() return a gsize, this type dicated index
  type for gst_analytics_cls_mtd_get_quark() and
  gst_analytics_cls_mtd_get_level().
- Minor cleanup/improvement on index validation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6018>
2024-01-31 15:22:43 +00:00
Daniel Morin f1d2147ba8 analytics: add test for OD confidence level retrieval
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6017>
2024-01-31 14:40:56 +00:00
Daniel Morin 42227d7de3 analytics: add api on OD to retrieve bbox confidence
- Add a specific api to retrieve bbox confidence level without having to
  retrieve it's location.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6017>
2024-01-31 14:40:56 +00:00
Seungha Yang 6dc902a962 nvcodec: Add JPEG encoder
Adding nvJPEG library based JPEG encoder element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6021>
2024-01-31 12:51:28 +00:00
Seungha Yang fc4b136ac8 nvcodec: Move runtime compiler check to plugin init function
Required information for other elements

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6021>
2024-01-31 12:51:28 +00:00
Daniel Morin 0a55c86e6a rtspsrc: update rtsp url on redirect
- If a redirect took place on a GET when rtsp is tunneled we update the
  rtsp url too.
- log source and final destination on redirect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5222>
2024-01-31 11:43:45 +00:00
Daniel Morin 13c5406747 rtspconnection: support redirect when using tunnel
- Support HTTP redirect codes (301,302,307,308) on response to GET.
  "Location" field is extracted and used for following GET and POST.
- Notify caller a redirect took place using return value
- log source and destination url on redirect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5222>
2024-01-31 11:43:45 +00:00
Thibault Saunier f1ad885c9b valgrind: Ignore some leaks in the X server that have been fixed already
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:25 +00:00
Thibault Saunier 1891fff7a9 validate: flow: Plug leak about ignored fields
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier 5d4bf4c6a5 bad: Update plugins cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier 4dcea207d9 auto: Reuse subbins instead of recreating them over and over
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier 79612de803 autoconvert: Force raw memory when using videoconvertscale
videoconvertscale advertises `ANY` feature, but it supports it only
in passthrough. Our goal with autoconvert is to ensure that  conversion
is possible with the elements that are being plugged so we avoid
plugging `videoconvertscale` if the memory type is not system memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier 9821c0ae96 autovideoconvert: Use cudaconvert for formats not allowed by glcolorconverts
There are some pixel formats supported by `cudaconvert` but not `glcolorconvert`
so prefer using `cudaconvert` for those cases rather than using
`videoconvertscale` and system memory

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier 9908d11dab auto: Add an 'autovideoflip' element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier aa7c49ded8 autoconvert: Accept new caps when they are exactly equal to previous ones
That basically was overlooked as the code was clearly intending to do that

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00
Thibault Saunier e41e31f2ae auto: Add a gstautodeinterlace element
Which can do colorspace conversion if necessary.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>
2024-01-31 11:00:24 +00:00