summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* openaptx: Fix to v0.2.0 due to license changeDaniel Stone2021-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | openaptx has recently changed its license to explicitly exclude 'Freedesktop projects' from using it, which would include GStreamer, as well as shifting to base terms of GPLv3: https://github.com/pali/libopenaptx/commit/811bc18586d634042618d633727ac0281d4170b8 This unilateral license change is legally dubious in many ways. The original work came from ffmpeg under the LGPL v2.1, to which third parties may not add additional restrictions (per sections 2 and 7 of the LGPL v2.1), so LGPLv2.1 + may-not-use restrictions are not permissible without the explicit consent of the original copyright holder. The upgrade to LGPL v3.0 without explicit consent from the original copyright holder is in itself permissible through the upgrade terms of the LGPL, however the additional restrictions imposed again conflict with sections 7 and 10 of the GPLv3 (as the base of the LGPLv3, with those sections not being invalidated by the additional LGPLv3 text). Though it does not impact the legal validity of the redeclaration of licensing, the claims that freedesktop.org has violated the terms of the openaptx license in the past are false; the work was contributed to the PulseAudio project with an explicit open license, with the original contributor later attempting to revoke permission for its use, despite the explicit terms of the license giving no ability to do so as they lack a change-of-heart provision. The claims that Collabora violated the license are even more baseless; they are based on an assertion that when I (acting on behalf of freedesktop.org rather than Collabora, in my own unpaid time) banned users from freedesktop.org's GitLab instance due to sustained violations of the Code of Conduct users agree to when creating an account on that platform, this somehow constituted a violation of the license. Even if Collabora were somehow involved in this - which they were not at all - there is no requirement under open licenses that users be given unlimited access under all terms to any platform on the internet. Such terms would mean that open development could only be conducted on completely unmoderated platforms, which does not stand up to any scrutiny. Regardless of the declared license having no legal validity, the LGPL's explicit provision in both v2.1 and v3.0 for such additional restrictions to be stripped, and the low likelihood of it ever being used together with GStreamer as its licensing terms would not be acceptable to any distribution, enforcing a version check seems like the safest way to ensure complete legal clarity, not put users or downstreams in any jeopardy, and comply with the author's stated wishes for v0.2.1 and above to not be used by GStreamer. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2235>
* wpe: Properly free property fieldsJan Alexander Steffens (heftig)2021-05-072-2/+6
| | | | | | | The set location (in two places) and loaded bytes were not freed when the element is destroyed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2222>
* wpe: Properly lock property fieldsJan Alexander Steffens (heftig)2021-05-071-7/+30
| | | | | | | | | | | | Use the object lock for the following fields: - `bytes`: Written by the `load-bytes` signal unless running; consumed on start. - `draw_background`: Read and written by the `draw-background` property. - `location`: Read and written by the `location` property and the URI handler. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2222>
* webrtc: only add nack pli by default if kind is videoMatthew Waters2021-05-062-2/+4
| | | | | | | Sending/receiving PLI's (Picture Loss Indication) for non-video doesn't really make sense. This also matches what the browsers do. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
* webrtc: move webrtc_kind_from_caps() to utilsMatthew Waters2021-05-063-29/+33
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2220>
* hlssink(2): Don't write deprecated EXT-X-ALLOW-CACHE metadataSebastian Dröge2021-05-064-13/+5
| | | | | | | | It's deprecated since quite a few versions and various validators complain about it. Instead of the in-manifest metadata this should be handled by the normal HTTP caching headers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2221>
* Use gst_element_request_pad_simple...François Laignel2021-05-057-12/+13
| | | | | | Instead of the deprecated gst_element_get_request_pad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2180>
* Fix build with OpenEXR 3Antonio Rojas2021-05-041-0/+1
| | | | | | Add a header that is no longer transitively included Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2195>
* webrtc: advertise support for transport-cc rtcp-fb by defaultMatthew Waters2021-04-291-3/+2
| | | | | | | Still requires explicit enabling by the application through the header extension on all the relevant payloaders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2207>
* webrtc/stats: provide the twcc stats when availableMatthew Waters2021-04-291-5/+25
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2207>
* avtp: crf: Remove superfluous sink_event variableTimo Wischer2021-04-281-2/+0
| | | | | | | | | This variable was introduced by commit 12ad2a4bcd6c ("avtp: Introduce the CRF Sync Element") but it was never used: $ git log -G "sink_event" -- ext/avtp Signed-off-by: Timo Wischer <timo.wischer@de.bosch.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2201>
* onnx: add plugin to apply ONNX neural network models to videoAaron Boxer2021-04-279-0/+1544
| | | | | | | | | | | | | | This MR provides a transform element that leverage ONNX runtime to run AI inference on a broad range of neural network toolkits, running on either CPU or GPU. ONNX supports 16 different providers at the moment, so with ONNX we immediately get support for Nvidia, AMD, Xilinx and many others. For the first release, this plugin adds a gstonnxobjectdetector element to detect objects in video frames. Meta data generated by the model is attached to the video buffer as a custom GstObjectDetectorMeta meta. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1997>
* webrtcbin: downgrade "dropping ICE candidates from SDP" from warning to ↵Nazar Mokrynskyi2021-04-231-1/+1
| | | | | | debug level Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2187>
* webrtcbin: Attach rtpbin even for data channelsOlivier Crête2021-04-221-25/+19
| | | | | | | This is required because the same transport may later be used for RTP. In which case the RTCP needs to flow bi-directionnally already. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2172>
* Fix missing unref of nice-agent causing sockets to never close.Frederich Munch2021-04-221-0/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1960>
* webrtc: Fix sctp task's return type.Doug Nazar2021-04-221-1/+2
| | | | | | | | GstWebRTCBinFunc expects a GstStructure* return type. Fixes segfault on PowerPC. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2188>
* webrtcbin: Filter caps isn't fixedOlivier Crête2021-04-191-1/+1
| | | | | | | | Fix an assertion because the filter paramter passed to gst_caps_is_equal_fixed() wasn't fixed. So use the regular gst_caps_is_equal() instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2175>
* webrtcdsp: Propagate VAD to audio level metaPhilippe Normand2021-04-191-2/+15
| | | | | | | | | Whenever the voice activity changed on the stream, update or create an AudioLevelMeta and associate it to the corresponding buffer. Fixes #1073 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2170>
* cccombiner: Use correct enum when registering the max-scheduled propertySebastian Dröge2021-04-191-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2171>
* wpe: Remove code targeting WebKit < 2.24Thibault Saunier2021-04-151-4/+0
| | | | | | We already depend on wk >= 2.24 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
* wpe: Make threaded view singleton creation thread safeThibault Saunier2021-04-151-1/+6
| | | | | | It was leading to interesting failures. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
* webrtcbin: Simplify answer_caps intersection code a littleOlivier Crête2021-04-121-16/+10
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Move GstPromise reply to operation frameworkOlivier Crête2021-04-123-43/+47
| | | | | | | This makes it possible to reply to all promises in a consistent way without having to do a unlock/relock that is always risky. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Make sure PC_LOCK is release when replying to promiseOlivier Crête2021-04-121-3/+11
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Take PC lock around all entry pointsOlivier Crête2021-04-121-1/+17
| | | | | | | All of those action signals change the internal state, so protect it by using the PC_LOCK Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Take PC_LOCK when requesting new padOlivier Crête2021-04-121-7/+14
| | | | | | This is needed to avoid having the state change under us. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Ensure that query caps method returns valid capsOlivier Crête2021-04-121-3/+25
| | | | | | | This means rejecting any caps that aren't fixed. Also, use a filter that will create unfixed caps if the other side just returns ANY. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Associate the stream with a new transceiverOlivier Crête2021-04-121-3/+4
| | | | | | | Otherwise, this newly created transceiver has no stream and it aborts later when it tries to connect the input pad. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Match unassociated transceiver by kind tooOlivier Crête2021-04-121-1/+12
| | | | | | | When a new m-line comes in that doesn't have a transceiver, only match existing transceivers of the same kind. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Fix typoe in name of error GstStructureOlivier Crête2021-04-121-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Enforce direction on request sink pad with a specific nameOlivier Crête2021-04-121-1/+15
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Try to match an existing transceiver on pad requestOlivier Crête2021-04-121-0/+46
| | | | | | This should avoid creating extra transceivers that are duplicated. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Validate locked m-lines in set*DescriptionOlivier Crête2021-04-121-0/+58
| | | | | | | Verify that the remote description match the locked m-lines, otherwise just reject the SDP. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Remove unused session_mid_mapOlivier Crête2021-04-122-22/+0
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Enforce m-line restrictions when creating offerOlivier Crête2021-04-122-26/+94
| | | | | | | | | | | First fail the offer creation if the mid of an existing offer doesn't match a forced m-mline. Then, for all newly added mlines, first look for a transceiver that forces this m-line, then add a "floating" one, then the data channel. And repeat this until we're out of transceivers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Remember if a transceiver had a forced m-lineOlivier Crête2021-04-122-0/+8
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Enforce same-kind on request sink pad with a specific nameOlivier Crête2021-04-121-7/+17
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Enforce compatible caps on pad requestOlivier Crête2021-04-121-0/+10
| | | | | | | If a pad is requested with certain caps and there is already a transceiver, reject the pad request if the caps don't match. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Reject pad request for a specific m-line if it already existsOlivier Crête2021-04-121-11/+18
| | | | | | This way, the app developer is in control. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Make request-pad validation an early returnOlivier Crête2021-04-121-48/+48
| | | | | | This reduces the indendation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Add document for webrtcbin itself to generated docOlivier Crête2021-04-121-1/+4
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtc: Reset received_caps when releasing padOlivier Crête2021-04-121-0/+1
| | | | | | | This is to work around a race where the pad is accessed in the webrtc main thread while being released. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* webrtcbin: Split pad name from mlineOlivier Crête2021-04-122-31/+45
| | | | | | | | | | | | | The simple case where this breaks is if you add a datachannel and want to add a new pad (a new media) after). Another case where this is broken is if the order of the media is forced to something different by the peer. It's more simple to just split both things completely. In practice, the pads will be named in the order in which they are allocated, so it shouldn't change the current behaviour, just enable new ones. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
* srtobject: fix optlen of srt_getsockflagZhao Zhili2021-04-081-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2149>
* ldacenc: Emit message on errorsOlivier Crête2021-04-081-3/+4
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
* sbc: Return hard error on allocation or mapping errorOlivier Crête2021-04-081-6/+7
| | | | | | Also post a message on the bus in these cases.wpe: Emit load-progress messages Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
* sbc/ldac: Don't use GST_CAPS_NONE to mean NULLOlivier Crête2021-04-072-4/+4
| | | | | | | The GST_CAPS_NONE macro actually returns a instance of a empty caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1874>
* avtp: Fix log format macrosDoug Nazar2021-04-073-14/+17
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2145>
* curlsftpsink: Don't run GST_DEBUG_OBJECT() on a class structSebastian Dröge2021-04-061-1/+1
| | | | | | It's supposed to be a GObject. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2141>
* line21dec: relax caps requirementsMathieu Duponchelle2021-04-031-1/+9
| | | | | | | | | | | | | Instead of requiring interlaced video, simply skip CC detection when the input is progressive. This allows placing line21decoder unconditionally in pipelines, without having to worry about whether the input stream will be interlaced, or even worse interlacing just in case! + update doc cache Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885>