Update source changes till 10/08/2026 Batch1 - #33
Open
GirishKadirisani wants to merge 67 commits into
Open
Conversation
…ted codec2 version GST_C2_PARAM_INTRA_REFRESH_MODE was introduced in codec2 v2.1 (change 6487824), but the version guard only checked MAJOR == 2, causing it to be applied on v2.0 where the parameter does not exist and results in a failure. Add minor version check (>= 1) to restrict this to v2.1+. Signed-off-by: Duanpeng Liu <duanpeng@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
The hardcoded composer capabilities in gst-ai-multistream-inference app are removed to enable dynamic capability negotiation. Signed-off-by: Muthumula Sai Harshith Reddy <muthumul@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Add missing RGBA8888/RGBx and BGRA8888/BGRx to NV12/NV21 conversion cases in gst_fcv_video_converter_rgb_to_yuv() using the FastCV API fcvColorRGBA8888ToYCbCr420PseudoPlanaru8. Previously, using engine=fcv with qtimlvconverter or qtivcomposer in pipelines that require an RGBA/BGRA → NV12 color conversion (e.g. IMSDK ML inference pipelines on Aspen LE) would hit the unsupported format error path and fail. The mapping is: RGBA/RGBx → NV12: direct call to ColorRGBA8888ToYCbCr420PseudoPlanaru8 BGRA/BGRx → NV21: same API (byte order is equivalent) BGRA/BGRx → NV12: same API + chroma swap to destination RGBA/RGBx → NV21: same API + chroma swap to destination Signed-off-by: Duanpeng Liu <duanpeng@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Add file existence check for all watermark RGBA file paths before creating the GStreamer pipeline. - Report error for each missing or non-regular file with clear path information. - Exit with error code when any watermark file is not found, preventing the pipeline from hanging indefinitely. - Support validation for multiple watermark entries specified via repeated -I/--image options. Signed-off-by: Hongyong Huang <hongyong@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- qticamimgreproc takes ownership of the metadata pointer and frees it. - In qmmfsrc, freeing the metadata for discarded buffers only. - skip the freeing in qmmfsrc as reproc already owns it and free the memory. Signed-off-by: Shubhankar Kulkarni <shukulk@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- The app supports: - Dual-camera (CAM1 + CAM2) pre-buffering via logical camera - Per-camera sensor standby during buffering - Live view streaming during buffering window - RDI and IPE Bypass tap-out modes - Snapshot capture during buffering and recording Signed-off-by: Shubhankar Kulkarni <shukulk@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Validate watermark RGBA file paths exist before pipeline creation. - Reject unexpected positional CLI arguments. - Fix GLib warning in help-h option definition. Signed-off-by: Hongyong Huang <hongyong@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Install versioned libgenie-vlm libs. Signed-off-by: Nikolay Hristozov <c_nhrist@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
…ies" This reverts commit a00fd158930c9ce579f2bdd28cc080d9829ec215. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue 1: Direct manipulation of the PKG_CONFIG_PATH env variable
for attaching local paths to .pc files in order to tell
pkg_check_modules where to search for them is improper
and is causing pollution of the work environment.
Fix 1: Use PKG_CONFIG_USE_CMAKE_PREFIX_PATH together with a global
list variable PKG_CONFIG_LOCAL_PATH to which each sub-project
appends their path. Before each pkg_check_modules the
sub-project CMAKE_PREFIX_PATH it set to PKG_CONFIG_LOCAL_PATH.
Issue 2: The below "poison-system-directories" errors is due to
malformed .pc file template.
cc1plus: error: include location "/usr/include/gstreamer-1.0"
is unsafe for cross-compilation [-Werror=poison-system-directories]
Fix 2: Add "Requires:" and use pcfiledir variable for such relocatable
pkg-config usages.
Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
GirishKadirisani
requested a review
from NaveenCherukuri (CherukuriNaveenQC)
as a code owner
August 10, 2026 10:26
- Rename some of the structures in order to simplify them. Parts in the naming where redundant. - Rename headers and source files and drop redundant words. - Enhance post-process structures with helper functions. - Make the structures, APIs and documentation compatible with gobject-introspection - Include new files in GIR and TYPELIB generation Change-Id: I244346ca75e995024aa2fd38c3304ff29fcfc052 Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
Call gst_init() before checking for the libcamerasrc plugin so GStreamer is properly initialized before registry/factory lookup. This fixes the false "libcamerasrc not present" result seen at runtime even when the plugin is installed and working on the target. Signed-off-by: Shantanu <shanmaju@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Modify include file dependency. Signed-off-by: Shradha Somani <shrasoma@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Modify example according to ce_cdm18 rather than ce_cdm before. - Fix warning. - Fix conflict between functions. Signed-off-by: Shradha Somani <shrasoma@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: Build fails if audio codec2 is not enabled due to missing symbol references. Fix: Use existing macro definitions to add conditional checks and exclude audio-codec2 component when disabled. Signed-off-by: Bing Li <bli8@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
-Issue: negative min-quant value failed to be set in case of 10bit.
-Fix:
1.Pass quant init/range properties from uint32_t to int32_t.
2.Change default min-quant value from 10 to 0 as the qp range of
8bit start from 0 while that of 10bit starts from -12.
Signed-off-by: Ziyi Gai <zgai@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
-Accept CDM provisioning URL (--cdm-prov) and license URL (--cdm-lic) as CLI arguments to avoid hardcoding sensitive URLs in source code. Signed-off-by: Shradha Somani <shrasoma@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
…on drain EOS arriving on any of the three sink pads (sink, sink_ctrl, sink_ml) was forwarded downstream via gst_pad_event_default(), triggering GstBin's EOS aggregation and causing the encoder to receive EOS before the worker task had drained main_frames. This dropped the last min_buffers frames on every stream end. Fix by consuming EOS on all three sink pads and delegating EOS delivery to the encoder solely from the worker task, after main_frames is fully drained. Signed-off-by: Raja Ganapathi Busam <rbusam@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Initial version of override files for Python GstQtiML. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
-Issue: parsing results will be overlaied leading to segmentation fault
in case of open and close qmmf context multiple times.
-Fix: clean old data at the beginning of parsing.
Signed-off-by: Ziyi Gai <zgai@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: When we run any pipeline, unnecessary warnings appear on the console. these logs are seen as GBM fails to detect the driver's name or device information. Fix: Using correct fd associated with drm render nodes (/dev/dri/renderD128) for gbm device creation. Signed-off-by: Shradha Somani <shrasoma@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Add compilation flags needed for proper compilation of mllbin plugin Signed-off-by: Angel Hitov <c_ahitov@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Attach the valid ImageRegion based on the input source aspect ratio. Signed-off-by: Filip Kardzhaliyski <fkardzha@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Propagate the resolution of the model input tensor from mlvconverter to downstream mlpostprocess via the custom ml-preprocess-information event. - Use the propagated ml-preprocess-information event in mlpostprocess to automatically negotiate resolution in case of image mask output. - Improve segmentation and super-resolution modules to populate only pixels in the image mask which have real dat. - In vcomposer check and use the service ROI meta "ImageRegion" as a source for the blits when it is available. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- The TextGeneration structure is not supported end-to-end as it was only partially implemented. - Remove the structure as the its usage will not be implemented. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
The QTI allocator is inheriting DMA Allocator so manual DMA buffer sync is no longer needed. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Implement signals callbacks for optional post-process in application. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Move gst_ml_module_parse_caps() to common ML module utils - Rename gst_ml_module_parse_caps() to generic gst_ml_caps_to_string() Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
This reverts commit dc5f3ae1bcd4711be57d5a57dfc120695d368605. Signed-off-by: Angel Hitov <c_ahitov@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: The first buffer duration can be computed incorrectly when a stream legitimately starts at timestamp 0. Analysis: last_timestamp was initialized and reset to 0 and compared against 0 to detect "no previous timestamp". A valid buffer with a 0 PTS was therefore indistinguishable from the uninitialized state, leading to a wrong duration calculation on the first frame. Fix: Initialize and reset sinkpad->last_timestamp to GST_CLOCK_TIME_NONE and compare against GST_CLOCK_TIME_NONE, so a valid 0 timestamp is no longer treated as "no previous timestamp" when computing frame duration. Signed-off-by: Viswanath Srikanth Bathina <bathina@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Added required dependencies gstreamer1.0-plugins-bad and libsoup dependencies required for WebRTC libs gst-plugins-imsdk-common and enabled debian Signed-off-by: Shantanu <shanmaju@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Add a GstDeviceProvider so gst-device-monitor-1.0 enumerates the cameras with per-camera metadata. - Register a GstValueCompareFunc for G_TYPE_POINTER via - gst_value_register() to fix the "unable to compare values of type gpointer" GStreamer-CRITICAL raised while comparing the pointer metadata properties during hint building. Signed-off-by: Shubhankar Kulkarni <shukulk@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: EOS race condition fix in metamux Analysis: worker task was stuck waiting for signal in metamux at EOS. Fix: - Send wakeup signal on getting GST_EVENT_EOS on data sink pad Signed-off-by: Viswanath Srikanth Bathina <bathina@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Initial support for segmentation and depth map post-process which uses the new structures which provide both string serialization and direct mask visualization. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Register a SIGTERM handler alongside SIGINT and route both signals through the existing shutdown path. This enables graceful termination when the application is stopped by service managers or containers, ensuring regular outputs receive EOS so muxers and sinks can finalize correctly. For WebRTC outputs, the existing shutdown logic continues to bypass EOS and stop directly to avoid waiting on a live transport. Also remove the SIGTERM watch during cleanup and update signal handling comments to reflect support for both SIGINT and SIGTERM. Signed-off-by: Kemal Rasim Sh <kshakir@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Initial support for parsing serialized segmentation and depth map strings and attaching them to GstBuffer as GstMeta. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Initial support for visualizing the new GstVideoSegmentationMeta and GstVideoDepthMeta. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Overrides for setter/getter of GArray and GstStructure fields. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Introduce functions for getting the byte size of a video datatype and getting the name of a video datatype. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Move the GstVideoQuadrilateral in its associated functions to video-utils.h - Move the defines for video data types to video-utils.h and implement it as a proper GstVideoDataType enum. - Move the common function for GstVideoFrame normalization into video-utils.h Change-Id: Ia5738c890cdeeb6431bc9aadbfac5c31d02753eb Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
- Currently the video rotation flag used in Video Converter Engine is abstracted on at least 2 location even though it is not needed. - Move the GstVideoConvRotate enum into video-utils.h and rename it to the generic GstVideoRotate. - Additionally export gtype for the enum for usage in plugin properties and thus avoiding abstraction/redefinition. Change-Id: I586f908c8678feaef55c5ff8ccff63e9ab4f11d6 Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
Signed-off-by: Bala Sai Kosuri <bkosuri@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- This module removes individual person regions of interest (ROIs) and replaces them with a single merged person ROI. Signed-off-by: Jai Shiv <jshiv@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: After a disconnect, qtisocketsink can stall for the full poll timeout on every subsequent disconnect. Analysis: gst_socket_deinitialize_for_buffers() unrefs and drops all entries from bufmap but leaves sink->bufcount untouched. Those buffers are never returned by the peer, so the "bufcount == 0" check in the message loop stays false and the DISCONNECT transition is delayed until POLL_TIMEOUT_MS expires. Fix: - Reset sink->bufcount to 0 while holding bufmaplock after clearing bufmap, keeping the counter in sync with the tracked buffers. Signed-off-by: Viswanath Srikanth Bathina <bathina@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Update qdemo launcher script: 1. To use the artifacts from $HOME/qdemo. 2. To handle SIGINT signal. 3. To handle "Record live video" use-case. 4. To use the latest parsing method to retrieve the device ip addr. 5. Changed NV12_Q08C to NV12 in case of usb-camera use case. 6. Changed input resolution for face detection app Includes cosmetic changes to enhance use-experience Signed-off-by: Muthumula Sai Harshith Reddy <muthumul@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Move parameters related to Video Converter Engine from the main header into a new header for maintainability. - Declare and define new boxed type GstVideoBlits which will hold an array of GstVideoBlit objects. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Rename GstVideoConv prefix to full name GstVideoConverter - Rename the unrecognizable VCE abbreviation to VIDEO_CONVERTER - Renaming is done in order to reduce possible confusion. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
New GIR boxed type for holding an array of GstVideoBlit objects. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Container for holding ML based GstBuffer along with possible ML info for exchanging them with applications and especially when trying to access a ML GstBuffer in Python for WRITE. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Initial support for processing input video blits and output ML frame externally in application side via a "process" signal. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Add support for CHW/HWC and NDCHW tensor layouts - Add support for unknown tensor layouts with external processing. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: NumPy array that wraps tensor memoryview expects the size of
that object to be exactly equal to the size calculated from
the tensor dimensions during reshape.
Fix: Return only that part of the mapped info which contains actual
data skipping the padding at the end.
Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue 1: When attach-frame is enabled and on failure to create JSON
string from meta, we still execute the code part which does
base64 encoding of the buffer.
Fix 1: Move the attach-frame related code to the video buffer handler.
Issue 2: PoseEstimation confidence was present in text buffer path
but absent in video buffer path and same was true for
Keypoint confidence but in reverse.
Fix 2: Fix inconsistency.
Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
- Process person ROI and invoke the AFR API to obtain smooth ROI coordinates. - Fall back to the full FOV when no person ROI is available. Signed-off-by: Jasjot Singh <jasjsing@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Issue: Caps negotiation fails with not-negotiated when the src
pad template's tensor type has a single entry (e.g. { FLOAT32 }),
since the resulting caps are then fully fixed and GstBaseTransform
skips querying the downstream peer before fixation — dropping a
downstream-fixed dimensions and causing mlaconverter to fall back
to its own computed shape.
Fix: In fixate_caps, when dimensions/type isn't already fixed,
query the src pad's peer caps directly and use its fixed value
before falling back to the audio converter-computed one, so
downstream constraints aren't lost regardless of tensor type
list size.
Signed-off-by: Shradha Somani <shrasoma@qti.qualcomm.com>
Signed-off-by: Girish K <girik@qti.qualcomm.com>
Extract the GI overrides from gst-plugin-base into a new gst-python module, gated by ENABLE_GST_PYTHON, so the Python bindings can be built and enabled independently of the base plugin. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
Rename the type and its API (gst_ml_sample_* -> gst_ml_bundle_*) to better reflect that it bundles a buffer with its ML info, and update the sole external user in mlvconverter. Signed-off-by: Petar G. Georgiev <c_petarg@qti.qualcomm.com> Signed-off-by: Girish K <girik@qti.qualcomm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Here are the changes: