## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global prj_name gst-plugins-imsdk %global gst_majorminor 1.0 Name: gstreamer1-plugins-qcom Version: 1.0.2 Release: %autorelease Summary: Qualcomm hardware accelerated GStreamer plugins License: BSD-3-Clause URL: https://imsdkdocs.qualcomm.com Source: https://github.com/qualcomm/gst-plugins-imsdk/archive/%{version}/%{prj_name}-%{version}.tar.gz # UBWC video formats build-time option # https://github.com/qualcomm/gst-plugins-imsdk/pull/34 Patch0: 34.patch ExclusiveArch: %{arm64} BuildRequires: cmake >= 3.1 BuildRequires: gcc-c++ BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-allocators-1.0) BuildRequires: pkgconfig(gstreamer-video-1.0) BuildRequires: pkgconfig(json-glib-1.0) # ML-plugins BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(opencv) >= 4.0 BuildRequires: pkgconfig(eigen3) # Software-plugins BuildRequires: pkgconfig(gstreamer-rtsp-server-1.0) %description Qualcomm Intelligent Multimedia SDK (QIM SDK) is a comprehensive hardware accelerated multimedia and AI framework built on GStreamer. It is designed for developers, solution integrators, and OEMs building intelligent vision, audio, and AI applications across IoT segments including smart cameras, robotics, home appliances, drones, and AI inference appliances. Each plugins in the SDK maps directly to a dedicated hardware accelerator including video encode/decode, camera ISP, GPU, display, and AI/ML accelerators giving developers a clean, unified API surface to build sophisticated multimedia and AI pipelines with minimal integration overhead. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for applications that use %{name}. %package redissink Summary: Qualcomm gstreamer sink plugin for redis BuildRequires: pkgconfig(hiredis) %description redissink The plugin provides the qtiredissink element for publishing GStreamer buffers and metadata to Redis database. Enables real-time data streaming to Redis for caching, pub/sub messaging or integration with Redis-based applications. %package metamux Summary: GStreamer plugin for multiplexing video/audio streams with metadata %description metamux The plugin provides the qtimetamux element for muxing video or audio streams with metadata streams. Enables synchronization of media content with associated metadata such as detection results, classifications, or custom annotations in ML pipelines. %package metatransform Summary: GStreamer plugin for metadata processing and transformation %description metatransform The plugin provides the qtimetatransform element for processing, filtering, and converting metadata attached to buffers. Supports transformation of detection boxes, classification results, and other metadata formats between different coordinate systems and representations. %package mlaconverter Summary: GStreamer plugin for audio-to-tensor conversion for ML inference %description mlaconverter The plugin provides the qtimlaconverter element for converting audio streams into tensor format suitable for machine learning model input. Handles audio preprocessing including resampling, normalization, and feature extraction. %package mldemux Summary: GStreamer plugin for demultiplexing ML inference results %description mldemux The plugin provides the qtimldemux element for demultiplexing and routing machine learning inference results. Separates batched ML outputs into individual streams for parallel post-processing or different downstream consumers. %package mlmetaextractor Summary: GStreamer plugin for extracting metadata from buffers %description mlmetaextractor The plugin provides the qtimlmetaextractor element for extracting metadata attached to buffers and converting it to text or structured format. Useful for debugging, logging or exporting ML inference results and annotations. %package mlmetaparser Summary: GStreamer plugin for parsing and attaching metadata to buffers %description mlmetaparser The plugin provides the qtimlmetaparser element for parsing text-based metadata and attaching it to GStreamer buffers. Enables injection of external annotations, ground truth data, or pre-computed results into media pipelines. %package mlpostprocess Summary: GStreamer plugin for ML inference post-processing %description mlpostprocess The plugin provides the qtimlpostprocess element for post-processing machine learning inference results. Supports multiple model types including object detection (YOLO, SSD, MobileNet), classification, segmentation, and pose estimation. Converts raw model outputs into structured metadata with bounding boxes, labels and confidence scores. %package mlvconverter Summary: GStreamer plugin for video-to-tensor conversion for ML inference %description mlvconverter The plugin provides the qtimlvconverter element for converting video frames into tensor format suitable for machine learning model input. Supports various preprocessing operations including scaling, cropping, color space conversion, normalization, and ROI extraction for efficient batch processing. %package objtracker Summary: GStreamer plugin for multi-object tracking %description objtracker The plugin provides the qtiobjtracker element for tracking detected objects across video frames. Assigns persistent IDs to objects and maintains tracking through occlusions and frame-to-frame variations using algorithms like IOU, KCF or deep learning-based trackers. %package restricted-zone Summary: GStreamer plugin for restricted zone detection and monitoring %description restricted-zone The plugin provides the qtirestrictedzone element for detecting when objects enter or exit predefined restricted zones in video frames. Useful for security applications, safety monitoring, and perimeter intrusion detection with configurable zone geometries and alert generation. %package msgbroker Summary: GStreamer plugin for message broker integration BuildRequires: pkgconfig(rdkafka) BuildRequires: pkgconfig(libmosquitto) %description msgbroker The plugin provides the qtimsgbroker element for publishing GStreamer pipeline events and metadata to message brokers. Supports MQTT, Apache Kafka Pub/Sub for integration with IoT platforms, analytics systems, and distributed applications. %package vcomposer Summary: GStreamer plugin for video composition and layout %description vcomposer The plugin provides the qtivcomposer element for compositing multiple video streams into a single output with configurable layouts. Supports picture-in-picture, split screen, grid layouts, and custom positioning with alpha blending and scaling for multi-view applications and video walls. %package voverlay Summary: GStreamer plugin for video overlay and graphics rendering %description voverlay The plugin provides the qtivoverlay element for overlaying graphics, text, bounding boxes, and annotations on video frames. Supports Cairo-based rendering with anti-aliasing, transparency, and dynamic content updates for visualization of ML inference results, OSD (on-screen display) and UI elements. %package vsplit Summary: GStreamer plugin for video stream splitting and ROI extraction %description vsplit The plugin provides the qtivsplit element for splitting video streams and extracting regions of interest (ROIs). Supports multiple output pads with independent cropping, scaling, and format conversion. Useful for multi resolution encoding, ROI-based processing, and parallel ML inference on different image regions. %package vtransform Summary: GStreamer plugin for video transformation and format conversion %description vtransform The plugin provides the qtivtransform element for video format conversion, scaling, cropping, and color space transformation. Leverages Qualcomm hardware accelerators for efficient video processing with support for various formats including NV12, NV21, RGBA, and compressed formats. %package batch Summary: GStreamer plugin for batching multiple stream buffers %description batch The plugin provides the qtibatch element for batching buffers from multiple input streams into a single output buffer. Useful for efficient processing of multiple video or data streams simultaneously, reducing overhead in multi-stream scenarios. %package rtspbin Summary: GStreamer plugin for rtsp streaming %description rtspbin The plugin provides the qtirtspbin element, a convenience bin for RTSP (Real-Time Streaming Protocol) server functionality. Simplifies creation of RTSP streaming pipelines with built-in session management, authentication, and multi-client support for IP camera and streaming applications. %package socket Summary: GStreamer plugin for unix domain socket communication %description socket The plugin provides the qtisocketsrc and qtisocketsink elements for transferring GStreamer buffers between processes using Unix domain sockets. Enables zero-copy inter-process communication with support for video frames, tensors, metadata, and file descriptor passing for efficient pipeline distribution. %package uridecodebin Summary: GStreamer plugin for uri decoding %description uridecodebin The plugin provides the qtiuridecodebin for URI decoding capabilities by creating and managing decoding pipelines for multimedia streams obtained from URI sources. %package videotemplate Summary: GStreamer plugin for custom video processing %description videotemplate The plugin provides the qtivideotemplate demonstrating best practices for creating custom video processing elements. Serves as a starting point for developers building proprietary or specialized video processing plugins for Qualcomm platforms. %prep %autosetup -p1 -n %{prj_name}-%{version} %build %cmake \ -DENABLE_GST_PLUGIN_BASE=ON \ -DENABLE_GST_PLUGIN_CAMERA_BASE=ON \ -DENABLE_GST_EXT_SOFTWARE_PLUGINS=ON \ -DENABLE_GST_ML_PLUGINS=ON \ -DENABLE_GST_MESSAGING_PLUGINS=ON \ -DENABLE_GST_VIDEOPROC_PLUGINS=ON \ -DENABLE_GST_SOFTWARE_PLUGINS=ON \ -DENABLE_GST_UBWC_VIDEO_FORMATS=OFF %cmake_build %install %cmake_install %files %license LICENSE.txt %doc README.md %dir %{_libdir}/imsdk %{_libdir}/libgstqtiallocatorsbase.so.* %{_libdir}/libgstqticvbase.so.* %{_libdir}/libgstqtigfxbase.so.* %{_libdir}/libgstqtimemorybase.so.* %{_libdir}/libgstqtimlbase.so.* %{_libdir}/libgstqtiutilsbase.so.* %{_libdir}/libgstqtivideobase.so.* %files devel %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/allocators %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/cv %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/gfx %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/memory %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/ml %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/utils %dir %{_includedir}/gstreamer-%{gst_majorminor}/gst/video %{_includedir}/gstreamer-%{gst_majorminor}/gst/allocators/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/cv/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/gfx/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/memory/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/ml/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/utils/*.h %{_includedir}/gstreamer-%{gst_majorminor}/gst/video/*.h %{_libdir}/libgstqtiallocatorsbase.so %{_libdir}/libgstqticvbase.so %{_libdir}/libgstqtigfxbase.so %{_libdir}/libgstqtimemorybase.so %{_libdir}/libgstqtimlbase.so %{_libdir}/libgstqtiutilsbase.so %{_libdir}/libgstqtivideobase.so %{_libdir}/libgstqtikafkaadaptor.so %{_libdir}/libgstqtimqttadaptor.so %{_libdir}/libgstqtimsgadaptor.so %{_libdir}/pkgconfig/gstreamer-qcom-gfx-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-allocators-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-cv-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-memory-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-ml-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-utils-1.0.pc %{_libdir}/pkgconfig/gstreamer-qcom-oss-video-1.0.pc %files redissink %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtiredissink.so %files metamux %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimetamux.so %files metatransform %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimetatransform.so %dir %{_libdir}/imsdk/qtimetatransform %{_libdir}/imsdk/qtimetatransform/modules/libmeta-transform-roi-label-moving-average.so %{_libdir}/imsdk/qtimetatransform/modules/libmeta-transform-roi-palmd.so %files mlaconverter %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimlaconverter.so %files mldemux %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimldemux.so %files mlmetaextractor %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimlmetaextractor.so %files mlmetaparser %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimlmetaparser.so %dir %{_libdir}/imsdk/qtimlmetaparser %{_libdir}/imsdk/qtimlmetaparser/modules/libml-meta-parser-json.so %files mlpostprocess %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimlpostprocess.so %dir %{_libdir}/imsdk/qtimlpostprocess %{_libdir}/imsdk/qtimlpostprocess/modules/libml-*.so %files mlvconverter %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimlvconverter.so %files objtracker %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtiobjtracker.so %dir %{_libdir}/imsdk/qtiobjtracker %{_libdir}/imsdk/qtiobjtracker/modules/libobjtracker-bytetrack.so %files restricted-zone %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtirestrictedzonedbg.so %files msgbroker %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimsgpub.so %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtimsgsub.so %{_libdir}/libgstqtikafkaadaptor.so.* %{_libdir}/libgstqtimqttadaptor.so.* %{_libdir}/libgstqtimsgadaptor.so.* %files vcomposer %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtivcomposer.so %files voverlay %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtivoverlay.so %files vsplit %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtivsplit.so %files vtransform %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtivtransform.so %files batch %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtibatch.so %files rtspbin %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtirtspbin.so %files socket %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtisocketsink.so %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtisocketsrc.so %files uridecodebin %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtiuridecodebin.so %files videotemplate %license LICENSE.txt %{_libdir}/gstreamer-%{gst_majorminor}/libgstqtivideotemplate.so %dir %{_libdir}/imsdk/qtivideotemplate %{_libdir}/imsdk/qtivideotemplate/modules/libcustom-*.so %changelog ## START: Generated by rpmautospec * Fri Aug 21 2026 John Doe - 1.0.2-1 - Uncommitted changes ## END: Generated by rpmautospec