Edward Hervey
d2b3262b71
hlsdemux2: Increase tolerance for discontinuity detection
...
A lot of streams will do a poor job of estimating proper duration of fragments
in the playlist, but over several fragments have it correct.
Instead of constantly trying to realign the estimated stream time, allow for a
more realistic tolerance of 3-4 video frames
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6610 >
2024-05-28 14:00:57 +00:00
Edward Hervey
8b6e7a018c
hlsdemux2: Ensure a discont will be set when resetting for lost sync
...
This is to ensures we inform the demuxer/parsers that what follows is not contiguous
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6610 >
2024-05-28 14:00:57 +00:00
Edward Hervey
836bca461a
hlsdemux2: Fix handling of variant switching and playlist updates
...
When updating playlists, we want to know whether the updated playlist is
continuous with the previous one. That is : if we advance, will the next
fragment need to have the DISCONT buffer set on it or not.
If that happens (because we switched variants, or the playlist all of a sudden
changed) we remember that there is a pending discont for the next fragment. That
will be used and resetted the next time we get the fragment information.
Previously this was only partially done. And it was racy because it was set
directly on `GstAdaptiveDemux2Stream->discont` when a playlist was updated,
instead of when the next fragment was prepared.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6610 >
2024-05-28 14:00:57 +00:00
Edward Hervey
7d49b1cc51
adaptivedemux2: Only set DISCONT on beginning of fragments
...
This avoids accidentally setting it in the middle of a fragment, which could
cause havoc in demuxer/parsers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6610 >
2024-05-28 14:00:57 +00:00
Edward Hervey
81c42ee14b
hlsdemux2: Fix getting starting segment on live playlists
...
When dealing with live streams, the function was assuming that all segments of
the playlist had valid stream_time. But that isn't TRUE, for example in the case
of failing to synchronize playlists.
Fixes losing sync due to not being able to match playlist on updates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6610 >
2024-05-28 14:00:57 +00:00
Sebastian Dröge
cd606696a6
gtk: Fail initialization of the sink if GTK4 is already initialized in the same process
...
Initializing GTK3 and GTK4 in the same process does not work and is not
supported.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6892 >
2024-05-23 08:15:44 +00:00
Sebastian Dröge
8ea355e52c
audioringbuffer: Avoid overflows of segment done counter
...
This counter is incremented once for every segment, meaning it would
e.g. overflow after 24 days when using 1ms segments. Once that happens,
completely wrong positions are reported and invalid memory is handed out
for writing/reading the next segments.
As the affected variables are unfortunately part of the public API of
the struct, a second set of variables is added together with accessor
functions and both variables are kept in sync for backwards
compatibility.
All existing users of the two variables are moved to the new ones but
external code might still run into the overflow.
This also slightly breaks API as external code updating the variables
will have no effect anymore but the only known user of this is
pulsesink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6740 >
2024-05-16 06:52:58 +00:00
Sebastian Dröge
0ef396359c
gst: Move GstQueueArray as GstVecDeque to core
...
And change lengths and indices from guint to gsize for a more correct type.
Also deprecate GstQueueArray and implement it in terms of GstVecDeque.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779 >
2024-05-06 18:25:42 +00:00
William Wedler
9ad6a9b942
fix: qmlglsink: video content resizes to new item size
...
Mark geometry dirty when the item rectangle changes in the
QtGLVideoItem::updatePaintNode method. This allows changes in the bounding
rectangle to be applied to the scene graph geometry node.
Fixes #3493
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6711 >
2024-04-29 02:57:06 +00:00
William Wedler
c02af39026
fix: qml6glsink: video content resizes to new item size
...
Mark geometry dirty when the item rectangle changes in the
QtGLVideoItem::updatePaintNode method. This allows changes in the bounding
rectangle to be applied to the scene graph geometry node.
Fixes #3493
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6711 >
2024-04-29 02:57:06 +00:00
Tim Blechmann
ff7b41ac86
soup: fix thread name
...
thread names should be below 16char, otherwise they won't be shown on
linux.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6736 >
2024-04-26 09:45:49 +08:00
Edward Hervey
4e5a54612e
adaptivedemux2: Answer GST_QUERY_CAPS
...
If we have a generic caps, we can answer the query.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6690 >
2024-04-23 07:09:21 +00:00
Edward Hervey
6b43e4e19f
adaptivedemux2: Refactor output slot creation
...
Set as much information as possible on the slot (including the associated
track) *before* the associated source pad is added to the element.
We need this so that incoming event/queries can be replied to if they are
received when adding the pad
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6690 >
2024-04-23 07:09:21 +00:00
Philippe Normand
111cc8d796
vpxdec: Include vpx error details in errors and warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6626 >
2024-04-13 10:57:43 +01:00
Philippe Normand
bd83046193
vp9enc: Include vpx error details in errors and warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6626 >
2024-04-13 10:56:29 +01:00
Philippe Normand
73ce4fd770
vpxenc: Rename GST_VPX_WARN to GST_VPX_ENC_WARN
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6626 >
2024-04-13 10:55:55 +01:00
William Wedler
942415dce0
fix: qml6glsink: Notify that the returned QSGNode node has changes
...
Sets the QSGNode::DirtyMaterial bit when a new buffer is used for the material's texture
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3469
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6609 >
2024-04-11 14:21:04 +00:00
Jochen Henneberg
687b3a2027
qt6: Let plugin documentation show up
...
* Added qml6 to plugin cache
* Added 'since' markers
* Moved plugin to plugins-good where it really is
* Fixed section comments
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6603 >
2024-04-11 12:38:59 +00:00
Jochen Henneberg
8b87d7bcf7
qt: Let plugin documentation show up
...
* Enabled cc file parsing from hotdoc
* Moved package to plugins-good where it really is
* Fixed section comments
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6603 >
2024-04-11 12:38:59 +00:00
Jochen Henneberg
fee46dee28
qt6: Added support for NV12 input format to qml6glsink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6582 >
2024-04-10 13:45:26 +02:00
Jochen Henneberg
7065d540ee
qt: Added support for NV12 input format to qmlglsink
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6582 >
2024-04-10 13:45:26 +02:00
Jimmy Ohn
a6c8c6f866
pulsedeviceprovider: Add is_default_device_name function and missing lock
...
Add is_default_device_name function to simplify compare device type
name and fix the missing lock when accessing default_sink_name and
default_source_name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6558 >
2024-04-10 08:43:56 +00:00
Arun Raghavan
82b10e57b0
pulsesink: Re-enable emission of stream status messages
...
This was disabled almost 10 years ago because we were missing libpulse API to
avoid a deadlock. That was fixed quite a long time ago, so let's enable this
again. The defer counter becomes an atomic, as we no longer have a threaded
mainloop lock protecting it.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3444
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6500 >
2024-04-09 15:50:04 +00:00
Philippe Normand
8d3e7689e1
vpxenc: Include vpx error details in errors and warnings
...
The vpx_codec_t err_detail string usually provides additional context about the
error, so include it in GStreamer warnings and errors, when it's not NULL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6573 >
2024-04-09 14:40:21 +00:00
Jochen Henneberg
6e33a5da14
qt6: Fixes for dummy texture
...
* RED_OR_ALPHA8 will map value to alpha for OpenGL, use R8 to avoid
2nd shader
* Determine texel size for proper texture memory preparation
* QByteArray::fromRawData() does shallow copy and thus leads to use of
corrupted memory
* Make sure RGBA dummy texture is fully opaque
* QRhiTexture::create() must be called to allocate texture resources
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6578 >
2024-04-08 20:05:10 +02:00
Jochen Henneberg
87dc22b053
qt: Fixup for dummy textures
...
* Initialize dummy texture Ids
* Ensure YUV->RGB matrix set for dummy textures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6578 >
2024-04-08 20:05:09 +02:00
Sebastian Dröge
ee566b8960
flac: Add wrap file and add fallback for it to the flac plugin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6553 >
2024-04-07 11:12:51 +00:00
Robert Guziolowski
52638c1b22
qml6glsink: fix destruction of underlying texture
...
One should not directly delete the QRhiTexture instance.
Instead it should be marked as to be deleted once QRhi::endFrame()
is called (see: https://doc.qt.io/qt-6/qrhiresource.html#deleteLater )
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3443
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6467 >
2024-04-02 11:55:16 +11:00
Edward Hervey
5280f0b733
adaptivedemux2: Add libsoup tracing debug
...
Provides more information for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6409 >
2024-03-20 09:48:12 +00:00
Edward Hervey
3d500636a9
adaptivedemux2: Don't use g_str_equal on potentially NULL strings
...
It is only meant to be used as a callback. The fallback macro uses strcmp which
doesn't handle NULL strings gracefully. Instead use g_strcmp0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
ab11c20d59
hlsdemux2: Avoid NULL pointer usage
...
The pending/current variant are both NULL when the demuxer is resetted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
46bb0bfa57
adaptivedemux2: Handle context going away
...
This issue can happen when the scheduler loop was stopped (and context went
away). We no longer want to push/pop main context threads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Edward Hervey
8438c3f567
hlsdemux2: Improve detection of playlist updates
...
In the case we are not updating an existing playlist, we only want to reset the
download error count if the URI we are downloading was not the previous one we
were trying to load
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6392 >
2024-03-19 13:25:41 +00:00
Sebastian Dröge
38011a01dc
mpg123audiodec: Correctly handle the case of clipping all decoded samples
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3365
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6318 >
2024-03-13 12:48:36 +00:00
Seungha Yang
125c89319a
jpegdec: Fix progressive/interlaced detection
...
If input height and parsed one are identical, do not consider it as interlaced
Fixing below pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=10 \
! jpegenc ! jpegparse ! jpegdec ! videoconvert ! autovideosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181 >
2024-02-26 23:21:44 +09:00
Seungha Yang
3afeb73538
jpegdec: Remove trailing white space
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181 >
2024-02-26 23:14:54 +09:00
Nirbheek Chauhan
4fc56a08ee
soup: Re-add soup-lookup-dep option
...
It's still useful on Linux since it ensures that the tests are going
to be built, since they use the same dep lookup as the plugin now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6197 >
2024-02-23 11:47:47 +05:30
Matthew Waters
392fd00f4c
qml, qml6: Fix leak of QSGMaterial/Geometry (and therefore a possible GstBuffer)
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160 >
2024-02-22 10:26:31 +00:00
Matthew Waters
2dae3775d9
qml6: fix a leak of the wrapped QSGTextures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160 >
2024-02-22 10:24:24 +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
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
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
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
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
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
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
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
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
Jonas Kvinge
a35723d531
meson: Set cpp_std to c++17 for TagLib
...
TagLib uses C++17 as of version 2.0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5995 >
2024-01-27 12:44:48 +00:00
Mathieu Duponchelle
03d07e8e52
vpxenc: fix warning about decreasing PTS on first frame
...
The fields used to track this state should be initialized when
codec->inited is FALSE on set_format, not TRUE
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3200
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5876 >
2024-01-25 08:17:26 +00:00