summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* webrtc: don't generate duplicate rtx payloads when bundle-policy is setMatthew Waters2021-03-091-0/+22
| | | | | | | | | | | | | | | | It was possible to generate a SDP that had an RTX payload type that matched one of the media payload types when providing caps via codec_preferences without any sink pads. Fixes m=video 9 UDP/TLS/RTP/SAVPF 96 ... a=rtpmap:96 VP8/90000 a=rtcp-fb:96 nack pli a=fmtp:96 apt=96 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2046>
* webrtc ice: Add 'min/max-rtp-port' props for setting RTP port rangeIlya Kreymer2021-03-013-0/+79
| | | | | | | | | default min port == 0, max port == 65535 -- if min port == 0, uses existing random port selection (range ignored) add 'gathering_started' flag to avoid changing ports after gathering has started validity checks: min port <= max port enforced, error thrown otherwise include tests to ensure port range is being utilized (by @hhardy) Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>
* webrtc ice: Only ever request one component, it's always rtcpmuxOlivier Crête2021-03-011-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/119>
* webrtcbin: use regular ice nomination by defaultMatthew Waters2021-03-011-1/+5
| | | | | | | | | | | | | | 1. We don't currently deal with an a=ice-options in the SDP which means we currently violate https://tools.ietf.org/html/rfc5245#section-8.1.1 which states: "If its peer is using ICE options (present in an ice-options attribute from the peer) that the agent does not understand, the agent MUST use a regular nomination algorithm." 2. The recommendation is default to regular nomination in both RFC5245 and RFC8445. libnice change for this is https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/125 which requires an API break in libnice. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2031>
* vulkan: Fix elements long name.Víctor Manuel Jáquez Leal2021-02-242-2/+2
| | | | | | Fix vkcoloconvert and vkviewconvert long names. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2034>
* dtls: use GST_WARNING instead of g_warningStéphane Cerveau2021-02-173-5/+16
| | | | | | | No need a g_warning which is failing always with gst-inspect -a Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2010>
* openh264enc: Add support for main and high profilesThibault Saunier2021-02-111-7/+36
| | | | | | | Those are supported (to a certain extent) so we should not limit ourself to baseline Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1789>
* srt: preserve ABI compatibilityJakub Adam2021-02-033-6/+10
| | | | | | | Reintroduce socket descriptor parameter removed in 327ad84e to "caller-added" and "caller-removed" signals, just set it always to zero. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2004>
* srt: don't pass SRT socket ID to "caller-added,removed" signalsJakub Adam2021-02-033-20/+16
| | | | | | | | The caller's IP and port is enough for unique identification. Don't leak the socket handle since using it in unadvised libsrt calls from the application could break the SRT element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1772>
* srtobject: add caller address to stats structureJakub Adam2021-02-031-0/+3
| | | | | | | | | In listener mode, gst_stats() returns an independent set of statistics for every connected caller. Having the caller's IP and port present in each structure allows to correlate the statistics with a particular caller that has been announced by "caller-added" signal. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1772>
* ldac: Use pkg-config instead of raw lib/header searchArun Raghavan2021-01-272-4/+3
| | | | | | | | The ldacBT library includes pkg-config files for the standard and ABR libraries, so let's just use that instead of doing a header/library search. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1990>
* dashsink: add h265 codec supportHaihua Hu2021-01-261-0/+2
| | | | | | Return hvc1 for video/x-h265 mime type in mpd helper function Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1966>
* ext/ldac: Move duplicate sampling rates into #defineMarijn Suijten2021-01-261-5/+6
| | | | | | | Because there was a typo in one of the duplicates already (see previous commit) it is much safer to specify these once and only once. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1985>
* ext/ldac: Fix typo in 88200(0) stereo encoder sampling rateMarijn Suijten2021-01-261-1/+1
| | | | | Fixes: a57681455 ("ext: Add LDAC encoder") Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1985>
* wpesrc: fix possible small deadlock on shutdownMatthew Waters2021-01-251-10/+27
| | | | | | | | | | | | | | | | Problem is that unreffing the EGLImage/SHM Buffer while holding the images_mutex lock may deadlock when a new buffer is advertised and an attempt is made to lock the images_mutex there. The advertisement of the new image/buffer is performed in the WPEContextThread and the blocking dispatch when unreffing wants to run something on the WPEContextThread however images_mutex has already been locked by the destructor. Delay unreffing images/buffers outside of images_mutex and instead just clear the relevant fields within the lock. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1843>
* dashsink: fix double unref of sinkpad capsHaihua Hu2021-01-251-2/+0
| | | | | | | no need to unref caps in gst_mpd_helper_get_XXX_codec_from_mime it will be unref in caller gst_dash_sink_get_stream_metadata() Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1981>
* ldac: also look for the ldac/ldacBT.h header.Matthew Waters2021-01-221-1/+2
| | | | | | | Otherwise there will be a scenario where the library can be found but not the header and a compilation build error will result Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1975>
* webrtc: expose transport property on sender and receiverMathieu Duponchelle2021-01-131-2/+7
| | | | | | | | | | | | As advised by !1366#note_629558 , the nice transport should be accessed through: > transceiver->sender/receiver->transport/rtcp_transport->icetransport All the objects on the path can be accessed through properties except sender/receiver->transport. This patch addresses that. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1952>
* wpesrc: replace object lock usage with a new lockMatthew Waters2021-01-121-17/+35
| | | | | | | | | | | | | | | | | | Using the object lock is problematic for anything that can dispatch to another thread which is what createWPEView() does inside gst_wpe_src_start(). Using the object lock there can cause a deadlock. One example of such a deadlock is when createWPEView is called, but another (or the same) wpesrc is on the WPEContextThread and e.g. posts a bus message. This message propagations takes and releases the object lock of numerous elements in quick succession for determining various information about the elements in the bin. If the object lock is already held, then the message propagation will block and stall bin processing (state changes, other messages) and wpe servicing any events. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1490 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1934>
* webrtcbin: try harder not to pick duplicate media idsMathieu Duponchelle2021-01-081-26/+92
| | | | | | | | | | | On renegotiation, or when the user has specified a mid for a transceiver, we need to avoid picking a duplicate mid for a transceiver that doesn't yet have one. Also assign the mid we created to the transceiver, that doesn't fix a specific bug but seems to make sense to me. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1902>
* srt: Define options added in later revisionsEdward Hervey2021-01-071-0/+9
| | | | | | | | | | | Allows compiling the plugin against old headers. For SRTO_BINDTODEVICE there's nothing we can do, since the value depends on configuration options of the library. Nice. Fixes build with libsrt < 1.4.2 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1945>
* srtobject: distinguish authentication error messagesJakub Adam2021-01-061-2/+14
| | | | | | | | Use GST_RESOURCE_ERROR_NOT_AUTHORIZED code in posted error messages related to SRT authentication (e.g. incorrect or missing password) so that the application can recognize them more easily. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1943>
* srtobject: detect socket errors from srt_epoll_wait()Jakub Adam2021-01-061-51/+44
| | | | | | | | | | | On an error event, epoll wait puts the failed socket in both readfds and writefds. We can take advantage of this and avoid explicitly checking socket state before every read or write attempt. In addition, srt_getrejectreason() will give us more detailed description of the connection failure. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1943>
* webrtcbin: Remove remnant of non-rtcp-mux modeOlivier Crête2021-01-067-73/+2
| | | | | | There was some code left that wasn't used anymore. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1930>
* srtobject: make possible to specify more sockopts in SRT URIJakub Adam2021-01-061-55/+173
| | | | | | | | | Any socket option that can be passed to libsrt's srt-live-transmit through SRT URI query string is now recognized. Also make the code that applies options to SRT sockets more generic. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1842>
* srtsrc: fix typosJakub Adam2021-01-061-5/+5
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1541>
* srtsink: remove unused connection_mode variableJakub Adam2021-01-061-4/+0
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1541>
* srtobject: obey "wait-for-connection" in caller modeJakub Adam2021-01-061-0/+9
| | | | | | | | The pipeline now gets stuck in gst_srt_object_write_one() until the receiver comes online, which may or may not be desired based on the use case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1836>
* srtobject: post a message on the bus when broken socket is detectedJakub Adam2021-01-051-2/+3
| | | | | | So that the application gets notified may react to it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1935>
* srt: Add authentication to srtsink and srtsrc elementsRaghavendra2021-01-046-4/+219
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1725>
* dashsink: fix critical log when exit dynamic pipelineHaihua Hu2020-12-312-3/+4
| | | | | | | | | availability-start-time and publish-time shared the same GstDateTime object, this object will be unref twice and cause reference count issue. Should use g_value_dup_boxed() to copy this object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1928>
* webrtcstats: PLI/FIR/NACK direction are the opposite of the mediaOlivier Crête2020-12-291-6/+6
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1924>
* assrender: Don't try unlocking unlocked mutexSebastian Dröge2020-12-291-2/+4
| | | | | | | | When flushing right at the beginning of the video chain function or when failing negotiation at the top of the function, the assrender mutex would be unlocked without being previously locked. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1918>
* openaptx: Drop lib prefix from option name for consistencyArun Raghavan2020-12-111-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1876>
* openaptx: add aptX and aptX-HD codecs using libopenaptxIgor Kovalenko2020-12-118-0/+874
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1871>
* wpe: Emit load-progress messagesPhilippe Normand2020-12-092-0/+24
| | | | | | | The estimated-load-progress value can be used on application side to display a progress bar for instance. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1710>
* srt: Don't take object lock calling gst_srt_object_get_statsJan Alexander Steffens (heftig)2020-12-071-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This function takes the sock lock. This can result in a deadlock when another thread holding the sock lock is trying to take the object lock. Thread A (Holds object lock, wants sock lock): #2 gst_srt_object_get_stats at gst-plugins-bad/ext/srt/gstsrtobject.c:1753 #3 gst_srt_object_get_property_helper at gst-plugins-bad/ext/srt/gstsrtobject.c:409 #4 gst_srt_sink_get_property at gst-plugins-bad/ext/srt/gstsrtsink.c:95 #5 g_object_get_property from libgobject-2.0.so.0 Thread B (Holds sock lock, wants object lock): #2 gst_element_post_message_default at gstreamer/gst/gstelement.c:2069 #3 gst_element_post_message at gstreamer/gst/gstelement.c:2123 #4 gst_element_message_full_with_details at gstreamer/gst/gstelement.c:2259 #5 gst_element_message_full at gstreamer/gst/gstelement.c:2298 #6 gst_srt_object_send_headers at gst-plugins-bad/ext/srt/gstsrtobject.c:1407 #7 gst_srt_object_send_headers at gst-plugins-bad/ext/srt/gstsrtobject.c:1444 #8 gst_srt_object_write_to_callers at gst-plugins-bad/ext/srt/gstsrtobject.c:1444 #9 gst_srt_object_write at gst-plugins-bad/ext/srt/gstsrtobject.c:1598 #10 gst_srt_sink_render at gst-plugins-bad/ext/srt/gstsrtsink.c:179 Fixes d2d00e07acc2b1ab1ae5a728ef5dc33c9dee7869. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1861>
* ccconverter: Add property to specify which sections to include in CDP packetsSebastian Dröge2020-12-072-12/+128
| | | | | | | | | | Various software, including ffmpeg's Decklink support, fails parsing CDP packets that contain anything but CC data in the CDP packets. Based on this property, timecodes are not written into the CDP packets even if they're present. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1833>
* ccconverter: Refactor code to only retrieve the timecode meta onceSebastian Dröge2020-12-071-30/+19
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1833>
* opencv: Expose retinex parametersEdward Hervey2020-12-032-7/+70
| | | | | | Makes the plugin a tad more useful :) Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1845>
* hlsdemux: Use actual object for loggingEdward Hervey2020-12-031-1/+1
| | | | | | i.e. the pad of the stream Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1853>
* curl: Remove incorrect GST_DEBUG_OBJECT() callsArun Raghavan2020-12-038-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/1851>
* hlssink2: Mark as MuxerThibault Saunier2020-11-301-1/+1
| | | | The way it is usable by encodebin2. This is what splitmux does already.
* qroverlay: Reuse the same OverlayComposition object when possibleThibault Saunier2020-11-264-15/+48
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1829>
* qroverlay: Rework basing it on overlaycompositionThibault Saunier2020-11-264-127/+171
| | | | | | | | | | | The base class is now a bin which wraps the `overlaycomposition` element and implements the `draw` signal. This way we support all the video formats the GstVideoOverlayComposition API supports and the blending code can be reused. It is also possible to have the blending happen in the sinks now. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1829>
* webrtc: Make ssrc map into separate data structuresOlivier Crête2020-11-244-22/+26
| | | | | | | They now contain a weak reference and that could be freed later causing strange crashes as GWeakRef are not movable. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
* webrtcstats: Get the remote-inbound stats from the right RTPSourceOlivier Crête2020-11-241-83/+131
| | | | | | | This also means that we need to get the clock-rate from the codec instead of from the RTPSource, as the remote one doesn't include a clock rate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
* webrtcbin: Implement getting stats for a specific padOlivier Crête2020-11-244-43/+15
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
* webrtcstats: Also return the raw rtpsource stats for more informationOlivier Crête2020-11-241-1/+14
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>
* webrtcstats: Avoid copy of GstStructureOlivier Crête2020-11-241-10/+18
| | | | | | Instead transfer the ownership to the new structure Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766>