| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
When ttmlparse is in, e.g., an MPEG-DASH pipeline, there may be
whitespace between successive TTML documents in ttmlparse's accumulated
input. As libxml2 will fail to parse documents that have whitespace
before the opening XML declaration, ensure that any preceding whitespace
is not passed to libxml2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1859>
|
|
|
|
|
|
|
| |
The parser handles only one TTML file at a time, therefore if there are
multiple TTML documets in the input, parse only the first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1859>
|
|
|
|
|
|
| |
i.e. the pad of the stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1858>
|
|
|
|
|
|
|
| |
klass is not a GstObject, and these debugs print should likely not be
around anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1857>
|
|
|
|
|
|
|
|
|
|
|
| |
Storing it per-stream requires taking the manifest lock which can apparenly be
hold for aeons. And since the QoS event comes from the video rendering thread
we *really* do not want to do that.
Storing it as-is in the element is fine, the important part is knowing the
earliest time downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1819>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an error happened switching to a new variant, we switch back to the previous
one ... except it will be unreffed when settin git.
In order to avoid such issues, keep a reference to the old variant until we're
sure we don't need it anymore
Fixes cases of double-free on variants and its contents
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1817>
|
|
|
|
|
|
|
|
|
| |
Don't hold the object lock on the vk physical device while
constructing a GstVulkanDevice around it, as
GstVulkanDevice can make calls on the physical device that
require the object lock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1759>
|
|
|
|
|
|
|
|
| |
In the most of case, this typo would work. But for
ARGB8888 and XRGB8888, which shm format is not based on fourcc,
which would never appear in format enumeration.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1758>
|
|
|
|
|
|
|
|
| |
Call the parent state_change function first when changing state
downward, to make sure that the element has stopped before cleaning
it up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1746>
|
|
|
|
|
|
|
|
|
|
| |
On shutdown, a previous iteration of dtsl_connection_process()
might be incomplete and leave a partial bio_buffer behind.
If the DTLS connection is already marked closed, drop out
of dtls_connection_process early without asserting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1746>
|
|
|
|
|
|
|
|
|
| |
The main context can disappear in gst_webrtc_bin_enqueue_task()
between checking the is_closed flag and enqueueing a source on the
main context. Protect the main context with the object lock instead
of the PC lock, and hold a ref briefly to make sure it stays alive.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1746>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1735>
|
|
|
|
|
|
|
|
|
| |
`delay` should be a GstClockTimeDiff since SRT time is int64_t.
All values are in local time so we should never see a srctime that's in
the future. If we do, clamp the delay to 0 and warn about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1690>
|
|
|
|
|
|
|
|
|
|
|
| |
A zero srctime is a missing srctime. Apparently this can happen when
["the connection is not between SRT peers or if Timestamp-Based Packet
Delivery mode (TSBPDMODE) is not enabled"][1] so it may not apply to us,
but it's best to be defensive.
[1]: https://github.com/Haivision/srt/blob/v1.4.2/docs/API.md#sending-and-receiving
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1690>
|
|
|
|
|
|
|
|
| |
If we don't have a clock, stop the source instead of asserting in
gst_clock_get_time. This can happen when the element is removed from the
pipeline while it's playing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1690>
|
|
|
|
|
|
|
| |
Now that SRT no longer needs the family when creating the socket, this
code has become useless.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
|
|
|
|
|
|
| |
See https://github.com/Haivision/srt/blob/73ee1e1a3e3adc2702a9a5057d101ef80447b38c/docs/API-functions.md#srt_socket
`srt_create_socket()` was added in
https://github.com/Haivision/srt/commit/4b897ba92d34f1829a1c6e419eeab17f0763a0fc
and srt `v1.3.0` is the first release that has it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
|
|
| |
This would provoke error messages from SRT.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
|
|
|
|
|
| |
`srt_startup` can also return 1 if it was successful. Avoid warning in
this case.
Avoid a race when checking whether we need to call it at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The [SRT documentation][1] specifies exact types for the socket options.
Make sure we match these.
This reverts the linger workaround in commit 84f8dbd932029220ee86154dd
and extends srt_constant_params to support other types than int.
[1]: https://github.com/Haivision/srt/blob/master/docs/APISocketOptions.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SRT provides the original timestamp of a packet (with drift/skew corrected for
local clock), which is what should be used for timestamping the outgoing
buffers. This ensures that we output the packets with the same timestamp (and by
extension rate) as the original feed.
Also detect if packets were dropped (by checking the sequence number) and
properly set DISCONT flag on the outgoing buffer.
Finally answer the latency queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1677>
|
|
|
|
|
|
| |
Instead of leaking it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1681>
|
|
|
|
|
|
|
|
|
| |
OpenSSL shouldn't be making real system calls, so we can safely
ignore syscall errors. System interactions should happen through
our BIO. So especially don't look at the system's errno, as it
should be meaningless.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1684>
|
|
|
|
|
|
|
| |
The connection might be broken, which we should detect instead of just
aborting the write.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1680>
|
|
|
|
|
|
|
| |
Don't attempt to obtain encoder lock that is already held by
gst_x265_enc_encode_frame().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1679>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1675>
|
|
|
|
|
|
|
|
| |
Always chain up to the parent _stop() implementation as it unrefs some
caps (among other things).
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1409
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1650>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In live streaming, buffers sent by souphttpsrc are pushed to the live
adapter. The buffers in the adapter are sent out of mssdemux when it
is greater than 4096 bytes.
Occasionally, when seeking in live streams, if seek occurs just
after the last data chunk was received, and if this data chunk is
smaller than 4096 bytes, it will be kept in the live adapter.
This remaining data in the live adapter will be erroneously prepended
to the new data that is downloaded after seek and pushed out.
When qtdemux receives this data, since it does not start with
a moof box, it is impossible to demux the fragment, and bogus
size error will occur.
Clear out the live adapter on seek so that no unnecessary remaining
data is pushed out together with the new fragment after seeking.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1649>
|
|
|
|
|
|
|
| |
Handled events don't go through the default pad event handler, so they need to
be unreffed in this case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1647>
|
|
|
|
|
|
|
|
|
|
|
| |
On creating a 2nd wpesrc in a new pipeline in an app that already
has a runnig wpesrc, WPE sometimes doesn't return a buffer on request,
leading to a crash. This commit fixes the crash, but not the underlying
failure - a 2nd wpesrc can still error out instead.
Partially fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1647>
|
|
|
|
|
|
| |
Fixes #1409
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1647>
|
|
|
|
|
|
|
|
|
|
|
| |
As waiting for the load to be finished is specific to the WebView, it should be
done from our WPEView, not from the WPEContextThread. This fixes issues where
multiple wpesrc elements are created in sequence. Without this patch the first
view might receive erroneous buffer notifications.
Fixes #1386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1647>
|
|
|
|
|
|
|
|
|
| |
The load-failed and load-failed-with-tls-errors signals expect distinct callback
signatures.
Fixes #1388
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1646>
|
|
|
|
|
|
|
|
|
|
|
| |
gst_caps_new_simple gets wrong types for rate and channel which
may lead to a crash.
As 64-bit values for rate, depth, format, channels does not
make much sense and since any other functionality in gstreamer
expects G_TYPE_INT for channels and rate, we should stick to that
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1641>
|
|
|
|
|
|
|
|
|
|
| |
The examples build file checks opencv_dep, so it still needs to
be set even if the option is disabled.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1406
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1638>
|
|
|
|
|
|
| |
Similar to #GstCCExtractor:remove-caption-meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1637>
|
|
|
|
|
|
|
|
|
|
| |
We can only determine a correct placement for the CC line
with:
* height == 525 (standard NTSC, line 21 / 22)
* height == 486 (NTSC usable lines + 6 lines for VBI, line 1 / 2)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1637>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1637>
|
|
|
|
|
|
|
|
|
| |
It was looking at the "outer" peer of the ghost pad, not the "inner"
peer (the target).
It provided the wrong pad to gst_element_release_request_pad.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1623>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557>
|
|
|
|
|
|
|
| |
Continuation from 04fd705906f4bd4cf1901001484e60c21e1b3139. This is
easier to understand and also avoids two copies.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1547>
|
|
|
|
|
| |
Under some conditions, GetMaxPosition() returns zero, which should cause
position queries to fail rather than crash.
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1530>
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes "‘%s’ directive output truncated writing XX bytes into
a region of size NN [-Wformat-truncation=]" compiler warnings.
https://github.com/sctplab/usrsctp/pull/521
Fixes #1389
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1540>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Checking for GL caps features in gl_start() was done too late in case the parent
class fails to setup a working GL context. The element now determines if GL
support should be enabled during the decide-allocation query handling.
Additionally, when no GL context was found, we need to handle the element
cleanup because in that situation glbasesrc won't call gl_stop.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1376
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1532>
|
|
|
|
|
|
| |
Fixes a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
|
|
|
|
|
|
| |
Fixes a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
|
|
|
|
| |
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
|
|
|
|
|
|
|
|
|
| |
Requires the system's DNS resolver to support mdns resolution.
Fixes interoperablity with recent versions of chrome/firefox that
produce .local address in for local candidates.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1139
|