Jan Schmidt
454779f094
hlsdemux2: Wait for playlist switch during seek.
...
When switching to/from an iframe variant to do seeking, wait for the target
playlist to load before handling the seek.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
fe41db92db
hlsdemux2/playlist-loader: Implement more features
...
Implement limited retries on download errors before reporting it, and remember
permanent redirects, with LL-HLS directives removed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
9ae3978c72
hlsdemuxdemux2: Consider the hold-back when calculating seek range
...
When calculating the seek range for a live stream, use the same hold-back logic
as when choosing a starting segment, including low-latency segments if
enabled. Permits seeking closer to the live edge when re-synching or catching
up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
083538df9e
hlsdemux2: Continue reworking code for async playlist updates
...
Everything is working again now except for corner cases:
- Failing over to another playlist after a load failure
- Remembering playlist redirects and using that URI
directly next time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
93d92d5ddf
adaptivedemux2: Handle more async stream cases
...
Handle BUSY flow returns when making calls from external threads, and inhibit
fragment downloads during stream prepare
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
7b3a1bac0a
hlsdemux2: Add llhls-enabled property to streams
...
Tidying: Make the llhls-enabled setting configurable through a stream property
instead of set manually after construction.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
d5edd48f13
hlsdemux2: Add gst_hls_demux_stream_set_playlist_uri
...
Add a method that configures the new playlist URI for a stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Edward Hervey
2c822735ba
hlsdemux2: Add HLS playlist loader
...
Add a helper that asynchronously loads and refreshes the playlist for HLS
streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
52d577eee1
adaptivedemux2: Fix for failed download handling
...
When playing at the live edge of a live playlist, and a download fails, we don't
expect there to be a next fragment. That case is handled lower down anyway, so
don't retry infinitely on spurious http errors at the live edge.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
ceda805abb
adaptivedemux2: Drop segment lock on stream_seek error.
...
If stream_seek() fails, make sure to drop the segment lock before bailing out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
44d3751d68
adaptivedemux2: Add gst_adaptive_demux2_stream_wait_prepared()
...
Add a method that waits for a stream to signal the prepare_cond after it returns
a BUSY flow return.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
d3acafbb5a
adaptivedemux2: Remove gst_adaptive_demux2_stream_has_selected_tracks
...
Use gst_adaptive_demux2_stream_is_selected_locked() instead, which is identical
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
8d0c7d9d93
adaptivedemux2: Move GST_ADAPTIVE_DEMUX_FLOW_BUSY to adaptivedemux.h
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
0962908e62
adaptivedemux2: Add start/stop vfuncs
...
Remove the can_start() vfunc, in favour of vfuncs when the stream starts/stops,
allowing the sub-class to do custom logic before (or preventing) the stream from
starting and stopping.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
fa0e9e2ec5
hlsdemux2: Remove unused function argument
...
Remove the demux argument from the
gst_hls_demux_stream_update_rendition_playlist() method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
67bc8d7cc0
adaptivedemux2: Add gst_adaptive_demux_get_loop()
...
Add an accessor function for retrieving the demuxer's scheduler thread loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
2082c8912d
adaptivedemux2: Add gst_adaptive_demux_period_add_stream()
...
Make a function for adding a stream to a period, for better encapsulation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
82839fb82f
adaptivedemux2: Add new flow return value for BUSY and PREPARE stream state
...
Neither are used yet, they're just placeholders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Edward Hervey
b03e68ea8c
hlsdemux2: support old compilers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
1cede1d0cf
hlsdemux2: Place HLS delivery directives in UTF-8 order.
...
Use new GstURI gst_uri_to_string_with_keys() API to produce the playlist URI
with query arguments in UTF-8 order.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
21cb739830
hlsdemux2: Avoid assert in _has_next_fragment()
...
gst_hls_demux_stream_has_next_fragment() can be called with a NULL
current_segment if we're past the end of the current playlist. In that case,
just return FALSE instead of hitting a critical in the playlist code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
018a6192bd
hlsdemux2: Include skipped segments in MSN calculation
...
When a playlist has skipped segments, increment the MSN to account for them so
the remaining segments end up with the right sequence numbers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
268a25b979
hlsdemux2: Use partial segment for playlist update interval
...
When playing LL-HLS playlists in LL-HLS mode, update the playlist more often (on
the partial segment interval) or else we end up downloading them in bursts and
playing further from the live edge than intended.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
55f6cd9243
hlsdemux2: Do a full playlist reload if delta fails
...
If we do a delta playlist request but then can't merge the result with the
existing playlist, retry with a full playlist request.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
874b665710
hlsdemux2: Fill in skipped segments if possible
...
After reloading a playlist using a delta request, use the previous playlist to
fill in skipped segments if possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
703d29549a
hlsdemux2: Add gst_hls_media_playlist_sync_skipped_segments()
...
Add a method that transfers over skipped segments from a reference playlist,
used to repopulate a delta playlist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
7496d2750e
hlsdemux2: Parse EXT-X-SKIP tag
...
Parse the attributes from the EXT-X-SKIP tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
8a0190b521
hlsdemux2: Use skip and blocking playlist delivery directives
...
Detect when we can use a blocking request and delta playlist update requests and
add the required delivery directives to the request URI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
c16366e5f3
hlsdemux2: Add gst_hls_media_playlist_get_next_msn_and_part()
...
Add a function that computes the media sequence number and/or part index that
are immediately after the end of the playlist, for use in blocking playlist
requests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
d41def562c
hlsdemux2: Use stream llhls_enabled flag
...
Use the stream's copy of the llhls_enabled flag when deciding whether to do
preload requests - the value that was cached when the stream started
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
42b0dd8c41
hlsdemux2: Split the stream object out
...
Move the stream object to a separate file to split the demux level behaviour
from the stream behaviour better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
5baf5f4b1e
hlsdemux2: Add a timestamp to the playlist
...
Store the timestamp for this playlist. If valid it represents the monotonic time
at which the data was retrieved, minus any proxy cache Age field.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
a3770523c0
adaptivedemux2/downloadrequest: add a helper to retrieve the Age header
...
Add a method to look at HTTP response headers and parse and return any Age
header, provided by caching proxy servers if the data was provided from a cache.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
90bedcb2bc
hlsdemux2: Fix missed segment match for partial-only segment
...
Fix a case where the matching code might not select the final partial-only
segment because it has too short a duration (while it's still being created)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
9edb2f6690
hlsdemux2: In live, match buffering to the hold back distance
...
When playing a live stream, make the recommended buffering threshold at most the
hold-back distance from live. If we start 3 seconds from the live edge, there's
no point trying to buffer more - we'll just hit the live edge and have to wait
for more data to be available anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
1e6550f623
hlsdemux2: Resync stream time on partial segment boundaries
...
When resyncing stream times in a playlist, support at any partial segment
position, not just at full segment boundaries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
bdec75f9dc
hlsdemux2: Calculate / transfer timing info for preloads
...
When fulfilling data requests, transfer timing information so the stream can
calculate data bitrates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
5192181ef5
adaptivedemux2: Add most recent data time and offset helper
...
Add a field to the DownloadRequest that reports the most recent time at which
data arrived. Update it in the DownloadHelper.
Add a method to retrieve the GST_BUFFER_OFFSET() for the DownloadRequest's data
buffer (if any).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
40938c8853
adaptivedemux2: Handle another case in download_request_take_buffer_range
...
Handle the case where we want to get a range from the available data that
doesn't start at the first available byte (and discard the bytes before that
start offset).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
cbb9cfe987
hlsdemux2: Cancel preload before fetching something else
...
When submitting a request for fragment or header that doesn't match any preload,
make sure there's not an ongoing preload for that data type, to avoid parallel
downloads using up bandwidth.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
70bfeff35d
hlsdemux2: Fix assertion on shutdown
...
After cancelling a DownloadRequest, the download helper may not do so
immediately, so we can't assert on the in_use flag. Also, since there's no
refcount on the preload hint struct in the download request callback data, make
sure no callbacks will be dispatched when we're going to free the preload hint
struct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
44107d0c4b
hlsdemux2: Implement the stream submit_request() vfunc
...
Implement the submit_request() vfunc for streams and fulfil requests from the
preload hint data if possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
a7e5236a39
hlsdemux2/preloader: Implement basic request handling
...
Implement fulfilment of HTTP requests from the active preload downloads by
finding any preload request that can provide the requested data and feeding
bytes from the internal DownloadRequest to the caller provided target
DownloadRequest.
Doesn't yet calculate timestamps to make the target request have a sensible
apparent bitrate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
940811d593
adaptivedemux2/downloadrequest: Add new methods
...
Add download_request_take_buffer_range() and
download_request_get_bytes_available() methods.
download_request_take_buffer_range() takes bytes from the front of the request
that satisfy the requested start/end byterange, and puts any remaining bytes
back into the DownloadRequest
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
76565e8979
adaptivdemux2: Improve a comment about unlocking download requests.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
a14f4f7054
adaptivedemux2: Make download mechanism overrideable
...
Make the mechanism by which DownloadRequests are fulfilled overrideable by the
subclass, in case it has an internal mechanism it can use (such as blocking
preloads in HLS)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
cb27c05ca7
hlsdemux2: Add preloader helper.
...
Add a helper that submits and handles blocking preload requests for future
PART/MAP data from live playlists. Add handling in the hlsdemux stream to submit
preload requests when hitting the end of the available segments in a live
playlist.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
5ca336226e
hlsdemux2: Add preload equality helper
...
Add a helper function that compares two preload hints for equality based on URI
and requested byte range.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
30bc72d6c7
adaptivedemux2: Define RFC8673_LAST_BYTE_POS
...
Define the recommended value from RFC8673 for the last byte of an open-ended
range request intended to invoke chunked blocking downloads of an incrementally
created resource.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
61516eadf6
hlsdemux2: Ignore partial segments when not live
...
Add some checks that LL-HLS support is enabled and that the current playlist is
live before proceeding to play any partial segments.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
401ca3ef44
hlsdemux2: Print playlist age in debug output
...
Store the timestamp when playlists are updated, and add some debug output to the
update_fragment_info that estimates how far from the live edge the fragment
currently is
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
43e042c4b7
hlsdemux2: Implement LL-HLS flag and part-hold-back/hold-back in live.
...
Add a flag to hlsdemux to enable or disable LL-HLS handling.
When LL-HLS is enabled and an LL-HLS playlist is loaded, use the part-hold-back
threshold to choose a starting segment.
For live streams that aren't LL-HLS, use the provided hold-back attribute, or
fall back to landing 3 segments from the end.
Make the gst_hls_media_playlist_seek() method able to choose a partial segment
within 2 target durations of the end of the playlist when requested.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:22 +00:00
Jan Schmidt
9848c1a1a1
m3u8demux2: Fix off-by-one and leak.
...
Fix an off-by-one in gst_hls_media_playlist_sync_to_playlist() that would ignore
the first fragment in the reference playlist. The error was harmless, since we
expect the reference playlist to be older than the playlist we're
synchronising (so the first/oldest segment in the reference playlist will likely
not exist in the new playlist), so this is just for correctness.
Also fix a segment leak in gst_hls_media_playlist_advance_fragment() when
ignoring the partial_only segment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
676fffd23c
hlsdemux2: Fix segment advance on partial segments.
...
Fix the duration passed to gst_adaptive_demux2_stream_advance_fragment() when
advancing from a partial segment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
e318bc3df5
hlsdemux2: Improve some debug output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
3537614c2b
hlsdemux2: Add and use gst_hls_media_playlist_find_position()
...
Add a function for synchronising current position with the contents of a
playlist that is specifically for that and can handle synchronising to a partial
segment.
gst_hls_media_playlist_seek() will be used only when performing external seek
requests, to find the best segment or partial segment at which to resume
playback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
c25814bac0
hlsdemux2: Add debug in find_segment_in_playlist()
...
In m3u8 segment matching, print the PDT that was matched between playlists.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
857541ae07
hlsdemux2: Fix some m3u8 segment leaks
...
Make sure unref m3u8 segments in some missed paths.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
7b9547a119
hlsdemux2: Allow starting at the partial_only segment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
1b8af98208
hlsdemux2: Recalculate partial segments in anchor segment
...
When recalculating the partial segment stream times in
gst_hls_media_playlist_recalculate_stream_time(), don't miss the anchor segment
itself.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
e1a6ec22ee
hlsdemux2: Dump init uri details for segments.
...
When dumping an m3u8 playlist to debug, include information about any
initialisation data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
2c82fdf276
hlsdemux2: Use gst_hls_media_playlist_recalculate_stream_time()
...
Instead of recalculating stream times manually in a playlist, let the playlist
do it, so that it fixes up partial segment stream times too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
d76aacfb82
hlsdemux2: LL-HLS improvements
...
Fixes for stream_time recalculation and handling in partial segments.
Disallow bitrate switching when in the middle of partial segments - only at a
full segment (or right before the first partial segment of a segment).
It's possible but more difficult to switch bitrates in the middle of a partial
segment group, since they are less likely to have aligned keyframes. In any
case, the seek code can't do that right now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
b6abe94890
hlsdemux2: Continue implementing LL-HLS support
...
Somewhat working support for proceeding into the partial segments appearing at
the live edge of the playlist.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
92e849070f
hlsdemux2: Mark locations where partial segments need handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
cfc62a69f7
hlsdemux2: Start adding partial_segment handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
9aa2497062
hlsdemux2: Note STABLE-RENDITION-ID is not handled
...
Add a comment that STABLE-RENDITION-ID is not yet parsed or used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
e2750d4ae3
hlsdemux2: Calculate stream times for partial segments
...
When calculating stream times for segments, fill in the stream time fields on
any attached partial segments
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
43a8d45ac6
hlsdemux2: Add unit test for parsing LL-HLS playlist
...
Test parsing of partial segments (EXT-X-PART, EXT-X-PART-INF) and preload
hints (EXT-X-PRELOAD)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
3c50f54310
hlsdemux2: Implement preload hint parsing
...
Load EXT-X-PRELOAD-HINT into a preload_hints array in the media playlist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
3ed6a23a4d
hlsdemux2: Implement EXT-X-SERVER-CONTROL parsing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
07f51396af
hlsdemux2: Add parsing of partial segments
...
Add partial segments to each media segment, and potentially create a trailing
dummy segment if there are partial segments at the end of the playlist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Jan Schmidt
fac7177354
hlsdemux2: make helper function for parsing times
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Edward Hervey
4e946890b2
adaptivedemux2: Global output position is always positive
...
Change to non-signed GstClockTime for tracking
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:21 +00:00
Seungha Yang
e1a22402d3
tools: Make sure UTF-8 encoded command line arguments on Windows
...
On Windows, arguments passed in main() are system codepage
encoded and might not be valid UTF-8 string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3828 >
2023-02-03 16:05:19 +00:00
Seungha Yang
090d50e1a0
tests: Add CUDA memory allocator test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
10ade466ef
nvenc: Use CUDA stream of memory if exists
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
7a8bb85523
cudaupload, cudadownload: Update for shared CUDA stream
...
Use CUDA stream of memory if exists
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:43 +00:00
Seungha Yang
aabcba16db
nvdecoder: Skip synchronization if downstream buffer holds CUDA stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
ddc5f1d425
cudaconvertscale: Add support for shared CUDA stream
...
If CUDA stream is shared by upstream/downstream, don't sync at
convert element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
1cb47d549b
cudaconverter: Don't sync per conversion
...
Caller should take care of synchronization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
8d14194fdd
nvencoder: Add support for shared CUDA stream
...
Sets CUDA stream on CUDA buffer pool so that CUDA stream object
can be shared
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
d409c35367
cudabufferpool: Add support for CUDA stream use in memory
...
* Use GstCudaPoolAllocator
* Pass configured GstCudaStream object to allocator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
30d06e03c2
cudamemory: Make GstCudaStream-aware
...
This will be used for CUDA stream sharing.
* Adding GstCudaPoolAllocator object. The pool allocator will
control synchronization of allocated memory objects.
* Modify gst_cuda_allocator_alloc() API so that caller can specify/set
GstCudaStream object for the newly allocated memory.
* GST_CUDA_MEMORY_TRANSFER_NEED_SYNC flag is added in addition to
existing GST_CUDA_MEMORY_TRANSFER_NEED_{UPLOAD,DOWNLOAD}.
The flag indicates that any GPU command queued in the CUDA stream
may not be finished yet, and caller should take care of the
synchronization.
The flag is controlled by GstCudaMemory object if the memory holds
GstCudaStream. (Otherwise, GstCudaMemory will do synchronization
as before this commit). Specifically, GstCudaMemory object will set
the new flag automatically when memory is mapped with
(GST_MAP_CUDA | GST_MAP_WRITE) flags. Caller will need to unset
the flag via GST_MEMORY_FLAG_UNSET() if it's already synchronized
by client code.
* gst_cuda_memory_sync() helper function is added to perform synchronization
* Why not use CUevent object to keep track of synchronization status?
CUDA provides fence-like interface already via CUevent object,
but cuEventRecord/cuEventQuery APIs are not zero-cost operations.
Instead, in this version, the status is tracked by using map and
object flags.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
9eaae61a44
cudamemory: Allow nullptr allocator object
...
The GstCudaAllocator object doesn't hold any device object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
0a81c8deb3
nvcodec: Port to GstCudaStream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
a7c54ebc06
cuda: Add GstCudaStream object
...
Wrap CUstream handle with GstCudaStream to make it ref-counted
object. This GstCudaStream object will be used later for
CUDA stream sharing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
661b5f60c6
cuda: Provide single header include entry point
...
Add "gstcuda.h" header file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3629 >
2023-02-03 15:27:42 +00:00
Seungha Yang
c0a4f41525
pluginloader-win32: Prepend gstreamer-1.0-0.dll directory to PATH env for child process
...
Usually gst-plugin-scanner.exe will be located under libexec/gstreamer-1.0
or even somewhere user specified location via GST_PLUGIN_SCANNER
environment. So, in order for child process to be able to load
GStreamer DLLs, parent process will need to update PATH env
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3886 >
2023-02-03 14:25:21 +00:00
Seungha Yang
bc0708eafb
nvencoder: Fix min buffers parameter of allocation query in auto GPU mode
...
At the time when propose_allocation() get called, encoder session
would not be initialized yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3888 >
2023-02-03 22:19:22 +09:00
Sebastian Dröge
8aa376d541
gstreamer: Decide rate-control-mode based on the bitrate/cqp/crf settings
...
And also keep the default encoder settings but simply override them with
our own values that we care about.
This mirrors the encoder configuration behaviour from ffmpeg.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
70c83bc59c
gstreamer: Use GLib types instead of stdint.h types consistently
2023-02-03 12:48:56 +02:00
Sebastian Dröge
dd1db338df
gstreamer: Fix double unref
...
The ownership of the caps is passed to `gst_video_encoder_set_output_state()`.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
df064c6cc2
gstreamer: Configure colorimetry and HDR metadata if present
...
This raises the minimum GStreamer requirement to 1.16 as used by the CI
and optionally makes use of 1.18 features, including HDR.
2023-02-03 12:48:25 +02:00
Sebastian Dröge
aeee6f5b6a
gstreamer: Set correct maximum width/height limits
2023-02-03 12:35:24 +02:00
Sebastian Dröge
65eb56e7ad
gstreamer: Use correct 10-bit format on big endian systems
2023-02-03 12:35:24 +02:00
Sebastian Dröge
90fd191392
gstreamer: Set force_key_frames=true
in CQP/CRF mode
...
Other modes don't support that so keyframes can't be requested at
arbitrary times.
2023-02-03 12:35:24 +02:00
Sebastian Dröge
f24643b48f
gstreamer: Add support for setting arbitrary parameters via parameters-string
property
2023-02-03 12:35:18 +02:00
Sebastian Dröge
d746164ba0
gstreamer: Fix naming of function name that was taken over from the SVT-HEVC encoder
2023-02-03 12:34:38 +02:00
Sebastian Dröge
ddb9a037e1
gstreamer: Don't overwrite application configuration on initialization and initialize with the default configuration
2023-02-03 12:34:38 +02:00
Sebastian Dröge
7b1b33aff2
gstreamer: Clean up property handling
...
Use more correct types, defaults and clean up property names a bit.
This now matches the configuration provided by ffmpeg.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
78ee7e82d9
gstreamer: Mark all internal functions as static
2023-02-03 12:34:38 +02:00
Sebastian Dröge
10769e7fe6
gstreamer: Fix encoder and buffer state life cycle
...
Allocate/deallocate the encoder in `open()`/`close()` and its buffers in
`start()` / `stop()`.
Also fail correctly if configuring the encoder fails.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
24d6027d2e
gstreamer: Remove unused frame_count
and dts_offset
2023-02-03 12:34:38 +02:00
Sebastian Dröge
2d250439f1
gstreamer: Fix debug category description
2023-02-03 12:34:38 +02:00
Adrian Fiergolski
79d2af5626
avtp: rvf: add missing since markers
...
Add missing markers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:46 +01:00
Adrian Fiergolski
9f880b37fc
avtp: rvf: add AVTP RVF de-payload support
...
Add AVTP Raw Video Format de-payload support. The element supports only
GRAY16_LE output format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:42 +01:00
Adrian Fiergolski
d8f449ccda
avtp: cvf: extract AVTP VF depayload base class
...
Extract a part which could be common with the AVTP RVF depayload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:38 +01:00
Adrian Fiergolski
4f2fde0163
avtp: rvf: add AVTP RVF payload support
...
Add AVTP Raw Video Format payload support. The element supports only GRAY16_LE
input format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:33 +01:00
Adrian Fiergolski
8702a1fa67
avtp: cvf: extract AVTP VF payload base class
...
Extract a part which could be common with the AVTP RVF payload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:29 +01:00
Jan Schmidt
edd5911249
gl/cocoa: Return a strong ref to the parent GstGLContext
...
If the GstGLCAOpenGLLayer was initialized via a parent
context, make sure to ref the context before returning it
from getGLContext as all callers will unref it.
Follow up to !3729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3881 >
2023-02-02 13:53:07 +00:00
Jan Schmidt
138863b327
gsturi: Add API to order query strings
...
Add gst_uri_get_query_string_ordered() and gst_uri_to_string_with_keys() that
allow constructing the URI string with query arguments in a specific order.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3803 >
2023-02-02 11:02:47 +01:00
Piotr Brzeziński
ae200a4d62
vtenc: Disable HW acceleration for interlaced ProRes
...
Due to a bug in the VT API, attempting to encode interlaced content
with ProRes results in an error, halting the pipeline instead of
gracefully falling back to software encoding.
Should be removed in the future if Apple ever fixes this issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3222 >
2023-02-02 06:18:02 +00:00
He Junyan
60731adea6
va: Avoid the array index overflow when filling 8x8 scaling list.
...
The VA API has not defined the scaling list entries for U/V planes
for the 4:4:4 stream. In fact, we do not meet the 4:4:4 format output
for H264 so far, and scaling list is not used frequently, so we just
print out some warning and ignore these scaling list values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3749 >
2023-02-02 00:41:42 +00:00
Thibault Saunier
6b30a5d987
adaptivedemux2: Generate proper stream-id taking into account upstream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3160 >
2023-02-01 22:26:34 +00:00
Thibault Saunier
3963396716
gstutils: Add a utility to create a stream-id without a pad
...
We already have functions to generate a stream-id from pads but in the
end those pads are not even used in most cases. This adds functions to
generate a stream-id even before creating the source pads for the
element that is going to use it. For example a demuxer that is properly
implements the GstStream/GstStreamCollection API will not have a Pad but
already needs to generate a stream-id.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3160 >
2023-02-01 22:26:33 +00:00
Colin Kinloch
25b4e84fe5
validate: Allow Ctrl-C to quit on fault
...
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3868 >
2023-02-01 21:40:01 +00:00
Seungha Yang
29bd8de052
nvvp9dec: Fix return value
...
It should return GstFlowReturn value, not boolean
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3870 >
2023-02-02 05:07:44 +09:00
Sebastian Dröge
b12c66042b
aom: Include stream-format and alignment in the AV1 caps
...
The decoder does not work with arbitrary alignment and annexb stream
format and the encoder can give the information that it outputs
obu-stream/tu to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3862 >
2023-02-01 19:04:32 +00:00
Seungha Yang
09d29cca5a
pluginloader-win32: Watch child process handle on connection
...
... so that parent can avoid waiting if child process got terminated
unexpectedly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3863 >
2023-02-01 17:00:11 +00:00
Seungha Yang
464a8be3a4
pluginloader-win32: Check pipe state in child process
...
Retry if server is not ready for the connection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3863 >
2023-02-01 17:00:11 +00:00
Seungha Yang
0df7cd852c
pluginloader-win32: Enhance debug log
...
Change log level to ERROR if it's unexpected, and print error reasons
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3863 >
2023-02-01 17:00:10 +00:00
Seungha Yang
f314884b7d
pluginloader-win32: Zero initialize overlapped struct before use
...
Helper child process might be spawned multiple times for some reason
then overlapped struct can hold garbage data. Always clear the struct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3863 >
2023-02-01 17:00:10 +00:00
Olivier Crête
16158df5b2
wayland: Export the _get_type() functions
...
Add the macro before the declaration so the types are properly exported,
this makes it possible to do dynamic casting and checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3858 >
2023-02-01 15:29:26 +00:00
James Hilliard
fc5159c2d8
Fix gstreamer-validate-1.0 dependency name
...
The gst-devtools project generates gstreamer-validate-1.0.pc, this
must match the dependency in gst-editing-services for detection
to work properly.
Fixes:
Run-time dependency gst-validate-1.0 found: NO (tried pkgconfig and cmake)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3859 >
2023-02-01 14:15:45 +00:00
Matthew Waters
659c45ee7e
qml6: implement qml6gloverlay
...
Based on the Qt5 version of qmlgloverlay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3845 >
2023-02-01 13:23:52 +00:00
Tim-Philipp Müller
aeb0fa9993
subprojects: Update libsrtp2 wrap to v2.5.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3860 >
2023-02-01 10:34:35 +00:00
Guillaume Desmottes
3d1390d31a
rtpptdemux: set different stream-id on each src pad
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3855 >
2023-02-01 09:17:33 +00:00
Guillaume Desmottes
cc2b8f6ae8
rtpssrcdemux: set different stream-id on each src pad
...
All the RTP src pads were sharing the same stream-id while each actually
carry a different stream.
This was causing problem for example when funneling the streams together
and then trying to split them using 'streamiddemux'.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3855 >
2023-02-01 09:17:33 +00:00
Sebastian Dröge
3ca85189fd
rtspsrc: Also consider "Method Not Valid In This State" error in broken control URL handling workaround
...
Some servers send a 455 error instead of any reasonable error when using
a correctly constructed control URL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3854 >
2023-02-01 07:55:24 +00:00
Thibault Saunier
35e2ecd48b
clocksync: Add "QoS" support
...
When ClockSync synchronizes the data stream on the clock, it should also
push `QoS` events if the user wants to do it as, as stated in [the QoS
design doc] "Elements that synchronize buffers on the pipeline clock
will usually measure the current QoS".
The logic has been replicated from `GstBaseSink`.
[the QoS design doc]: https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/qos.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2225 >
2023-02-01 07:02:19 +00:00
Jordan Petridis
dfc6545741
meson: Use gtk tarball for the subproject wrap
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3852 >
2023-02-01 06:29:11 +00:00
Mengkejiergeli Ba
dfe16a5cf2
msdkallocator: Use const ptr of videoinfo in func param
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3621 >
2023-02-01 04:31:23 +00:00
Benjamin Gaignard
16ad80179b
codec2json: Add av12json element
...
This element convert AV1 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Benjamin Gaignard
fd588a50e4
codec2json: Add vp82json element
...
This element convert vp8 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Matthew Waters
b134433e0b
examples/webrtc-sendrecv: add some dot file dumps on async-done and error messages
...
Just as a helpful thing if debugging is needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3823 >
2023-01-30 05:22:59 +00:00
Tim-Philipp Müller
9a300fc501
validate-scenario: fix g-i warning in annotation
...
gst-validate-scenario.c:2485: Warning: GstValidate: missing ":" at column 28:
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3841 >
2023-01-28 20:03:05 +00:00
Mathieu Duponchelle
4d240c27b7
BaseSrc: fix transfer annotation for fixate virtual method
...
The fixate virtual method has the same semantics as gst_caps_fixate(),
so the caps parameter must be marked as (transfer full).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3830 >
2023-01-28 03:48:21 +00:00
Matthew Waters
293ad62035
qt6: add qml6glsrc element
...
Same functionality as qmlglsrc (Qt5) but for Qt6.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3737 >
2023-01-28 02:24:09 +00:00
Thibault Saunier
fa23e24f41
validate: Fix gst_validate_execute_action annotation
...
The action passed in is transfer full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3829 >
2023-01-28 01:31:14 +00:00
Alicia Boya García
8a6023a38a
qtdemux: Use safer clearing functions in dispose()
...
In theory, `dispose()` functions should be idempotent and should be
prepared not to crash or cause a double-free if an unref done from
inside caused a recursive call to `dispose()` of the same object.
https://developer.gnome.org/gobject/stable/howto-gobject-destruction.html
This patch modifies the `dispose()` method to honor these constraints.
Since the double `dispose()` call won't actually occur in qtdemux (there
is no cycle detection mechanism that could invoke it to work that way),
this is more of a code cleanup than a user-facing problem fix.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3822 >
2023-01-28 00:32:57 +00:00
Tim-Philipp Müller
4051581ed8
codecparsers: vp9parser: use single allocation for parser structs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3790 >
2023-01-27 23:50:19 +00:00
Thibault Saunier
d1e3941a89
uritranscodebin: Fix unref of NULL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3831 >
2023-01-27 21:58:43 +00:00
Seungha Yang
c6a6c56cdf
win32ipc: Add support for zero-copy rendering
...
* Extend protocol so that client can notify of releasing shared memory
* Server will hold shared memory object until it's released by client
* Add allocator/buffer pool to reuse shared memory objects and buffers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3765 >
2023-01-27 18:55:13 +00:00
Seungha Yang
c32b898cbb
mpegpsdemux: Ignore DTS if PTS < DTS
...
It's possibly timestamp rollover case. But PTS < DTS is already
invalid case anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3657 >
2023-01-27 17:48:32 +00:00
Georges Basile Stavracas Neto
a8a7ee6d83
glvideomixer: Add xalign and yalign properties
...
With the addition of the 'keep-aspect-ratio' sizing policy, content
that doesn't fit the target size is downscaled according to its own
aspect ratio to fit that target size, and centered.
Centering might not always be the desired behaviour, however;
consumers of this API might want to align the resulting picture to
the left or to the right.
To account for any of these cases, add two new properties to the
glvideomixer pad: xalign, and yalign. They operate on normalized
coordinates (0.0 for start, 1.0 for end), and default to 0.5 which
centers content.
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3762 >
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3762 >
2023-01-27 16:21:28 +00:00
Sebastian Dröge
c5d211d45a
gldisplay: Mark gst_gl_display_create_context()
other_context
parameter as nullable
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/438
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3825 >
2023-01-27 16:22:06 +02:00
Mathieu Duponchelle
c8298a2787
BaseSrc, PushSrc: add nullable annotations to virtual methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3806 >
2023-01-26 22:35:31 +00:00
Daniel Knobe
5e9a32ed8c
imagefreeze: add bayer support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3807 >
2023-01-26 21:30:51 +00:00
Tim-Philipp Müller
beb4f4bff1
sdpdemux: add "media" property to allow audio-only or video-only streaming
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3531 >
2023-01-26 16:17:21 +00:00
Tim-Philipp Müller
7f2a9d738a
sdpdemux: add "rtcp-mode" property to disable RTCP
...
If we know there's only one stream we care about and we
don't have to synchronise audio and video, or send RRs,
we might just as well not hook up all the RTCP bits and
use fewer threads and sockets and simplify the pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3531 >
2023-01-26 16:17:21 +00:00
Seungha Yang
983d78daa5
wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
...
... or older. Work around an OS bug that loopback capture
device doesn't notify event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1738
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3782 >
2023-01-26 13:31:20 +00:00
Víctor Manuel Jáquez Leal
6b04c8ee56
vulkan: imagebufferpool: Remove video meta handling.
...
Remove video meta handling since it's not used at all, also removed its usage in
vkvideofilter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3722 >
2023-01-26 11:49:00 +00:00
Jan Alexander Steffens (heftig)
e3fa65abab
aggregator: Warn about the right segment's format
...
We were checking the head segment here, not the current segment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/611 >
2023-01-26 10:39:08 +01:00
Jan Alexander Steffens (heftig)
08d4b0051a
aggregator: Always lock aggpad around update_time_level
...
`aggpad->segment` is protected by the `aggpad`'s object lock. We need to
take the lock before calling `update_time_level`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/611 >
2023-01-26 10:39:08 +01:00
Bart Van Severen
024ef7659d
rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: fix incorrect scheme for tls transport methods
...
gst_rtsp_url_get_request_uri returns rtsp://... url when requested url is rtsps://, this is not
in accordance with https://www.rfc-editor.org/rfc/rfc7826.html#section-19.2 .
This also impedes setting up a rtsps session with a live555 rtsp server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3568 >
2023-01-26 07:46:59 +00:00
Bart Van Severen
a62b07f3b4
sdp: gstmikey: gst_mikey_message_to_caps: extract salt and append to srtp-key
...
A KEMAC can hold both key and salt, so if salt is present, we should extract it
and append it to the srtp-key cap because libsrtp expects the srtp-key to hold
the concantenated srtp master key and salt.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3568 >
2023-01-26 07:46:59 +00:00
Bart Van Severen
5678151799
sdp: gstmikey: gst_mikey_message_to_caps: extract ROC from first crypto session
...
We need the ROC to decrypt a SRTP stream as the ROC is part of the AES IV.
So look for first crypto session, from which we can get the ROC and find corresponding
crypto policy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3568 >
2023-01-26 07:46:59 +00:00
Daniel Ulery
befab7af72
filesink: Adds rb+ file mode
...
Adds rb+ file mode to filesink so that files can be pre-allocated. This
can be use to keep reduce fragmentation over time with splitmuxsink.
Fixes #955
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1532 >
2023-01-26 07:05:21 +00:00
Víctor Manuel Jáquez Leal
d8cb9d2ce3
vulkan: physicaldevice: Dump 1.3 features and properties.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3721 >
2023-01-26 03:19:58 +00:00
Víctor Manuel Jáquez Leal
e54d334526
vulkan: memory: Flush non coherent memory after write.
...
Spec 7.1.3:
If a memory object does not have the VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
property, then vkFlushMappedMemoryRanges must be called in order to guarantee
that writes to the memory object from the host are made available to the host
domain, where they can be further made available to the device domain via a
domain operation. Similarly, vkInvalidateMappedMemoryRanges must be called to
guarantee that writes which are available to the host domain are made visible to
host operations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3723 >
2023-01-26 02:31:09 +00:00
Sebastian Dröge
aba0b0e90a
gstreamer: Use stream-format=obu-stream alignment=tu in the caps
...
There is no byte-stream/au format for AV1 but only for H264, and the
encoder actually outputs obu-stream/tu instead of the annexb
stream-format that is similar to H264 byte-stream format.
Without this the encoder can't be used with elements that require a
specific AV1 stream-format, e.g. the MP4 or Matroska/WebM muxer.
2023-01-26 01:46:46 +00:00
Seungha Yang
621feb32e9
gst-plugin-scanner: Add support for Windows
...
Adding Win32 specific plugin loader implementation.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/11
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3512 >
2023-01-25 18:24:28 +00:00
U. Artie Eoff
d071ea714d
vp9parser: remove checks for g_new0 result
...
The g_new0 aborts the process if it fails. Thus,
there is no need to check if the g_new0 call succeeded.
This should silence a resource leak warning by static
scan.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3788 >
2023-01-25 17:36:54 +00:00
Nirbheek Chauhan
32e8ff4e2a
webrtc_sendrecv.py: Fix PEP8 warnings in CI lint
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
6a83602601
webrtc_sendrecv.py: Handle LATENCY messages
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
5500c228f6
webrtc_sendrecv.py: Add bus message handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
9b2404e76d
webrtc_sendrecv.py: Add support for using H264 encoding
...
Currently only works when we are creating the offer or the offer only
contains H264.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Nirbheek Chauhan
6f99faa080
webrtc_sendrecv.py: Use sine wave for audio instead of red-noise
...
Makes it easier to notice when there's packet loss or other audio
distortion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3742 >
2023-01-25 16:53:17 +00:00
Pawel Stawicki
492d2b6498
v4l2h264dec: Fix Raspberry Pi4 will not play video in application
...
Ensure object v4l2object->pool will be released by
correctly releasing the temporary thread-safety lock
Fixes issue #1729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3786 >
2023-01-25 16:07:50 +00:00
Georges Basile Stavracas Neto
56513a18cb
glvideomixer: Add 'sizing-policy' pad property
...
The sizing policy allows selecting between the current behavior,
which deforms the texture to fill the width and height of the
pad; and a new 'keep-aspect-ratio' sizing policy, which fits the
texture within the rectangle respecting its original aspect ratio.
The reason for this is that this allows avoiding extra elements
in the pipeline, and reduces the number of buffer passing through
the pipeline.
Most of this code is a direct port of the sizing policy handling
of the compositor element, except it is adapted to operate on GL
texture coordinates through the projection matrix.
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3760 >
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3760 >
2023-01-25 15:16:31 +00:00
Sebastian Dröge
bfaa02ab56
gst: Fix gst_type_find_peek() return value annotation
...
It's not possible to annotate a in-parameter for a return value array as
the array length. Both are assumed to have the same direction and the
current annotation causes the size parameter to be considered an out
parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3787 >
2023-01-25 13:16:44 +00:00
Sebastian Dröge
0378bd3fed
sdp: Fix gst_mikey_payload_key_data_set_interval() array length annotation
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1744
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3787 >
2023-01-25 13:16:44 +00:00
Nirbheek Chauhan
f1570b26a6
Add a wrap for the latest gtk4
...
This is the oldest tag that contains meson fixes needed to be able to
build gtk as a subproject on macOS and Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +00:00
Nirbheek Chauhan
947c464830
libxml2.wrap: update to latest version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +00:00
Nirbheek Chauhan
cc3078d819
meson: Add a wrap file for libsrt2p
...
And allow fallback to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +00:00
Nirbheek Chauhan
8e8d8206f1
meson: Add build_rpath for qt5 plugin on macOS
...
Without this, the plugin cannot be loaded in a devenv because the
RPATH is not added to the plugin dylib. This RPATH will be stripped on
install, which is what we want.
When deploying apps, people are supposed to use `macdeployqt` to
create an AppBundle that bundles Qt for you and sets the RPATHs
correctly to point to that bundled Qt.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +00:00
Nirbheek Chauhan
eff9455ada
nvcodec: Log readable errors when initializing CUDA
...
It is really difficult for people to figure out why nvcodec has
0 features. Even the debug log is cryptic. Also make sure the errors
go to the ERROR log level, which is more likely to be enabled by
default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3776 >
2023-01-25 10:08:10 +00:00
Nirbheek Chauhan
43ae6b421b
nvcodec: Fix reporting of CuDeviceGetCount error
...
cuda_ret is was always going to be CUDA_SUCCESS in the error log.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3776 >
2023-01-25 10:08:10 +00:00
Mathieu Duponchelle
2048a0a4d9
redenc: fix setting of extension ID for twcc
...
1 was previously hardcoded in, and the bug went under the radar because
webrtcsink hardcodes the number too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3785 >
2023-01-24 22:52:48 +00:00
Tim-Philipp Müller
1c7003f95f
gstreamer-vaapi: drop use of GSlice allocator
...
Some code incorrectly relied on GstVideoDecoder/Encoder base
class implementation details.
Follow-up to !3695 .
Fixes #1742 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3783 >
2023-01-24 22:30:10 +00:00
Sebastian Dröge
20d394cb21
appsrc: Don't chain up BaseSrc::negotiate()
...
If we have caps then we can only set exactly those caps, if we have no
caps yet then negotiating anything is not very meaningful because the
caps are defined by the application and not downstream.
Avoids, among other things, an unnecessary allocation query and spurious
useless caps being set before the first buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3757 >
2023-01-24 21:44:51 +00:00
Seungha Yang
2e574a80d9
d3d11: Don't use g_alloca()
...
_alloca CRT function is deprecated. Moreover, stack allocation
for string is not a good idea. We can use _malloca inline
function instead, but all use of _alloca in d3d11 library/plugin
are not performance critical path at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3652 >
2023-01-24 20:27:43 +00:00
Edward Hervey
21cad29bcd
multiqueue: Handle use-interleave latency live pipelines
...
Due to the dynamic nature of multiqueue, when `use-interleave` is used we can't
report a maximum tolerated latency (when queried) since it is calculated
dynamically.
When in such live pipelines, we need to make sure multiqueue can handle the
lowest global latency (provided by this event). Failure to do that would
result in not providing enough buffering for a realtime pipeline.
Fixes #1732
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3772 >
2023-01-24 19:42:49 +00:00
Sebastian Dröge
e9fa844b27
gst-plugins-rs: Track main branch again
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3781 >
2023-01-24 19:08:50 +00:00
Thibault Saunier
77b6f58074
encodebin: Add timestamper elements when available
...
Timestamper elements are made to ensure stream timestamp are clean and
ready to be used by muxers, we should make use of them to cleanup
streams before muxing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3779 >
2023-01-24 16:31:40 +00:00
Thibault Saunier
30c73f09e3
timestamper: Classify as Timestamper and make them RANK_MARGINAL
...
This way those elements can be autoplugged when needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3779 >
2023-01-24 16:31:40 +00:00
Thibault Saunier
095a5ba425
factory: Add "Timestamper" as new factory type
...
This will be used by elements that correct timestamps (like the
h264timestamper for example)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3779 >
2023-01-24 16:31:40 +00:00
Tim-Philipp Müller
4c4245d6a8
jpegformat: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
b424fa6a6e
rist: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
80e882d266
netsim: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
20e6735d20
mpegpsmux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
2b4b23d2a2
mpegtsdemux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
85eb323b08
mpegtsmux: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
3bd495f093
jp2kdecimator: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
3d9f3bfd66
rtmp2: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
71890cc2f1
mxf: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
8f252b1e99
dvbsuboverlay: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
82cd540d08
svthevcenc: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
93fc68c5ba
x265: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
bfc2fab9ea
wpe: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
664d83de99
ttml: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
c095a1d620
srtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
4994c730c8
resindvd: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
d1fe992f1f
kate: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
c1759353c1
openjpeg: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
e214be79de
libs: va: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
32384c0c69
libs: codecparsers: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
e6da8deb8e
libs: insertbin: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
92f0f48472
libs: mpegts: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
756a8986d0
good: tests: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
f6950b4537
v4l2: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
74e103e53f
xingmux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
fc82621e09
multiudpsink: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
8222b97331
rtpmanager: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
e66f8cff26
rtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
56d3beed0b
multifile: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
e256472ca6
matroska: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
172c6ca1dc
flv: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
9f4c514c52
dtmf: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
2a3513ef6c
vpx: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
9ab2541266
gdkpixbuf: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
1df462ec5b
pulseaudio: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
9a235838c8
adaptivedemux2: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
dfad48704c
mpeg2dec: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
cb64cdae95
x264enc: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
13f3feed04
libs: gl: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
d56648ccdb
libs: video: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
df83590008
tag: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
58722ba48e
libs: sdp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
8bf59703a1
libs: pbutils: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
506c65aa27
libs: audio: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
11b47c4e29
fdmemory: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
7657b8cb51
tests: rtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
fd43b3d604
ximage, xvimage: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
8d7eb2eb4f
typefindfunctions: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
0feb2770e6
encodebin: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
165fdac5c6
playback: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
a9c5a52b25
oggdemux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
45aac1e938
base: bitwriter: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
3dd12cb640
inputselector: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
78a941e873
multiqueue: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
fa55d8302b
queue2: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
ed78e55bc7
tracers: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
78149326c9
libs: base: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
1919030363
baseparse: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
ba6d952cd5
gstcheck: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
bda6287075
controller: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
c1baa37f74
tracerutils: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
3261daa623
taskpool: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
eeced74fce
segment: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
19a6468a53
sample: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
f343d01f10
query: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Tim-Philipp Müller
e190ff16cc
iterator: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
6a0be7ea56
event: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
dcc8830bb2
info: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
2f88c68659
devicemonitor: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
15c1b9ad45
datetime: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
384c4f1bef
clockentry: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
1c8bb3f8db
context: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
267adee5b7
uri: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
755f214a52
meta: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
9dd70085f1
message: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
976861a07a
gstvalue: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
76c8a619f9
caps, capsfeatures: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
7d58554f4c
bus, poll: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
5a2d643f9b
bin: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
aef5456140
taglist, tagsetter: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
7d1675e42e
toc, tocsetter: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
25f7fa1efc
allocator, buffer, bufferlist: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
9e71898337
registrychunks: get rid of internal GST_REGISTRY_CHUNK_FLAG_MALLOC
...
Not actually needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
ade83c8355
registry: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
e675519a2c
gstparse: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
28dc56dc6c
core: examples: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
d5d25c0f7a
core: tests: drop use of GSlice allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Tim-Philipp Müller
6bdef53683
tools: gst-stats: drop use of GSlice allocator
...
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/291
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:05 +00:00
Alicia Boya García
2c2767b94a
Use automatic pad activation in elements that can take advantage of it
...
Pads are activated automatically when they are added if the element
state is >=PAUSED, so it's not necessary to activate them manually
anymore.
This patch removes manual pad activation from gstaggregator, gstconcat,
gstfunnel, and gstinputselector.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3636 >
2023-01-24 14:42:35 +00:00
Sebastian Dröge
13fc49770e
avvidenc: Don't take ffmpeg timestamps verbatim but only use them to calculate DTS
...
The ffmpeg timestamps are inaccurate and only in framerate granularity.
To avoid generating inaccurate output timestamps, especially with
variable framerate streams, only use the ffmpeg timestamps for
calculating the DTS.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544
again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3780 >
2023-01-24 13:50:11 +00:00
Sebastian Dröge
5372b77987
Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate"
...
This reverts commit 50db59449e
.
This broke the MPEG-1 video encoder as it requires the framerate to be
used for the timebase.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1734
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3780 >
2023-01-24 13:50:11 +00:00
Jan Alexander Steffens (heftig)
12bc5b7a62
vaapi: Skip plugin pc file for shared plugins
...
Following similar logic in the other subprojects.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3778 >
2023-01-24 13:17:45 +00:00
David Svensson Fors
d0edc1ad6a
udpsrc: GstSocketTimestampMessage only for SCM_TIMESTAMPNS
...
Deserialize socket control messages as GstSocketTimestampMessage only
if (level, type) is (SOL_SOCKET, SCM_TIMESTAMPNS).
Without this patch, messages with types SCM_RIGHTS or SCM_CREDENTIALS
could be deserialized as GstSocketTimestampMessage instead of
GUnixFDMessage or GUnixCredentialsMessage from gio.
Fixes #1736
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3777 >
2023-01-24 10:49:01 +01:00
Hiero32
145d362129
taginject: Add scope property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3697 >
2023-01-24 00:20:53 +00:00
Tim-Philipp Müller
41c69372b5
Back to development
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3775 >
2023-01-23 23:04:53 +00:00
Tim-Philipp Müller
f13c65d977
Release 1.22.0
2023-01-23 19:41:07 +00:00
Tim-Philipp Müller
6671a24e36
gst-plugins-ugly: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773 >
2023-01-23 16:31:20 +00:00
Tim-Philipp Müller
2fe212bdbe
gst-plugins-bad: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773 >
2023-01-23 16:31:20 +00:00
Tim-Philipp Müller
060712f68f
gst-plugins-good: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773 >
2023-01-23 16:31:20 +00:00
Tim-Philipp Müller
8227b04429
gst-plugins-base: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773 >
2023-01-23 16:31:20 +00:00
Tim-Philipp Müller
478c6159eb
gstreamer: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773 >
2023-01-23 16:31:20 +00:00
Seungha Yang
467a2408a1
d3d11compositor: Workaround blending artifacts on Intel platform
...
Disable vendor implemented converter in d3d11compositor to workaround
artifacts
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3770 >
2023-01-23 23:34:04 +09:00
Ruben Gonzalez
2cdfccc3b5
glvideomixer: Fixing error with mouse navigation events when no pixel-aspect-ratio
...
Handling mouse navigation events in glvideomixer element, if no
pixel-aspect-ratio info in the caps, an assertion error is produced
inside gst_util_fraction_multiply because default denominator is zero.
Error fixed:
```
(gst-launch-1.0:102654): GStreamer-CRITICAL **: 00:47:51.598: gst_util_fraction_multiply: assertion 'b_d != 0' failed
```
Simple pipeline to reproduce the issue:
```
gst-launch-1.0 -v glvideomixer name=mix ! glimagesinkelement gltestsrc ! mix.sink_0
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3766 >
2023-01-22 00:52:56 +01:00
Edward Hervey
4c1d01ff57
playback: New playback elements are no longer experimental
...
The API is not expected to change and it has been used extensively since 1.18.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3761 >
2023-01-21 12:28:21 +00:00
Sebastian Dröge
4e86c77270
examples: webrtc: rust: Update dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
f45136827b
examples: webrtc: multiparty-sendrecv: rust: Remove unnecessary macro recursion limit annotation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
bf4a3c89cd
examples: webrtc: sendrecv: rust: Implement OFFER_REQUEST
handling
...
Allow requesting an offer from the peer if we're joining a call with a
peer, and allow the peer to request an offer from us if waiting for an
incoming call.
This implements all 4 variants the protocol allows for.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
638465908e
examples: webrtc: sendrecv: rust: Allow providing our ID via the commandline
...
Otherwise it continues to use a random ID as before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
541c637910
examples: webrtc: sendrecv: rust: Implement TWCC support in both directions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
6541dccaea
examples: webrtc: rust: Set keyframe-max-dist=2000 and picture-id-mode=15-bit for VP8 and perfect-timestamps=true for audio
...
This makes it in sync with the C sendrecv and generally behaves better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Sebastian Dröge
083b9f2a6e
examples: webrtc: sendrecv: rust: Use the correct payload types if the remote is the offerer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758 >
2023-01-20 11:36:57 +00:00
Jonas Danielsson
8eeaeab6af
wpe: Add 'run-javascript' action signal
...
Introduce way of running a script in the context of the internal
webView.
Fixes #1722
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3753 >
2023-01-20 10:58:31 +00:00
Edward Hervey
e2773304a2
decodebin3: Remove failing stream from selection
...
If no decoder is present for a given stream, remove it from the requested
selection.
Fixes #1581 and #1662
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754 >
2023-01-20 08:54:00 +00:00
Edward Hervey
34ea792881
decodebin3: Don't intercept queries if no parsebin present
...
If we don't use a parsebin, we forward the queries as-is from upstream. There is
no reconfiguration possible within identity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754 >
2023-01-20 08:54:00 +00:00
Edward Hervey
1a30ed8113
decodebin3: Don't insert parsebin if input is already parsed
...
This is a temporary workaround until we find a generic solution to indicate that
a stream has already been "parsed".
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754 >
2023-01-20 08:54:00 +00:00
Seungha Yang
f983ec50b5
win32ipcvideosrc: Fix leak in fallback copy path
...
Clear shared memory after use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3751 >
2023-01-19 17:40:59 +00:00
Edward Hervey
b01ed725be
va: Fix path leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3755 >
2023-01-19 16:41:44 +01:00
Sebastian Dröge
6a210b53e3
gst: Mark caps parameters in ALLOCATION query API as nullable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3752 >
2023-01-19 16:01:21 +02:00
Guillaume Desmottes
2930fed373
gst-play: add --no-position
...
It can be useful to reduce or remove the clutter in logs due to those
queries when debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3698 >
2023-01-19 11:41:20 +00:00
Sebastian Dröge
067b5d92b4
matroska: Add stream-format = (string) obu-stream
to AV1 caps
...
Anything else is not allowed in Matroska/WebM.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740 >
2023-01-19 12:10:40 +02:00
Sebastian Dröge
4c8141a0c3
isomp4: Add stream-format = (string) obu-stream
to AV1 caps
...
Anything else is not allowed in MP4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740 >
2023-01-19 12:10:40 +02:00
Sebastian Dröge
ac1d10f80c
gst-examples: Update Rust dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3750 >
2023-01-19 10:40:32 +02:00
Nicolas Dufresne
8a6d9748b6
gleglimage: Fix GL_OES_EGL_image_external name in debug trace
...
There is a debug log when this extension is missing, but it was
reporting the wrong extension name, which was confusing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3748 >
2023-01-18 22:47:42 +00:00
Jan Alexander Steffens (heftig)
b0e55caf0d
input-selector: Take the object lock while iterating sinkpads
...
Otherwise we can race with pad removal and crash from use-after-free.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1717
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3745 >
2023-01-18 16:21:12 +00:00
Michiel Konstapel
81b726344e
glvideomixer: don't clear pad->geometry_change when setting an identical value
...
Closes #1715
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3733 >
2023-01-18 14:05:37 +00:00
Tim-Philipp Müller
59f4ebe321
gst-docs: include dmabuf and gapless playback design docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3744 >
2023-01-18 13:48:14 +00:00
Tim-Philipp Müller
64c4bfdf7e
uridecodebin3: clear subitem if suburi is set to NULL
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1649
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3730 >
2023-01-18 11:43:31 +00:00
Jan Alexander Steffens (heftig)
211191564e
qtdemux: Add basic support for AVC-Intra video
...
AVC-Intra is a range of H.264-compliant intra-only codecs from
Panasonic. The codes and descriptions have been taken from VLC.
The (encumbered) sample I have here produces byte-stream H.264,
including SPS and PPS and no `avcC` box.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3739 >
2023-01-18 10:01:30 +00:00
Nirbheek Chauhan
ed1bdf9b1a
gl: Fix crash in cocoa due to race in gst_gl_context_activate()
...
We create a new context in `gst_gl_context_create_thread()` and then
activate it on the current thread. Thereafter we assume that the
current thread continues to be the active thread for that context and
call `gst_gl_context_fill_info()` which asserts that the current
thread is the active thread.
However, if at the same time a different thread calls
`send_message_async()`, it will call into
`gst_gl_window_cocoa_send_message_async()` which will schedule the
message to be invoked using GCD. That anonymous function will also
call `gst_gl_context_activate()`, which creates a race, which can lead
to:
```
gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed
```
Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()`
on the context.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732 >
2023-01-17 21:56:41 +00:00
Thibault Saunier
18f313d317
ges: smart-mixer: Avoid video freeze on NLE stack changes
...
Since we support "nested compositors"[0] we were not finalizing the pads_infos
and thus not releasing the mixer pad on stack change, meaning that
the following stacks were never prerolling.
[0] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738 >
2023-01-17 20:10:19 +00:00
Thibault Saunier
3065608730
ges: Fix issues avoiding to use operator
when unavailable on mixer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738 >
2023-01-17 20:10:19 +00:00
Sebastian Dröge
086c8da446
gl/cocoa: Store a weak reference to the GstGLWindow
instead of the GstGLContext
...
We can't rely on the `GstGLContext` to stay alive and need to keep track
of it. For that we keep track of the `GstGLWindow` in a weak reference
to avoid a reference cycle, and get the corresponding `GstGLContext`
whenever needed.
With contributions from Nirbheek Chauhan.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1697
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3729 >
2023-01-17 22:35:29 +05:30
Tim-Philipp Müller
a9ec35b1ca
Release 1.21.90
2023-01-13 19:08:48 +00:00
Sebastian Dröge
79e8d2c03e
avvidenc: Offset PTS to zero to fix bitrate control
...
Otherwise ffmpeg's rate control algorithm will not work correctly as
it is based on the absolute PTS values.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/91
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3718 >
2023-01-13 17:18:38 +00:00
Edward Hervey
13ad8c8e4e
urisourcebin: Cleanup on failure
...
This ensures there is a source present/valid *ONLY* in PAUSED and above.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720 >
2023-01-13 16:41:53 +01:00
Edward Hervey
1546ab0d0f
urisourcebin: Unset locked state
...
Some elements still had it in failure cases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720 >
2023-01-13 16:41:53 +01:00
Edward Hervey
f444e62672
uridecodebin3: Handle state synchronization failures
...
Properly reset and remove the failing urisourcebin if we failed bringing them up
to the same state as ourselves.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1708
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720 >
2023-01-13 16:41:53 +01:00
Olivier Crête
c593930055
rtopuspay: Use GstStaticCaps to cache parsed caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
46a6f72f03
rtopuspay: Ignore the stereo parameter in multiopus caps
...
Also add unit tests for the various variants
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
f1cf457811
rtpopuspay: Leave original caps as-is
...
This should make it work if someone specifies stereo with MULTIOPUS
somehow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
c52c66b575
rtpopuspay: Return upstream channel filter based on OPUS vs MULTICAPS
...
Only allow 1 or 2 channels if the caps are OPUS, or 3+ if they are
MULTIOPUS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
c51ae6112d
rtpopus: Put MULTIOPUS in all caps
...
The RTP payload encoding-name are always in caps in GStreamer.
In SDP, they are not case-sensitive, but since caps are, we need to pick
a caps, and we picked upper-case along time ago.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Sebastian Dröge
085e6c036a
android: Update minimum SDK version to Android 21
...
Otherwise we can't bump the minimum version of the cerbero build without
it breaking linking of the applications.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3717 >
2023-01-12 20:11:14 +00:00
Sebastian Dröge
80e364876b
gstreamer: Fix code style by running clang-format
2023-01-12 21:38:51 +02:00
Sebastian Dröge
7652026f0d
gstreamer: Don't leak all video frames
2023-01-12 21:38:51 +02:00
Seungha Yang
434337c3e1
d3d11memory: Fix potential crash in GstD3D11PoolAllocator
...
Allocator object can be the final refcount holder, when a GstD3D11Memory
is being released. Do unref allocator once there's no more
remaining operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715 >
2023-01-12 19:26:41 +00:00
Seungha Yang
fdc3ee97ae
d3d11memory: Remove GstD3D11PoolAllocator::dispose
...
Clear GstD3D11Device object in finalize method as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715 >
2023-01-12 19:26:41 +00:00
Thibault Saunier
d8ba721d82
glbasefilter: Copy metas when they only contain they "video" tag
...
Same logic as in `GstVideoFilter`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3716 >
2023-01-12 14:41:24 -03:00
Sebastian Dröge
ff911c76c0
gstreamer: Don't explicitly drop frames on stop()
...
This is already handled by the base class.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
f56e8b2fad
gstreamer: Remove unused variable
2023-01-12 01:06:38 +00:00
Sebastian Dröge
040c92d8b0
gstreamer: Stop outputting frames if pushing one has caused an error
2023-01-12 01:06:38 +00:00
Sebastian Dröge
5f03d9c4d1
gstreamer: Don't set bogus LIVE flag on output buffers
2023-01-12 01:06:38 +00:00
Sebastian Dröge
85b9c8e103
gstreamer: Allocate output buffers via the encoder
...
This makes sure the correct allocator and configuration is used.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
30e0c1e4fd
gstreamer: Negotiate the encoder immediately after setting the format
2023-01-12 01:06:38 +00:00
Sebastian Dröge
d9efa54783
gstreamer: Fix output state reference leak
2023-01-12 01:06:38 +00:00
Sebastian Dröge
b498bdb765
gstreamer: Add missing property setter/getter for lookahead property
2023-01-12 01:06:38 +00:00
Sebastian Dröge
13fa6d387d
gstreamer: Fix reference leak of the input state if the caps are changing
...
Also remove misleading comment: reconfiguration was already handled by
the following code.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
9128978042
gstreamer: The encoder has no maximum latency
...
It will buffer as much as it needs to.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
785ba05bca
gstreamer: Announce support for video meta on the input side
...
This allows handling input buffers with non-default strides, which was
already handled fine by the element code.
Without this, potentially expensive conversion was needed.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
c5b166491c
gstreamer: Don't override various virtual methods unnecessarily
...
There was no custom behaviour in there.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
158c1f6602
gstreamer: Don't unnecessarily override decide_allocation()
...
This avoids more optimal output buffer allocation.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
3b3e862580
gstreamer: Don't set a DTS and remove non-working DTS hack
...
The previous hack would create bogus DTS that confused other elements.
Fixes https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1915
2023-01-12 01:06:38 +00:00
Sebastian Dröge
a8c6eb0606
gstreamer: Don't use private data but simply always get the oldest frame
...
The private data is not copied over for SVT AV1 encoder so this code
path would've never worked.
Instead of relying on the PTS, which is not required to be unique or
existing at all, we always take the oldest frame as AV1 has no frame
reordering / B frames.
2023-01-12 01:06:38 +00:00
Edward Hervey
1fe99ebae1
decodebin3: Fix global group-id handling
...
The goal of the "global" group-id is to fix new inputs that do not come from the
same "source" as others. In order to ensure all "current" streams have the same
group-id we distribute the first valid group-id to all streams.
This commit fixes two issues with that:
* When inputs are unlinked they weren't always properly resetted (it would only
work if parsebin is used, which is no longer the default in
uridecodebin3/playbin3).
* When computing the global group-id, take into account unset
group-id (i.e. GST_GROUP_ID_INVALID).
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1698
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3712 >
2023-01-11 23:29:05 +00:00
Tim-Philipp Müller
4f0abc32e7
gst-plugins-ugly: update translations
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1575
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Tim-Philipp Müller
a55bda139a
gst-plugins-bad: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Tim-Philipp Müller
146575fa61
gst-plugins-good: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Tim-Philipp Müller
d803bf852f
gst-plugins-base: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Tim-Philipp Müller
14e619158f
gstreamer: update translations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Tim-Philipp Müller
a1672ec004
Fix translation pot files when creating dist tarballs
...
Add version as per Translation Project requirements and
also add a .pot file without the ABI suffix.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711 >
2023-01-11 19:20:17 +00:00
Guillaume Desmottes
22917b140f
decodebin3: ensure recalculate_group_id() is called with INPUT lock
...
This function uses main_input and current_group_id which are protected
by the input lock.
Some calls were already safe but not all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3702 >
2023-01-11 18:37:05 +00:00
Guillaume Desmottes
cad0768191
uridecodebin3: fix stream leak
...
GstSourcePad owns the GstStream but was not unreffing it when being
disposed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3617 >
2023-01-11 16:44:21 +00:00
Guillaume Desmottes
da696477c6
decodebin3: fix dead lock when removing pad
...
gst_element_remove_pad() is triggering a call to
gst_decodebin3_input_pad_unlink() which needs the input lock as well,
resulting in a dead lock.
Fix #1667
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3614 >
2023-01-11 15:06:37 +00:00
Sebastian Dröge
c28bc4492e
tools: Use gst_macos_main()
on macOS
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709 >
2023-01-11 13:36:55 +00:00
Nirbheek Chauhan
41ac00c373
docs: Need to use versioned paths on macOS
...
Especially with pkg-config, it needs to be called with the right path
otherwise it might not pick up the prefix correctly.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1677
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3706 >
2023-01-10 20:20:19 +00:00
Seungha Yang
9a6b9e274a
meson: gst-plugins-bad: Disable spammy MSVC warning
...
warning C5051: attribute 'noinline' requires at least '/std:c++20';
ignored
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3705 >
2023-01-11 03:23:57 +09:00
Tim-Philipp Müller
d2ef7819d3
tests: interactive: test-effect-switch: use autovideosink
...
Also works on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3703 >
2023-01-10 13:28:30 +00:00
Sebastian Dröge
bd91768692
mxfmux: Add all local tags to the primer
...
No matter if they're allocated via GSlice or malloc(). The allocator is
completely irrelevant, all local tags need to be in the primer so they
can be handled.
This didn't have any effect in practice because all local tags that
appear in the muxer are allocated via GSlice. Only from the demuxer they
might be allocated via malloc().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3699 >
2023-01-10 11:10:10 +00:00
Marek Vasut
d43ee08f13
jpegdec: Disable libjpeg-turbo SIMD acceleration support for now
...
The libjpeg-turbo SIMD acceleration support suffers from multiple
unresolved cornercases. Disable the libjpeg-turbo for now until
those cornercases are resolved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3694 >
2023-01-10 00:32:38 +00:00
Guillaume Desmottes
f7e1505a5e
libav: avaudec: display flow return name instead of value
...
More convenient to read in logs. gstavviddec already does it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3700 >
2023-01-09 13:25:05 +01:00
Tim-Philipp Müller
1b7c95ec01
gst-play: fix command line option string formatting
...
Add missing space to translated string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3696 >
2023-01-09 01:24:57 +00:00
Philippe Normand
f532ea6627
av1enc: Add property for controlling max distance between 2 keyframes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:55 +00:00
Yatin Mann
59529ae918
aom: av1enc: Expose more properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
yatinmaan
5cb04de96a
aom: av1enc: Remove redundant enum variants from header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
Yatin Mann
cbc7334d93
aom: av1enc: Ensure that input pts is strictly increasing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
Yatin Mann
cfcd2aac67
aom: av1enc: Fix pts unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
ekwange
beccaf31ef
dfbvideosink: Fix compile error
...
Fix some compile errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3670 >
2023-01-08 03:49:03 +00:00
Olivier Crête
af315967da
webrtc nice: Let libnice handle STUN/TURN DNS resolution
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676 >
2023-01-07 16:03:23 +00:00
Olivier Crête
069eeeb5c3
webrtc: Change requirement to libnice 0.1.20
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676 >
2023-01-07 16:03:23 +00:00
Sebastian Dröge
5f2989d5a1
rtspclientsink: Add publish-clock-mode
property
...
This allows modifying the behaviour how/if the pipeline clock is
published according to RFC7273, similar to the same API on
`GstRTSPMedia`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3581 >
2023-01-07 00:40:44 +00:00
Sebastian Dröge
ce50e13e28
rtspclientsink: Fix docs for various properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3581 >
2023-01-07 00:40:44 +00:00
Mathieu Duponchelle
2f020013e6
docs: explicitly declare gir build dependencies
...
As the path to the gir file is passed to hotdoc.generate_doc() and
not the build target itself, meson doesn't know about the dependency.
In turn, as the CI doesn't build everything before building the
documentation target, some gir files might not exist, for instance
in the case of gst-rtsp-server, causing the output documentation to
be empty.
The error occurred silently because hotdoc accepts wildcards for
*-sources arguments, thus it won't warn about a missing gir file as
it is legitimate for glob matching to resolve to nothing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686 >
2023-01-06 22:50:57 +00:00
Sebastian Dröge
fa2b98f957
typefindfunctions: Add missing length check to XML typefinder
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54811
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690 >
2023-01-06 18:10:20 +02:00
Sebastian Dröge
54ff9b2b5f
typefindfunctions: Reduce XML typefinder minimum data size from 64 to 32 bytes
...
64 bytes makes the typefinder fail on very small XML documents on which
it succeeded previously.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690 >
2023-01-06 14:37:31 +02:00
Sebastian Dröge
37f219bd57
opusdec: Try harder to negotiate the upstream channels/rate preferences
...
It might be possible to fulfill those but not with the first caps
structure. Instead of just fixating the first caps structure, check if
the preference can be fulfilled by any of the structures as the first
step.
Without this the following pipeline negotiates to mono after the
decoder because opusenc only has a single channel in its first caps
structure.
gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc \
! queue ! opusdec ! queue ! opusenc ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689 >
2023-01-05 17:59:41 +02:00
Sebastian Dröge
516fe4ca58
Revert "opusenc: Reverse channel order in template caps"
...
This reverts commit cdf411e82d
. It causes
pipelines to unnecessarily negotiate to 8 channels.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1688
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689 >
2023-01-05 17:57:19 +02:00
Rodrigo Bernardes
28f7a0ed2e
dvbbasebin: don't rely on g_key_file_get_(integer|uint64) return
...
instead check if an error was returned, and fail if any
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3688 >
2023-01-05 12:51:28 +00:00
Jan Schmidt
023c67e166
hlsdemux: Consider starting stream time in presentation offset
...
When calculating the presentation offset for CMAF input in live
playback, subtract the stream_time of the fragment from the
calculated presentation offset, so that the first fragment
is played at running time zero.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3680 >
2023-01-05 07:08:16 +00:00
Olivier Crête
b7c0e8bc84
webrtc examples: Force regular non-MULTIOPUS
...
Using MULTIOPUS breaks with most browsers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3675 >
2023-01-04 12:02:25 +00:00
Olivier Crête
c7bc6bc064
webrtc-unidirectional: Avoid critical
...
Don't unref the parameter passed to a signal, it's always owned by
the caller. Fixes a GLib critical.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3675 >
2023-01-04 12:02:25 +00:00
Olivier Crête
f97ff39358
audioenc/dec: Avoid adding temporary structure
...
As a minor optimisation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673 >
2023-01-04 11:09:31 +00:00
Olivier Crête
e03a10a0f2
audioenc/dec: Preserve downstream caps preference in get caps
...
This should fix pipelines such as this one to work as expected
... ! opusenc ! capsfilter caps='audio/x-opus,
channels=1; audio/x-opus, channels=2' ! ...
The expectation is that the encoder will propose the first structure
before the second one to the source.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673 >
2023-01-04 11:09:31 +00:00
Sebastian Dröge
bd534af999
ges: gst_bin_add() is transfer floating
so wrappers around it are too
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3678 >
2023-01-04 10:22:45 +00:00
Olivier Crête
f45cfe0d53
srt: Avoid crash on unknown option
...
Use the correct field that is null instead of the struct value which
never is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3672 >
2023-01-04 02:45:51 +00:00
Sebastian Dröge
401ea9f683
typefindfunctions: Check for the SVG namespace URL in addition to <svg
and the doctype
...
Finding the SVG namespace URL gives a clear indication that this is
actually an SVG file while the `<svg>` tag only gives a likely
indication as it's rather short.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1540
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3631 >
2023-01-04 00:49:47 +00:00
Xavier Claessens
5ff5f9fd5b
qroverlay: Add qrcode-case-sensitive property
...
This allows to encode case sensitive strings, like wifi SSID/password.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3662 >
2023-01-03 19:40:20 +00:00
Sebastian Dröge
50db59449e
avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate
...
As we now actually use the timestamps from ffmpeg for timestamping the
output we would lose a lot of accuracy if the framerate is used.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3634 >
2023-01-03 16:46:14 +00:00
Sebastian Dröge
11520403a5
typefindfunctions: Make XML typefinder more strict
...
If a XMLDec is found, check also for its end. Similarly, check for the
end of the XML tag we're looking for and make sure that the following
characters are valid.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1536
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3632 >
2023-01-03 12:07:43 +00:00
He Junyan
1eeea942de
h265decoder: Fix a memory leak because of slice header.
...
The gst_h265_slice_hdr_free() should free the slice header just
parsed, not the priv->current_slice. Or, the memory leak will
happen because we do not free the slices in priv->nalu list.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3671 >
2023-01-03 17:28:18 +08:00
Tim-Philipp Müller
4d335eb667
subprojects: libffi: pin to meson-3.2.9999.4 tag
...
In case we want to change the 'meson' branch over
to the re-done meson port based on upstream libffi
in future.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3666 >
2022-12-31 13:49:17 +00:00
مهدي شينون (Mehdi Chinoune)
8d5ac30955
meson: Accept latest version of opencv 4.x
...
We've been bumping along the maximum opencv 4.x version for years,
just accept all opencv versions till someone reports breakage.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1680
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3664 >
2022-12-30 17:10:12 +00:00
Edward Hervey
6beca9f055
urisourcebin: Fix parsebin handling
...
The goal of !3601 was to make sure we don't end up with non-streams-aware
adaptive demuxers. Since we know that parsebin is streams-aware, just remember
that and handle them that way.
Fixes issues with some scenarios where parsebin might add pads *before* the
collection is posted on the bus
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1675
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658 >
2022-12-30 08:46:14 +01:00
Edward Hervey
66b96baf23
uridecodebin3: Fix handling of "expected" pads
...
The number of expected pads was:
* Defaulting to 1
* Or being overriden by GST_MESSAGE_STREAMS_SELECTED
This fails if upstream isn't a selectable source and has multiple streams, and
would therefore cause failures with multi-stream gapless playback
Fixes #1672
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658 >
2022-12-30 08:46:14 +01:00
Edward Hervey
80e7c31514
uridecodebin3: Avoid repeatedly calling the blocking probe
...
When skipping an event, we want to unref it and say we handled it. This avoids
being repeatedly called for the same (sticky) events.
The events will be properly propagated once the pad is linked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658 >
2022-12-30 08:46:13 +01:00
Edward Hervey
a0655d5131
uridecodebin3: Handle multiple pending pad block probes
...
It is quite possible to have the blocking probe called from different streaming
threads when all expected pads are present.
* Notify all waiters by using g_cond_broadcast instead of g_cond_signal
* Properly remove the probe after waiting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658 >
2022-12-30 08:46:13 +01:00
Philippe Normand
8ec82f9363
event: Fix gst_event_parse_stream_collection annotation
...
The output parameter ownership is passed to the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3659 >
2022-12-29 18:16:31 +00:00
Nirbheek Chauhan
92b9c604c4
meson: Add an option to select the method for finding Qt
...
This is needed by Cerbero, since we want to force the use of qmake to
find Qt on non-Linux platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3628 >
2022-12-29 09:53:17 +00:00
Sebastian Dröge
19603248c2
gl: Mark gst_gl_context_new_wrapped()
return value as nullable
...
If a GL context is requested for which no API support is compiled in
then `NULL` is returned.
Also remove a useless `NULL` check: `g_object_new()` can't possibly
return `NULL`, ever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3656 >
2022-12-29 09:03:53 +00:00
F. Duncanh
b713c141e0
plugins-base/tests/check/meson.build: add omitted Wayland dependence
...
SUSE places Wayland include files in /usr/include/wayland, and needs
a Cflag added to wayland_client_deps by pkg-config, which is added to
gl_winsys_deps: add this as a dependency in gstgl_dep to fix issue.
Fixes #1607
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3638 >
2022-12-28 20:04:49 -05:00
Nirbheek Chauhan
36a619ba60
meson: Add gstreamer-gl-1.0 pkgconfig vars to internal dependency
...
So we can fetch gl_winsys, gl_platforms, etc directly using
gst_gl_dep.get_variable() when building gstreamer as a subproject, or
when building gst-plugins-rs's gtk4 plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3654 >
2022-12-29 03:52:42 +05:30
Philippe Normand
3f3bd70687
tests: gstelement: Fix test_add_pad_while_paused flakiness
...
`gst_element_remove_pad()` doesn't automatically deactivate the pad, it has to
be done explicitly beforehand, otherwise the pad task might be left dangling,
exposed to undefined behaviour.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3653 >
2022-12-28 17:42:31 +00:00
Jan Schmidt
794ffe6ec6
validate: Place regex flags at the start of the regex
...
In Python 3.11 it is an error to have regex flags in the middle
of an expression, so make sure they appear at the start.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1630
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3643 >
2022-12-28 10:04:41 +00:00
Seungha Yang
ce2c294117
gtkbasesink: Fix widget leak
...
gst_gtk_base_sink_get_widget() will increase refcount and it should
be released after use
Fixing regression introduced by the commit
941c0e81dd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3644 >
2022-12-28 09:14:59 +00:00
Alicia Boya García
15caeb4ac9
gstelement: fix deadlock in gst_element_add_pad() when >=PAUSED
...
gst_element_add_pad() is supposed to activate the pad if the element
state is >= PAUSED and the pad is not already active.
Unfortunately, before this patch, the activation was performed while the
element lock was still taken, which ended causing a deadlock in
gst_pad_start_task() as it attempted to post `stream-status` message in
the element, which also requires the element lock.
Elements could work around this bug by activating the pad manually
before adding it to the element.
This patch fixes the problem by performing pad activation only after the
element lock has been released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3635 >
2022-12-27 20:31:10 +00:00
Seungha Yang
6540c4e89c
rtspsrc: Fix string leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3645 >
2022-12-28 04:39:18 +09:00
Seungha Yang
9b305df1cc
rtptimerqueue: Fix memory leak
...
Should chain up to parent's finalize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3645 >
2022-12-27 19:31:16 +00:00
Seungha Yang
aba7f7c7eb
vajpegdec: Set maybe-leaked flag on template caps
...
The fixup function could return new caps object
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3642 >
2022-12-27 17:15:20 +00:00
Tim-Philipp Müller
6c621bba02
validate-launcher: update testsuites checks for fixed bug
...
Should make CI functional again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3646 >
2022-12-27 17:14:06 +01:00
Mart Raudsepp
3fa4ff0562
multiqueue: Fix potential deadlock with parallel release_pad calls
...
Commit d3a66f9851
introduced a potential deadlock with two parallel release_pad
calls, where one could release the main multiqueue lock (qlock) while still
holding the reconf_lock and then calling other routines which in some conditions
may try to acquire qlock again. The second release_pad could already acquire the
qlock and then start waiting on reconf_lock, which may never be possible because
because the first one isn't releasing it until it can acquire qlock.
Fix it by holding reconf_lock for the whole durationg of qlock, making this
particular deadlock impossible.
Fixes #1642
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3571 >
2022-12-23 13:08:54 +00:00
Philippe Normand
72884f141c
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 >
2022-12-22 21:35:51 +00:00
Seungha Yang
af3311c1d6
d3d11memory: Fix typo in vfunc name
...
s/set_actvie/set_active/g
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3627 >
2022-12-23 01:03:41 +09:00
Seungha Yang
040473f295
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 >
2022-12-22 15:01:52 +00:00
Patricia Muscalu
d752bf1b46
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 >
2022-12-22 14:11:10 +00:00
Mathieu Duponchelle
194dcd91e0
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 >
2022-12-22 12:31:06 +02:00
Evgeny Pavlov
9598ec6d95
amfcodec: add support of AMF AV1 encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3569 >
2022-12-21 19:23:24 +00:00
Seungha Yang
15b2cd6565
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 >
2022-12-21 16:18:36 +00:00
He Junyan
ad0ba3ab7d
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 >
2022-12-21 14:31:23 +00:00
Jan Schmidt
e2cd5b1660
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 >
2022-12-21 12:21:32 +00:00
Jan Schmidt
d3c85b4d19
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 >
2022-12-21 12:21:32 +00:00
Jan Schmidt
2b09f7a006
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 >
2022-12-21 12:21:32 +00:00
Hiero32
7050b00c10
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 >
2022-12-21 06:34:15 +00:00
Hiero32
a29a1b21c3
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 >
2022-12-21 06:34:15 +00:00
Seungha Yang
14062c06a6
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 >
2022-12-20 17:14:10 +00:00
Xavier Claessens
cd78cbac86
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 >
2022-12-20 14:03:35 +00:00
Sebastian Dröge
1cbb145c50
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 >
2022-12-20 14:10:01 +02:00
Sebastian Dröge
c739fcbe41
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 >
2022-12-20 13:10:27 +02:00
Sebastian Dröge
284d22437e
examples: webrtc: Update dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3609 >
2022-12-20 13:06:43 +02:00
Sebastian Dröge
ec6290d63f
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 >
2022-12-20 13:03:44 +02:00
Sebastian Dröge
1f4f338d85
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 >
2022-12-20 13:03:15 +02:00
Sebastian Dröge
d10981f7b9
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 >
2022-12-20 13:02:08 +02:00
Seungha Yang
9914ff9b4c
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 >
2022-12-19 20:27:35 +00:00
Edward Hervey
74a503c197
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 >
2022-12-19 15:23:32 +00:00
Philipp Zabel
2a602afe8a
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 >
2022-12-19 15:30:42 +01:00
Guillaume Desmottes
1f929ba32f
uridecodebin3: fix typo in doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3602 >
2022-12-19 14:24:06 +01:00
Nirbheek Chauhan
0008ccb5d9
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 >
2022-12-19 03:27:35 +00:00
Nirbheek Chauhan
714bd95497
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 >
2022-12-19 01:43:08 +05:30
Edward Hervey
f18186b5dc
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 >
2022-12-18 18:50:19 +00:00
Seungha Yang
3fa6651d91
subprojects: lame: Back to lame_3.100-5
...
Partial revert of the commit of fc22bb8794
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 >
2022-12-18 12:06:17 +00:00
Sebastian Dröge
9c0d9882e3
gst-integration-testsuites: Update cenc_audio_esds_property_overrides expected output file
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3586 >
2022-12-17 19:30:51 +02:00
Sebastian Dröge
066558cba1
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 >
2022-12-17 19:26:19 +02:00
Mathieu Duponchelle
f8b732563b
basesrc: respect FIXED_CAPS flag in caps query implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3590 >
2022-12-17 12:04:49 +00:00
Seungha Yang
7c92ed0bd0
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 >
2022-12-17 11:17:28 +00:00
Nirbheek Chauhan
331a367f19
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 >
2022-12-17 07:37:03 +05:30
Nirbheek Chauhan
984b8816d5
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 >
2022-12-16 23:58:07 +00:00
Nirbheek Chauhan
b3806da265
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 >
2022-12-16 23:58:07 +00:00
Victor Manuel Jaquez Leal
171a626c6c
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 >
2022-12-16 19:18:25 +00:00
Seungha Yang
068a5c1053
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 >
2022-12-17 02:11:07 +09:00
Seungha Yang
04451b108a
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 >
2022-12-16 22:18:14 +09:00
Seungmin Kim
0db1ff532d
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 >
2022-12-16 10:40:41 +00:00
A. Wilcox
412eaf3526
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 >
2022-12-16 01:36:07 -06:00
Seungha Yang
a27c5c81df
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 >
2022-12-15 17:37:48 +00:00
Thibault Saunier
f7b342f1dd
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 >
2022-12-15 16:47:13 +00:00
Matthew Waters
e59b3c93c7
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 >
2022-12-14 23:45:56 +00:00
Hosang Lee
04dc8e2484
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 >
2022-12-14 15:22:08 +00:00
Guillaume Desmottes
e87a2c38c0
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 >
2022-12-14 12:50:36 +00:00
Xabier Rodriguez Calvar
87ae60176b
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 >
2022-12-14 11:01:23 +01:00
Matthew Waters
993bc8fc01
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 >
2022-12-14 12:23:32 +11:00
Piotr Brzeziński
3bb8700577
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 >
2022-12-13 17:50:32 +00:00
Sebastian Dröge
9ca6b1196e
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 >
2022-12-13 13:11:56 +00:00
sezanzeb
6687e7ed17
gst_init: Removed wrong warning in docstring
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3562 >
2022-12-12 22:34:08 +00:00
Seungha Yang
979ff4616e
h264parser: Update doc for GST_H264_FRMAE_PACKING_TOP_BOTTOM
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1318 >
2022-12-12 21:43:14 +00:00
Brad Hards
29dd254f7a
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 >
2022-12-12 21:43:14 +00:00
Philippe Normand
d98c78251c
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 >
2022-12-12 19:39:10 +00:00
Philippe Normand
3345d16aed
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 >
2022-12-12 19:39:10 +00:00
Nirbheek Chauhan
7fd8e4001c
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 >
2022-12-12 15:08:23 +00:00
byran77
1e5abde7b1
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 >
2022-12-12 15:08:23 +00:00
Víctor Manuel Jáquez Leal
06c7b33505
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 >
2022-12-12 12:02:35 +00:00
A. Wilcox
f4bdc79a07
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 >
2022-12-12 10:17:26 +00:00
Henry Hoegelow
6a2a5fd44c
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 >
2022-12-12 08:29:28 +00:00
Tim-Philipp Müller
b9d8fb3d63
timeoverlay: fix pad leak
...
Spotted by Jiri Uncovsky.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1336 >
2022-12-11 23:54:50 +00:00
Víctor Manuel Jáquez Leal
20b207bf8f
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 >
2022-12-11 20:42:54 +00:00
Stéphane Cerveau
7cfc3130a7
zxing: update to 1.4.0 tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3450 >
2022-12-11 15:52:08 +00:00
Tim-Philipp Müller
4d70b9f87c
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
3670d645f4
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 >
2022-12-11 08:58:23 +00:00
Hugo Svirak
4aeb3def20
docs: specify possibility of a NULL return
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3546 >
2022-12-11 00:05:04 +00:00
Nirbheek Chauhan
fc22bb8794
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 >
2022-12-10 15:13:09 +00:00
Edward Hervey
c81facec5f
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 >
2022-12-10 14:24:56 +00:00
Mathieu Duponchelle
fa71217502
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 >
2022-12-10 13:28:07 +00:00
Tim-Philipp Müller
8110ea6b1b
multiqueue: update for renamed log id macros
...
See #1635 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3553 >
2022-12-10 12:40:13 +00:00
Tim-Philipp Müller
b74452cbc6
info: rename new log macros from GST_*_OBJECT_ID -> GST_*_ID
...
Fixes #1635
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3553 >
2022-12-10 12:40:13 +00:00
Jan Schmidt
0791a73a04
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 >
2022-12-10 11:01:35 +00:00
Guillaume Desmottes
cbab7ffefb
examples: webrtc: fix unidirectional pipeline
...
'autoaudiosrc' does not have a 'is-live' property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3550 >
2022-12-09 13:49:44 +01:00
Seungha Yang
a874c9f2d4
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 >
2022-12-09 19:24:08 +09:00
Seungha Yang
e6585c89ea
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 >
2022-12-08 19:52:23 +00:00
Seungha Yang
f588932547
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 >
2022-12-08 17:48:11 +00:00
Seungha Yang
1e124682c8
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 >
2022-12-08 17:48:11 +00:00
Seungha Yang
bd8ef7ae3a
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 >
2022-12-08 14:51:56 +00:00
Jacek Skiba
61c17c5665
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 >
2022-12-07 18:35:37 +00:00
Thibault Saunier
e49e0198f1
h264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3543 >
2022-12-07 17:30:51 +00:00
Sebastian Dröge
010ede30dd
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 >
2022-12-07 14:27:17 +00:00
Marek Olejnik
02359dd251
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 >
2022-12-07 13:01:35 +00:00
Tim-Philipp Müller
a2c7398a1c
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 >
2022-12-07 11:53:50 +00:00
Sebastian Dröge
22c326edea
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 >
2022-12-07 10:21:52 +02:00