- Mar 17, 2021
-
-
Nirbheek Chauhan authored
Directly setting rtspsrc to the NULL state before putting the pipeline in the NULL state usually works, but it can cause a deadlock in some cases, so it's not a reliable mechanism to fix this. This reverts commit f37afdaf: "rtspsrc: Fix state changes from PAUSED to PLAYING" and commit 76d624b2: "rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL" Part-of: <!908>
-
- Mar 16, 2021
-
-
Due to an off-by-one when parsing the string, the most significant digit or the clock offset was skipped when parsing the offset. Part-of: <!907>
-
- Mar 15, 2021
-
-
Nirbheek Chauhan authored
This was accidentally broken in the last commit that touched this because I missed the fall-through in the case immediately above this. Part-of: <!906>
-
The old code had a couple of issues that all lead to potential memory safety bugs. - Use a constant for the Wavpack4Header size instead of using sizeof. It's written out into the data and not from the struct and who knows what special alignment/padding requirements some C compilers have. - gst_buffer_set_size() does not realloc the buffer when setting a bigger size than allocated, it only allows growing up to the maximum allocated size. Instead use a GstAdapter to collect all the blocks and take out everything at once in the end. - Check that enough data is actually available in the input and otherwise handle it an error in all cases instead of silently ignoring it. Among other things this fixes out of bounds writes because the code assumed gst_buffer_set_size() can grow the buffer and simply wrote after the end of the buffer. Thanks to Natalie Silvanovich for reporting. Fixes #859 Part-of: <!902>
-
Various error return paths don't set it to NULL and callers are only checking if the pointer is NULL. As it's allocated on the stack this usually contains random stack memory, and more often than not the memory of a previously parsed track. This then causes all kinds of memory corruptions further down the line. Thanks to Natalie Silvanovich for reporting. Fixes #858 Part-of: <!902>
-
Nirbheek Chauhan authored
This usually doesn't matter, but it is disruptive when streaming from a shared media since it will pause all other clients when any client exits. This new behaviour is opt-in and should be safe because you need to set the NULL state on rtspsrc directly, instead of just on the pipeline. See the updated documentation for an explanation. Part-of: <!901>
-
- Mar 12, 2021
-
-
V4L2 makes no difference between the BT.601 and BT.709 transfer functions [1], but GStreamer does since 1.18 [2]. Adapt gst_v4l2_object_get_colorspace() and gst_v4l2_object_set_format_full(). [1] https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/colorspaces-details.html#colorspace-smpte-170m-v4l2-colorspace-smpte170m [2] gst-plugins-base!724 Part-of: <!856>
-
- Mar 11, 2021
-
-
Mathieu Duponchelle authored
GstRtspSrc -> GstRTSPSrc This would have been noticed by the since checker, but those properties were introduced prior to that. Part-of: <!899>
-
- Mar 08, 2021
-
-
This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file. Wavpack float mode is always in 32-bit IEEE format. The following pipeline plays distorted audio if source file is encoded in float mode: gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink Part-of: <!894>
-
- Mar 04, 2021
-
-
Otherwise sending seek events would fail to actually seek. Part-of: <!891>
-
Marc Leeman authored
Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 Option not supported" when a command is sent that is not implemented (e.g. PAUSE). Instead; it should return "501 Not Implemented". This is wrong, as previously, the camera did announce support for PAUSE in the OPTIONS. In this case, handle the 551 as if it was 501 to avoid throwing errors to application level. */ Part-of: <!885>
-
- Mar 03, 2021
-
-
Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but there is no parser for these two formats and the demuxers also don't have these information. It causes negotiation fail between demuxers and decoder when check caps "accept = gst_caps_is_subset (caps, template_caps);". To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder sink caps. Fix #854 Part-of: <!887>
-
Seungha Yang authored
We don't expect this object is a part of public library. gstrtphdrext-twcc.c(45): warning C4273: 'gst_rtp_header_extension_twcc_get_type': inconsistent dll linkage Part-of: <!889>
-
- Feb 24, 2021
-
-
Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in case the encoder does not accept framerate=(fraction)0/1. The acquired caps used for downstream negotiation are determined from gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n and ::fps_d fields to 0. To fix this, copy the frame rate from the sink side. Part-of: <!882>
-
- Feb 21, 2021
- Feb 19, 2021
-
-
Nicolas Dufresne authored
Don't be too spamy about unsupported source change flags as these will be commonly extended in the future. Part-of: <!870>
-
Nicolas Dufresne authored
As we lock the DV_TIMINGS (and standards in the future), we need to probe the caps after, otherwise, we may endup fixating to an unsupported resolution, which would lead to a not-negotiated error. Part-of: <!870>
-
Nicolas Dufresne authored
And use this framerate in our preference. Note that we also flush the probed caps as it seems that the format enumeration may change when a new source change event get triggered. Part-of: <!870>
-
Nicolas Dufresne authored
This adds support to DV_TIMINGS query and locking. The timing width and height is then used as a preference. Part-of: <!870>
-
Nicolas Dufresne authored
As mandated by the specification, make sure to cycle through streamoff / streamon regardless if the caps have changed or not. Part-of: <!870>
-
Nicolas Dufresne authored
Part-of: <!870>
-
Nicolas Dufresne authored
Avoid passing around a bare structure for the preference, this removes the need to copy and free that structure and simplify the code. Also fix a type in the structure name, Prefered -> Preferred. Part-of: <!870>
-
Nicolas Dufresne authored
This stubs the ability to use preferred resolution from digital video timings, analog TV standards or driver reported native resolution. Part-of: <!870>
-
Nicolas Dufresne authored
When we subscribe for source-change event, we need to specify for which input. Make sure we subscribe for the current input. Part-of: <!870>
-
Nicolas Dufresne authored
As part of the support to select a preferred size, we can also detect the signal status. This is a split patch so that feature is separated to ease review. Part-of: <!870>
-
Nicolas Dufresne authored
This is a wrapper around ENUM_INPUT renamed for readability. Part-of: <!870>
-
Nicolas Dufresne authored
This is an unsigned integer in the kernel API. Part-of: <!870>
-
Nicolas Dufresne authored
This patch adds support for source resolution change detection. Resolution change is signaled by drivers when a change in the detected signal have been detected. This is notably seen on HDMI receivers. Part-of: <!870>
-
Nicolas Dufresne authored
This patch adds the detection, dequeuing and reporting of the SOURCE_CHANGE event when the CH_RESOLUTION flag is set. The acquire function will now return a new custom success called GST_V4L2_FLOW_RESOLUTION_CHANGE. In order to use this new feature, elements must enable it by calling: gst_v4l2_buffer_pool_enable_resolution_change (pool); Part-of: <!870>
-
Nicolas Dufresne authored
Part-of: <!870>
-
Nicolas Dufresne authored
This uses the GST_V4L2_FLOW_LAST_BUFFER alias instead of GST_FLOW_CUSTOM_SUCCESS to make the code more readable. Part-of: <!870>
-
Considering NV12 an 'odd' format is a historical artifact. This format is now quite common, and usually preferable to I420 due to more memory friendly access patterns. Part-of: <!857>
-
- Feb 18, 2021
-
-
Guillaume Desmottes authored
wavparse claims to be able to support seeking in the READY state by saving the pending seek event and actually seeking later after having parsed the header. Problem was that this seek event was reset on the READY to PAUSED transition, making all this code useless. Fixing it by stop resetting on READY to PAUSED transition as we already reset on PAUSED to READY and when initiating the element. Note that DTS marker detection isn't support in such scenario as gst_type_find_helper_for_buffer() needs a buffer containing the beginning of the stream. Part-of: <!879>
-
Guillaume Desmottes authored
No semantic change. Part-of: <!879>
-
Part-of: <!834>
-
When set, the depayloader will request new keyframes on packet loss Part-of: <!834>
-
When set, the depayloader will request new keyframes on packet loss Part-of: <!834>
-
Similar to rtpvp8depay, when packet loss occurs, the depayloader starts waiting for a keyframe. We try to only stop waiting when all the packets for the new keyframe have been received, by only resetting waiting_for_keyframe when encountering the first packet of a keyframe, this is slightly fragile because there is no bit that explicitly marks the start of an access unit, so we rely on the existing picture_start detection code. As a consequence, the property is only meaningful when outputting access units, and is ignored when outputting NALs directly. Part-of: <!834>
-
Mathieu Duponchelle authored
Part-of: <!878>
-
- Feb 17, 2021
-
-
wavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code style was updated. Part-of: <!873>
-