summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* ttmlparse: Handle whitespace before XML declarationChris Bass2020-12-051-3/+8
| | | | | | | | | | 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>
* ttmlparse: Ensure only single TTML doc parsedChris Bass2020-12-051-1/+1
| | | | | | | 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>
* hlsdemux: Use actual object for loggingEdward Hervey2020-12-041-1/+1
| | | | | | i.e. the pad of the stream Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1858>
* curl: Remove incorrect GST_DEBUG_OBJECT() callsArun Raghavan2020-12-048-10/+0
| | | | | | | 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>
* adaptivedemux: Store QoS values on the elementEdward Hervey2020-12-041-5/+7
| | | | | | | | | | | 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>
* hlsdemux: Don't double-free variant streams on errorsEdward Hervey2020-11-181-1/+4
| | | | | | | | | | | | 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>
* vkdeviceprovider: Avoid deadlock on physical deviceJan Schmidt2020-11-041-1/+4
| | | | | | | | | 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>
* wlvideoformat: fix DMA format convertorRandy Li2020-11-041-1/+1
| | | | | | | | 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>
* sctp: Do downward state change logic after chaining up.Jan Schmidt2020-10-312-5/+13
| | | | | | | | 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>
* dtls: Avoid bio_buffer assertion on shutdown.Jan Schmidt2020-10-311-3/+4
| | | | | | | | | | 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>
* webrtc: Fix a race on shutdown.Jan Schmidt2020-10-311-3/+16
| | | | | | | | | 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>
* opencv: allow compilation against 4.5.xNicola Murino2020-10-301-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1735>
* srtsrc: Prevent `delay` from being negativeJan Alexander Steffens (heftig)2020-10-121-4/+11
| | | | | | | | | `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>
* srtsrc: Don't calculate a delay if the srctime is 0Jan Alexander Steffens (heftig)2020-10-121-2/+9
| | | | | | | | | | | 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>
* srtsrc: Defend against missing clockJan Alexander Steffens (heftig)2020-10-121-0/+5
| | | | | | | | 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>
* srt: Remove unused sa_family trackingJan Alexander Steffens (heftig)2020-10-121-14/+8
| | | | | | | 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>
* srt: Move off deprecated `srt_socket()`.Niklas Hambüchen2020-10-122-3/+3
| | | | | | | | | | 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>
* srt: Register a log handlerJan Alexander Steffens (heftig)2020-10-121-0/+49
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
* srt: Avoid removing invalid sockets from the pollsJan Alexander Steffens (heftig)2020-10-121-6/+12
| | | | | | This would provoke error messages from SRT. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1685>
* srt: Fix use of srt_startupJan Alexander Steffens (heftig)2020-10-121-4/+2
| | | | | | | | | `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>
* srt: Fix parameter types used for socket optionsJan Alexander Steffens (heftig)2020-10-121-28/+30
| | | | | | | | | | | | 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>
* srtsrc: Fix timestampingEdward Hervey2020-10-114-5/+80
| | | | | | | | | | | | | | 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>
* srt: Consume the error from gst_srt_object_writeJan Alexander Steffens (heftig)2020-10-111-0/+4
| | | | | | Instead of leaking it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1681>
* dtlsconnection: Ignore OpenSSL system call errorsOlivier Crête2020-10-111-29/+7
| | | | | | | | | 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>
* srt: Check socket state before retrieving payload sizeJan Alexander Steffens (heftig)2020-10-111-7/+8
| | | | | | | 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>
* x265enc: fix deadlock on reconfigJakub Adam2020-10-111-16/+21
| | | | | | | 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>
* srtobject: typecast SRTO_LINGER to lingerraghavendra2020-10-111-1/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1675>
* wpesrc: fix some caps leaks using the non-GL outputMatthew Waters2020-10-051-6/+11
| | | | | | | | 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>
* smoothstreaming: clear live adapter on seekHosang Lee2020-10-052-1/+12
| | | | | | | | | | | | | | | | | | | | 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>
* wpe: Plug event leakPhilippe Normand2020-10-051-0/+2
| | | | | | | 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>
* wpesrc: Don't crash if WPE doesn't generate a buffer.Jan Schmidt2020-10-051-4/+7
| | | | | | | | | | | 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>
* wpe: Plug SHM buffer leaksPhilippe Normand2020-10-051-0/+8
| | | | | | Fixes #1409 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1647>
* wpe: Move webview load waiting to WPEViewPhilippe Normand2020-10-052-24/+34
| | | | | | | | | | | 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>
* wpe: Use proper callback for TLS errors signal handlingPhilippe Normand2020-10-041-1/+7
| | | | | | | | | 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>
* avtp: avtpaafdepay: fix crash when building capsMarian Cichy2020-10-041-1/+1
| | | | | | | | | | | 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>
* opencv: set opencv_dep when option is disabled (#1406)Adam Williamson2020-10-031-0/+1
| | | | | | | | | | 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>
* line21enc: add remove-caption-meta propertyMathieu Duponchelle2020-10-032-2/+67
| | | | | | Similar to #GstCCExtractor:remove-caption-meta Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1637>
* line21enc: heavily constrain video heightMathieu Duponchelle2020-10-031-2/+9
| | | | | | | | | | 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>
* line21enc: add support for CDP closed caption metaMathieu Duponchelle2020-10-031-20/+260
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1637>
* hlssink2: Actually release splitmuxsink's padsJan Alexander Steffens (heftig)2020-09-301-2/+2
| | | | | | | | | 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>
* gst: Update for gst_video_transfer_function_*() function renamingSebastian Dröge2020-09-071-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557>
* webrtc: Clean up the userinfo unescaping codeNirbheek Chauhan2020-08-301-10/+6
| | | | | | | 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>
* modplug: avoid division by zeroJonathan Matthew2020-08-281-5/+9
| | | | | Under some conditions, GetMaxPosition() returns zero, which should cause position queries to fail rather than crash.
* webrtc: Unescape turnserver user and passwordtrilene2020-08-261-5/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1530>
* sctp: usrsctp: increase DIAG_MSG_LEN to accomodate longer file pathTim-Philipp Müller2020-08-261-1/+1
| | | | | | | | | | | 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>
* wpe: skip glbasesrc decide_allocation when non-GL caps are negotiatedPhilippe Normand2020-08-241-10/+64
| | | | | | | | | | | | | 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>
* webrtc/datachannel: clear the error after useMatthew Waters2020-08-241-1/+3
| | | | | | Fixes a memory leak Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
* webrtc/datachannel: free previous protocol/label fieldsMatthew Waters2020-08-241-0/+2
| | | | | | Fixes a memory leak Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
* sctpdec: unref after retrieving the static pad templateMatthew Waters2020-08-241-0/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
* webrtc/ice: resolve .local candidates internallyMatthew Waters2020-08-201-2/+93
| | | | | | | | | 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