Sync upstream GStreamer into ignis-main - #11
Conversation
| gst_validate_printf (NULL, | ||
| "%*s ... and %u more (set GST_VALIDATE_REPORTING_DETAILS=all to list them)\n", | ||
| 12, "", n_suppressed); | ||
|
|
There was a problem hiding this comment.
Validate synthesis omits first details
Medium Severity
In _do_report_synthesis, the first report in each issue group still gets level and “Detected on”, but gst_validate_report_print_details no longer runs for that entry. Critical and full-detail issues that only appear once (or sit at the list head) lose their Details block in synthesized output.
Reviewed by Cursor Bugbot for commit 048051e. Configure here.
| g_free (ts_name); | ||
| g_free (full_dir); | ||
| } else { | ||
| GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline), details, dotname); |
There was a problem hiding this comment.
Dot-dir uses wrong timestamp
Low Severity
The new dot-dir branch builds dot filenames from raw gst_util_get_timestamp(), while the default path uses GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS, which stamps elapsed time since GStreamer start. Mixed runs produce incomparable or misleading dot names for the same scenario action.
Reviewed by Cursor Bugbot for commit 048051e. Configure here.
a4fa6a2 to
ce339fa
Compare
Fix provided by Michael Bommarito, who also reported this. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5177 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12055>
See also https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1036 Another instance of the same issue found Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12063>
The behaviour is different between aux-sender and post-aux-sender. There is a conditional ref_sink if the element is floating in one but not the other. As the element is afterwards added to a bin sink the element before adding. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12066>
The videodscmeta and h274 are needed to access the DSC and h274 related public API externally. So including videodscmeta will take care of that. Also include video-prelude.h instead of videoutils.h in the videoh274.h because only GST_VIDEO_API is used and that is actually provided by video-prelude. This also avoids any errors due to circular includes. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12083>
Move the structure definition of ValidateFlowOverride to "gstvalidateflow.h" so it can be accessed from outside "gstvalidateflow.c". Note: "--color-moved" recommended Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9317>
These were designed as pure functions, but they are currently very coupled to the state of ValidateFlowOverride. It makes no sense to keep increasing the number of parameters of these functions. It's simpler to pass a reference to ValidateFlowOverride instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9317>
These three functions are only used inside "formatting.c". They do not need to be exposed in "formatting.h" Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9317>
This allows stricter validation for all GstMeta that implements the serialize interface. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9317>
Implement gst_video_caption_meta_serialize() and gst_video_caption_meta_deserialize() GstVideoCaptionMeta methods. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9317>
When an GstVulkanImageView is disposed and put back into the cache in GstVulkanImage there was a subtle race-condition, if another thread is requesting the same image view with `gst_vulkan_image_memory_find_view`. In this case the view could have been handed back out when `gst_vulkan_image_memory_release_view` acquires the lock. This commit fixes that case by re-checking the image view refcount after the lock is acquired. If the refcount is more than one it needs to stay in the outstanding views list. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12065>
Add RVV intrinsics implementation for audio resampler inner_product and interpolate functions for gint16, gint32, and gfloat formats. - Add audio-resampler-rvv.h with RVV optimized functions (15 functions) - Add RVV detection and runtime dispatch in audio-resampler.c - Add HAVE_RISCV_RVV compile-time check in meson.build Tested on SOPHGO SG2044 (rv64gcv) with GCC 15.1.0: - elements_audioresample: 11/11 checks passed - libs_audio: 32/32 checks passed - elements_audioconvert: 18/18 checks passed - elements_audiotestsrc: 2/2 checks passed Depends on: gst_cpuid_supports_riscv_v() (MR !11768, merged) Signed-off-by: Xiaofei Gong <gongxiaofei24@iscas.ac.cn> Signed-off-by: YuanSheng <yuansheng@isrc.iscas.ac.cn> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11966>
Add an element query handler that continues to use the maximum value of all streams, and then in the source pad query handler only return the position/duration of the single stream. Also see, https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11783#note_3535922 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11783>
memcmp() returns 0 on equality, not a non-zero value. The typefinder was triggering on everything that is *not* an ipmovie file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12089>
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/11552>
Doing it during the state change will leak the demuxer in pull mode because seekable is reset to FALSE on pad deactivation and then the wrong freeing function is called. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12092>
They were left uninitialized and used uninitialized in the mono case. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12092>
Add coding-raw and cap-compat GObject properties as legacy-decoder compatibility knobs, guarded by GST_SVT_JPEG_XS_HAVE_COMPAT_KNOBS. Both properties are flagged GST_PARAM_CONDITIONALLY_AVAILABLE since they are only installed when the compat knobs are available, and carry Since: 1.30 gtk-doc markers to satisfy hotdoc's check-missing-since-markers. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12087>
And improve const-correctness in many places. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12231>
…g fragmentation unit handling Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12234>
Add missing handling for levels 6.3, 7, 7.1, and 7.2 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12207>
Add level 6.3, 7, 7.1, and 7.2 values to GstH265Level enum Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12207>
The implementation does not take ownership of latest_daily_jam, and it is already annotated accordingly. And add missing (allow-none) annotation to other methods for consistency with gst_video_time_code_new() Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12248>
The first reported class is class 1, but that's at index 0 in the labels file. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12210>
Use the AImage crop rectangle to set the affine transformation meta which is used by all GL elements to ensure that they only touch the displayed dimensions inside the texture when converting, scaling, cropping, etc. This also ensures that the sink samples the texture correctly when rendering, which fixes green/black borders. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12211>
The AHardwareBuffer width/height include padding when using hardware decoders, so we need to get the display width/height somehow from the AMC. AMediaFormat has the info, but the crop-* properties are not always available. There are new properties: * "crop" — which is a rectangle * "display-width" / "display-height" So let's look at those as well. On my Pixel 8a, only the "crop" rectangle is available, so the initial src_caps had the wrong values prior to this commit. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12211>
…nit_seeks The test asserts, via validateflow on the nested composition's inner pads, that only one initialization seek reaches the sources -- one flush-start/flush-stop pair, buffers starting at the expected inpoint. nlecomposition performs that init seek asynchronously from the composition task, while the sources' streaming threads are already running. A source can push its initial [0, none) segment before the seek's FLUSH_START reaches it (the segment push happens outside the LIVE_LOCK since a3f8f03), so the leaked segment is recorded on the inner pads and the flow no longer matches the expectation. This event ordering is legal -- the segment is discarded by the following flush and the composition output is unaffected -- so the inner-pad segment order is simply not deterministic and asserting it is wrong. Ignore segment events on these pads: the flush-start/flush-stop pair (the actual "no unnecessary seek" invariant) and the buffers (correct inpoint/timing) are still checked. Expectation files regenerated accordingly. Example failed CI job: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/105336313 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12253>
…ions EOF When the recorded flow diverges after the last line of the expectations file, report_mismatch_diff() walked expected_lines[] beyond the strv NULL terminator while printing the context around the mismatch: the context window is computed from the mismatch line index, so with line_index past EOF the loops start (or run) past the terminator, dereference a garbage pointer and crash in the async report thread. Bound both context loops by the actual number of expected lines. The mismatch is then reported normally instead of crashing. This is the intermittent teardown SIGSEGV of ensure_no_unnecessary_stack_init_seeks: the scenario completes, and while going to NULL an extra flush event can reach the monitored pads after the last expected line, tripping the out-of-bounds diff. Example failed CI job: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/106881397 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12253>
… allocators This will better mirror gstahardwarebuffer.h, which does exactly the same for AHardwareBuffer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12202>
Makes it easier to use with language bindings that expose a closure for the callback function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12202>
The blend weights and sample delta can each approach 65535, so their product overflows the 32-bit intermediate. Compute the product and shift in 64 bits. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12263>
…tion/sync-upstream-main
58d0333 to
bf00a7f
Compare


This PR merges the latest upstream GStreamer main branch into ignis-main while preserving Ignis changes.
Note
Medium Risk
Large upstream merge touching core libraries, codec parsers, and CI; runtime risk is mostly from behavioral/API changes in parsers, tracing, and base classes rather than from the CI-only edits.
Overview
This sync brings in upstream 1.29.2-era changes reflected in generated GIRs, plus CI, fuzzing, and conformance test maintenance.
CI and validation: GitLab jobs skip Windows/macOS/Cerbero paths for the
gstreamer-securityproject; valgrind rules use a shared*toplevel_and_ci_changesanchor; ABI-check images get a newer tag and leaner Meson args;ci/scripts/test.shdisables--check-bugson that security fork.Fuzzing: OSS-Fuzz build enables selected good/bad demux/parser plugins (was good/bad off); new libfuzzer targets cover audio/video converters, caps/value parsing, and discoverer corpus paths point at plugin test media instead of integration-testsuites only.
Conformance / docs: MV-HEVC Fluster reference hashes update for three streams;
AGENTS.mddrops the robot emoji fast-track note.Public API surface (GIR): New Gst 1.30 tracing (
GstTraceFormat, span/event macros, deprecatedGstTracerRecord); plugin static-registry flags andgst_plugin_get_registry(); RISC-V vector CPU probe; GstAllocators AHardwareBuffer/IOSurface caps and peek helpers; GstBase duplicate-PTS allowance and last-sample notify property; GstCodecParsers H.265 levels 6.3–7.2 and H.274 digitally-signed-content SEI helpers; GES micro version bump; analytics segmentation mask docs clarified.Reviewed by Cursor Bugbot for commit bf00a7f. Bugbot is set up for automated code reviews on this repo. Configure here.