summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
* opencv: cvtracker: add draw propertyVivek R2021-09-222-0/+16
| | | | | | This property controls the drawing of rectangle around the tracked object. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
* opencv: add cvtracker pluginVivek R2021-09-224-2/+514
| | | | | | | This adds an object tracker plugin. Tracker implementations from https://docs.opencv.org/3.4/d0/d0a/classcv_1_1Tracker.html Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
* opencv: patch to ensure headers are detectedVivek R2021-09-221-1/+3
| | | | | | This patch is used to ensure opencv headers are detected. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2454>
* jpeg2000parse + openjpeg: Switch striped mode to its own capsStéphane Cerveau2021-09-202-57/+68
| | | | | | | | | | It's not compatible with any other element that use the non-striped mode. In addition, in this mode, we require that every frame have the same number of stripes or that the MARKER bit be present, which is different from the other formats too. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegdec: Fix crash with AYUV64 in subframe modeStéphane Cerveau2021-09-201-80/+2
| | | | | | | | | | | | Remove useless generic fill_frame methods to use the packed one for AYUV and AYUV64. Fix gst-launch-1.0 -v videotestsrc ! video/x-raw,width=640,height=480,format=AYUV64 ! openjpegenc num-stripes=8 ! openjpegdec max-threads=8 ! videoconvert ! autovideosink sync=false Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegdec: support for a multithreaded decoding.Stéphane Cerveau2021-09-203-135/+617
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegdec: enable sub frame modeAaron Boxer2021-09-202-153/+224
| | | | | | | | | Rebuild output frame from multiple stripes input. Keep the first frame and fill it with the following stripes to finish a complete frame only once. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegdec: Reject stripes for nowOlivier Crête2021-09-201-1/+2
| | | | | | They're not implemented. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegenc: Only allow stripe with image/x-jpc formatOlivier Crête2021-09-201-1/+2
| | | | | | | It's the only format that our MPEG-TS muxer allows and the carriage of JPEG 2000 stripes is only defined for MPEG-TS as far as I know. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* openjpegenc: support for a multithreaded encoding.Stéphane Cerveau2021-09-203-147/+463
| | | | | | | | | This commit introduces a multithreaded encoder allowing to encode mulitple stripes or subframes in separated threads. This feature aims to enhance the overall latency of a codec pipeline. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
* wpe: context thread dispatch fixesPhilippe Normand2021-09-201-17/+36
| | | | | | | | | Use dedicated mutex/cond/flag for jobs being dispatched in the context thread. The previous code was signalling the thread startup condition, which is wrong. When WPEContextThread::dispatch() is invoked it means the thread has already correctly been started up. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
* wpe: Properly wait on context thread startup conditionPhilippe Normand2021-09-202-1/+5
| | | | | | Fixes #1661 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2533>
* waylandsink: Fix double render checkNicolas Dufresne2021-09-172-5/+14
| | | | | | | | | | | Our code does not support rendering twice the same wl_buffer in a row, so it tries to skip that case, but for this it relied on the GstBuffer pointer, while the cache actually works at the GstMemory level now. To avoid this compare the GstWlBuffer instead. This fixes crash when use in zero-copy with videorate element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2526>
* tests: skip cc tests if plugin is disabledU. Artie Eoff2021-09-151-3/+3
| | | | | | | | | | | | Skip the closedcaption element tests if the closedcaption option is disabled at compile time (i.e. -Dclosedcaption=disabled). v2: rename pangocairo_dep to avoid conflict with later definition in ext/ttml/meson.build as suggested by @tpm. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1388>
* tests: skip aes test if elements not builtU. Artie Eoff2021-09-141-5/+0
| | | | | | | | | | | | | | | In ext/aes/meson.build, the aes_dep will return not-found if -Daes=disabled, regardless of whether openssl is found or not. Thus, we don't need a separate check for the option. This will also ensure that aes_dep is always defined and we can use it in the tests/check/meson.build unit. Fixes #1660 v2: handle -Daes=disabled, too. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2522>
* wpe: Add support for web:// URIsPhilippe Normand2021-09-131-11/+13
| | | | | | The CEF source already supports this. No good reason for wpesrc not too ;) Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2503>
* mpeg2enc: Only allow 1 pending frame for encodingJan Schmidt2021-09-063-16/+25
| | | | | | | | | | Having an unlimited input queue is very bad if the encoder can't run at real-time. Eventually it will consume all RAM. I don't really see any reason to have more than 1 outstanding encoded frame, so remove the queue and limit things to 1 pending frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2499>
* wpe: Fix race condition on teardownThibault Saunier2021-09-031-4/+37
| | | | | | | | | | | There was a race when going to PAUSED while pushing a buffer to the pipeline process (where we weren't even cancelling anything). This rework base all the cancellation around the GCancellable "cancelled" signal trying to ensure that the streaming thread will not block once a cancel operation happens. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
* wpe: Use the new element.get_current_running_time APIThibault Saunier2021-09-031-16/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
* wpe: Mark first buffer as starting at 0Thibault Saunier2021-09-031-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2504>
* wpevideosrc: Uniformise default value for draw-background propertyPhilippe Normand2021-08-311-2/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
* wpevideosrc: Implement basic heuristic for raw caps negotiationPhilippe Normand2021-08-311-6/+17
| | | | | | | Before this patch raw caps could be negotiated already with a capsfilter, but in cases where wpesrc is being auto-plugged this approach can't be used. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
* wpevideosrc: Ensure debug category is setPhilippe Normand2021-08-311-0/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2498>
* cccombiner: fix scheduling with interlaced video buffersMathieu Duponchelle2021-08-301-5/+6
| | | | | | | | The initial code was written with the misunderstanding that IS_TOP_FIELD indicated that an interlaced buffer contained a top field, not that it contained only a top field Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2413>
* dashdemux: copy ContentProtection element including xml namespacesAlex Ashley2021-08-271-1/+16
| | | | | | | | | | | | | | | | | Commit bc09d8cc changed gstmpdparser to put the entire <ContentProtection> element in the "value" field, so that DRMs other than PlayReady could make use of the data inside this element. However, the data in the "value" field does not include any XML namespace declarations that are used within the element. This causes problems for a namespace aware XML parser that wants to make use of this data. This commit modifies the way the XML is converted to a string so that XML namespaces are preserved in the output. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2487>
* aes: add aes encryption and decryption elementsAaron Boxer2021-08-259-0/+1780
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1505>
* webrtcbin: Return typed "sctp-transport"Johan Sternerup2021-08-251-1/+2
| | | | | | | With GstWebRTCSCTPTransport type exposed we can now define "sctp-transport" property as being of this type. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
* webrtc: Split sctptransport into lib and implementation partsJohan Sternerup2021-08-258-158/+128
| | | | | | | | | | | | | | | GstWebRTCSCTPTransport is now made into into an abstract base class that only contains property specifications matching the RTCSctpTransport interface of the W3C WebRTC specification, see https://w3c.github.io/webrtc-pc/#rtcsctptransport-interface. This class is put into the WebRTC library to expose it for applications and to allow for generation of bindings for non-dynamic languages using GObject introspection. The actual implementation is moved to the subclass WebRTCSCTPTransport located in the WebRTC plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
* webrtcbin: Expose SCTP TransportJohan Sternerup2021-08-251-1/+18
| | | | | | | | | | | | | | | | | | Being able to access the SCTP Transport object from the application means the application can access the associated DTLS Transport object and its ICE Transport object. This means we can observe the ICE state also for a data-channel-only session. The collated ice-connection-state on webrtcbin only includes the ICE Transport objects that resides on the RTP transceivers (which is exactly how it is specified in https://w3c.github.io/webrtc-pc/#rtciceconnectionstate-enum). For the consent freshness functionality (RFC 7675) to work the ICE state must be accessible and consequently the SCTP transport must be accessible for enabling consent freshness checking for a data-channel-only session. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2214>
* openh264enc: fix broken header AU emission by base classTim-Philipp Müller2021-08-241-25/+0
| | | | | | | | | | | | | | | | This encoder advertises alignment=au as output format, which means each output frame should contain a full decodable access unit. The video encoder base class is not aware of our output alignment and will output spurious buffers with just the SPS/PPS inside when we call gst_video_encoder_set_headers(), which is broken because each buffer is supposed to contain a full decodable access unit in our case. Just don't tell the base class about our headers, they will be sent at the beginning of each IDR frame anyway. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
* openh264enc: fix caps and header buffer leakTim-Philipp Müller2021-08-241-1/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
* openh264enc: fix broken sps/pps header generationTim-Philipp Müller2021-08-241-2/+7
| | | | | | | | | | | | | This was putting a truncated SPS into the initial header instead of the PPS because it was always reading from the beginning of the bitstream buffer (pBsBuf) and not from the offset where the current NAL is at in the bitstream buffer (psBsBuf + nal_offset). This was broken in commit 17113695. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1576 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2178>
* dashdemux: Properly initalize GErrorEdward Hervey2021-08-201-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2476>
* webrtc: improve matching on the correct jitterbufferMatthew Waters2021-08-161-13/+32
| | | | | | | | | | | | | | | | | | | | The mapping between an RTP session and the SDP m= line is not always the same, especially when BUNDLEing is used. This causes a failure in a specific case where if when bundling, if mline 0 is a data channel, and mline 1 an audio/video section, then retrieving the transceiver at mline 0 (rtp session used) will fail and cause an assertion. This fix is actually potentially a regression for cases where the remote part does not provide the a=ssrc: media level SDP attributes as is now becoming common, especially when simulcast is involved. The correct fix actually requires reading out header extensions as used with bundle for signalling in the actual data, what media and therefore transceiver is being used. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2467>
* fdkaacdec: Add Converter class to hint gst-validateThibault Saunier2021-08-131-1/+1
| | | | | | | | | | fdkaacdec have minimal conversion capability, adding the Converter class allow gst-validate to behave properly and not spit an error when it notice that the number of channels or rate miss-match in and out. Same logic as with opusdec, see: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1142> Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2462>
* ccconverter: fix overflow when not doing framerate conversionMathieu Duponchelle2021-08-131-0/+6
| | | | | | | | | When converting from one framerate to another, counters are reset periodically, however when not converting they never are and can_genearte_output ends up making overflow-prone calculations with large values for input_frames and output_frames. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2465>
* webrtcbin: Don't assume that non-audio medias are video medias when creating ↵Sebastian Dröge2021-08-121-3/+10
| | | | | | | | transceivers And print the unknown media kind in the logs. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2464>
* webrtcbin: Use the correct media for deciding the media kind when creating ↵Sebastian Dröge2021-08-121-1/+1
| | | | | | the transceiver from the SDP Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2464>
* openh264: Respect level set downstreamThibault Saunier2021-08-092-1/+16
| | | | | | | | We were not specifying the requested level to openh264 meaning that it was choosing anything and was not respecting what was specified\ downstream Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2289>
* x265: Fix a deadlock when failing to create the x265enc.He Junyan2021-08-091-2/+5
| | | | | | | | | The GST_ELEMENT_ERROR will call the gst_object_get_path_string and use gst_object_get_parent to get the full object path name, which needs to lock the object. But we are already in a locked context and so this will cause a deadlock, the pipeline can not exit normally. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2451>
* rtmpsrc: mention setting librtmp flags in docsR S Nikhil Krishna2021-08-091-0/+10
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2424>
* mpeg2enc: fix interlace-mode detectionMathieu Duponchelle2021-08-051-1/+19
| | | | | | | Previously, the code was always assuming progressive input, fix this by looking at the caps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2455>
* Use g_memdup2() where available and add fallback for older GLib versionsTim-Philipp Müller2021-08-055-5/+5
| | | | | | | g_memdup() is deprecated since GLib 2.68 and we want to avoid deprecation warnings with recent versions of GLib. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2280>
* cccombiner: fix CDP padding detectionMathieu Duponchelle2021-07-281-1/+1
| | | | | | | | While a cc_data_pkt with cc_valid 0 should be considered padding, it might be followed up by valid DTVCC packets, and should not cause the whole CDP packet to get discarded. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2440>
* dash: Store entire ContentProtection node in protection event dataPhilippe Normand2021-07-151-29/+8
| | | | | | | | | | | | | | | | Some manifests use the ContentProtection node to store additional information such as the license server url. Our MPD parser used to process the ContentProtection node, extracting Playready PSSH boxes. However for other DRM systems, only the `value` attribute was passed down to the protection event, so for example, Widevine data was not parsed at all and "Widevine" was passed to the event, which is not very useful for decryptors that require a PSSH init data. Parsing should now be done by decryptors which will receive the entire ContentProtection XML node as a string. This gives more "freedom" to the decryptor which can then detect and parse custom nodes as well. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2400>
* wpesrcbin: Use gst_buffer_new_memdup()Philippe Normand2021-07-131-1/+1
| | | | | | g_memdup() is deprecated. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2406>
* vulkansink: Fix element metadata.Víctor Manuel Jáquez Leal2021-07-121-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2396>
* dashdemux: Log protection events on corresponding padPhilippe Normand2021-07-081-2/+4
| | | | | | | GstDashDemuxStream is not a GstObject, so use its pad as associated object when emitting log messages. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2389>
* cccombiner: mark field 0 as valid when generating padding CDPMathieu Duponchelle2021-07-081-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2383>
* dashsink: fix crash with no pad name for representationStéphane Cerveau2021-07-071-1/+38
| | | | | | | | | | | if there is no pad name, the representation id was NULL, causing a crash when writing the mpd file. gst-launch-1.0 videotestsrc num-buffers=900 ! video/x-raw, width=800, height=600, framerate=30/1 ! x264enc ! video/x-h264, profile=high ! dashsink Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2064>