- Oct 26, 2020
- Oct 23, 2020
-
-
This reverts commit 85b9893e. This change caused a regression reported in #796. Basically the pool get deactivated by basesrc and the encoder does not recover. Recovering with current design would cause insertion of an unwanted keyframe. This is being reverted in 1.18 only, a proper solution is wanted for 1.20. Part-of: <!785>
-
- Oct 22, 2020
-
-
0/1 means unknown framerate not X/0 (which is illegal). Part-of: <!783>
-
The crash is caused by a race condition where the render thread calls a method on the QtGLVideoItem instance that was previously destroyed by the main thread. Also, less frequently, QtGLVideoItem::onSceneGraphInitialized is called when QQuickItem::window is null, also causing a crash. Fixes #798 Part-of: <!781>
-
Arun Raghavan authored
The GstMetaInfos registered in core do not set their tags to NULL, but instead use an empty list (non-NULL list with a single NULL value). Let's check explicitly for that so as to not miss some metas. Part-of: <!780>
-
- Oct 04, 2020
-
-
If we have not received a FU with a start bit set, any subsequent FU data is not useful at all and would result in an invalid stream. This case is constructed from multiple requirements in RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3. Following are excerpts from RFC 3984 but RFC 7798 contains similar language. The FU in a single FU case is forbidden: A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the Start bit and End bit MUST NOT both be set to one in the same FU header. and dropping is possible: If a fragmentation unit is lost, the receiver SHOULD discard all following fragmentation units in transmission order corresponding to the same fragmented NAL unit. The jump in seqnum case is supported by this from the specification instead of implementing the forbidden_zero_bit mangling: If a fragmentation unit is lost, the receiver SHOULD discard all following fragmentation units in transmission order corresponding to the same fragmented NAL unit. A receiver in an endpoint or in a MANE MAY aggregate the first n-1 fragments of a NAL unit to an (incomplete) NAL unit, even if fragment n of that NAL unit is not received. In this case, the forbidden_zero_bit of the NAL unit MUST be set to one to indicate a syntax violation. Part-of: <!764>
- Oct 03, 2020
-
-
... and chain up to default query handler for unhandled query types. Unhandled query shouldn't be returned with FALSE if there's no special needs. Part-of: <!763>
-
Various live555 based products are using the wrong "mode" string or seem to assume case-insensitive matching, which is wrong. Examples for this are the Yuan SC6C0N1 mini and the Kiloview E2. Part-of: <!762>
-
- Oct 02, 2020
-
-
When using python, signal parameter must match with function. Part-of: <!761>
-
Some cameras (Panacast) have buggy drivers/firmware which send invalid JPEG frames, containing no data, which makes jpegdec crash because it assumes the frame is at least 2 bytes long. Part-of: <gstreamer/gst-plugins-good!760>
-
- Oct 01, 2020
-
-
Part-of: <gstreamer/gst-plugins-good!759>
-
Besides looking like the correct place to put this, it allows us to drop the entire aggregator queue. The old implementation only dropped at most one buffer for each call of aggregate. Part-of: <gstreamer/gst-plugins-good!759>
-
- Sep 30, 2020
-
-
Part-of: <gstreamer/gst-plugins-good!758>
-
- Release the split mux lock while removing the probes - Flush the sinkpad to unblock other pads - Turn check_completed_gop into a do while statement, when waking up we want to recheck whether the current GOP is ready for sending Part-of: <gstreamer/gst-plugins-good!756>
-
- Sep 08, 2020
-
-
Tim-Philipp Müller authored
-
- Sep 07, 2020
-
-
Tim-Philipp Müller authored
Part-of: <!716>
-
Sebastian Dröge authored
Part-of: <gstreamer/gst-plugins-good!715>
- Aug 31, 2020
-
-
The 'best' pad might receive a flush event between us picking it and us popping the buffer. In this case, the buffer will be missing. Part-of: <gstreamer/gst-plugins-good!711>
-
Jan Alexander Steffens authored
The code seems to use `continue` and `break` as if both refer to the surrounding `while` loop. But because `break` breaks out of the `switch`, they actually have the same effect. This may have caused the loop not to terminate when it should. E.g. when `skip_backwards_streams` drops a buffer we should abort the aggregation and wait for all pads to be filled again. Instead, we might have just selected a subsequent pad as our new "best". Replace `break` with `done = TRUE; break`, and `continue` with `break`. Then simplify the code a bit. Part-of: <gstreamer/gst-plugins-good!710>
-
- Aug 24, 2020
-
-
gstqmlgl: build on Windows with qmake without pkgconfig; update instructions on building for Windows Part-of: <gstreamer/gst-plugins-good!591>
-
Fixes gstreamer/gst-plugins-good#778 Part-of: <gstreamer/gst-plugins-good!704>
-
gst_rtp_L16_depay_process to unref buffer on wrong payload size or reorder failure. Part-of: <gstreamer/gst-plugins-good!702>
-
- Aug 20, 2020
- Aug 18, 2020
-
-
Sebastian Dröge authored
It's optional and if it does not exist then no transformation is possible. Part-of: <gstreamer/gst-plugins-good!701>
-
- Aug 13, 2020
-
-
Julian Bouzas authored
Part-of: <gstreamer/gst-plugins-good!699>
-
Otherwise they end up all in the same line one after another. Also add docs for the "avg-jitter" stats field of the jitterbuffer. Part-of: <!698>
-
- Aug 11, 2020
-
-
Nicolas Dufresne authored
Part-of: <gstreamer/gst-plugins-good!697>
-
Nicolas Dufresne authored
Part-of: <gstreamer/gst-plugins-good!697>
-
gst_v4l2_open() is called by gst_v4l2_device_provider_probe_device(), where the GstV4l2Object is created without an associated GstElement. If gst_v4l2_open() fails, it raises a bus message, but without an element, a precondition check fails on gst_element_message_full_with_details() generating a crash if running with fatal-warnings debug mode. GstV4l2Error is a helper to raise error bus messages when it is appropiated. This patch changes the direct bus messages to this helper, and the elements will actually send the error message. Part-of: <gstreamer/gst-plugins-good!694>
-
- Aug 10, 2020
-
-
Vivia Nikolaidou authored
When we are dropping a buffer in find_best_pad (e.g. waiting for a keyframe, or skipping backwards timestamp), return GST_AGGREGATOR_FLOW_NEED_DATA to make sure we have enough data at the next run. Otherwise, a stream that accidentally fell behind (e.g. relinking race, or just waiting for a keyframe) will never get the opportunity to catch up to the other one, because the other one will always keep advancing. Part-of: <gstreamer/gst-plugins-good!696>
-
Vivia Nikolaidou authored
Part-of: <gstreamer/gst-plugins-good!696>
-
Vivia Nikolaidou authored
Wrong pointer type Part-of: <gstreamer/gst-plugins-good!696>
-
Matthew Waters authored
With Qt 5.15 multiple qmlgloverlay elements would produce: ASSERT: "!m_gl->property(QSG_RENDERCONTEXT_PROPERTY).isValid()" in file /path/to/qt5/qtdeclarative/src/quick/scenegraph/qsgdefaultrendercontext.cpp, line 121 Workaround by setting the (seeminigly unused) property before initialization. Part-of: <gstreamer/gst-plugins-good!695>
-
- Aug 08, 2020
-
-
Sebastian Dröge authored
We didn't aggregate at all in previous versions and there are apparently various RTP implementations that don't handle aggregation well at all. As part of this also document that for RTSP it is recommended to keep it set to "none" while for WebRTC it should be set to "zero-latency". Fixes gstreamer/gst-plugins-good#749 Part-of: <gstreamer/gst-plugins-good!692>
-
- Aug 07, 2020
-
-
Part-of: <gstreamer/gst-plugins-good!680>
-
- Aug 04, 2020
-
-
* Trying to disconnect a stream from a running splitmuxsink by flushing it results in the FLUSH_START blocking in the stream queue's gst_pad_pause_task because the flush did not unblock complete_or_wait_on_out, so add a check for ctx->flushing there. * Add a GST_SPLITMUX_BROADCAST_INPUT so check_completed_gop notices flushing changed and the incoming push is unblocked. * Pass the FLUSH_STOP along to the muxer without waiting. Part-of: <gstreamer/gst-plugins-good!687>
-
Vivia Nikolaidou authored
Otherwise it can happen that it tries to get the clock in PAUSED state in live mode, which does not exist. Thanks to Sebastian Dröge for helping debugging. Fixes #775 Part-of: <gstreamer/gst-plugins-good!691>
-