# GStD framework
GStreamer daemon (GStD) controls the audio-video streaming using an inter-process communication protocol (IPC).
Note
This section isn't applicable to the QLI 2.0 RC2 release.
- It’s an enhancement to the [`\[gst-launch\]`](https://gstreamer.freedesktop.org/documentation/tools/gst-launch.html?gi-language=c) tool.
- It allows you to create a pipeline, and control the settings such as play and pause when the pipeline is active.
GStD deploys in two parts:
- **Daemon** starts the process in the background.
- **Control application**, which can be written in any language, can run on the same processor or a separate machine.
## Known issue
GStD is currently not supported on Dragonwing IQ-9075 and Dragonwing IQ-8275.
## GStD project
The GStD project includes the core, the GstdClient, and IPC interfaces.
:class: longtable table-wrap
:widths: 30 70
:header-rows: 1
| GStD design components | Description |
| --- | --- |
| Core | Holds the current state of the GStreamer daemon pipelines along with their respective states, elements in each pipeline, and properties of each element. |
| IPC |
Allows client applications to change the GStD core state using an IPC mechanism such as TCP, HTTP, DBus, sockets.
Allows the custom applications to change the state of the GStD core. For example, IPC is used to do the following:
|
| Custom application design | Description |
| --- | --- |
| View |
Provides visual feedback of the GStD core state.
Represents a graphical user interface, a web page, a command-line application.
Allows you to see the view that’s updated by the model.
|
| Client logic |
Provides the custom functionality of the application.
Allows you to use IPC to change the GStD core or model, and receive feedback through the GUI/view.
|
A GStreamer client (GstdClient) is distributed with the project. It’s a command-line based application that communicates with GStD through TCP.
- GstdClient allows you to create and start pipelines.
- Unlike `gst-launch`, GstdClient allows you to have several active pipelines with the ability to control the pipeline and receive feedback after the pipeline has been created.
For more information about GStD, see [https://developer.ridgerun.com/wiki/index.php/GStreamer_Daemon](https://developer.ridgerun.com/wiki/index.php/GStreamer_Daemon).
## Run GStD
1. Start GStD:
gstd
# This will start the process in the background. Using 'gstd &' is not required becauses gstd daemonizes itself by default.
# To run gstd in foreground
gstd -e
# To view a list of all supported options,
gstd --help-all
Copy to clipboard
2. Start GstdClient:
gst-client
# gstd prompt will appear like,
# gstd>
# In the prompt, we can interact with the server creating/playing pipelines, etc.
# To list all the possible commands
gstd> help
# Alternatively, instead of opening gstd prompt, can give the command as argument to gst-client
gst-client list_pipelines
Copy to clipboard
- [Run local use cases](https://docs.qualcomm.com/doc/80-80021-50/topic/local-use-cases.html)
Control the GStD framework using a control application that's running on same processor.
- [Run TCP use cases](https://docs.qualcomm.com/doc/80-80021-50/topic/tcp-use-cases.html)
Control the GStD framework using a control application that's remotely interfacing through TCP.
- [Run HTTP use cases](https://docs.qualcomm.com/doc/80-80021-50/topic/run-http-use-cases.html)
Control the GStD framework using a control application that's remotely interfacing through HTTP.
- [Enable message support through MQTT](https://docs.qualcomm.com/doc/80-80021-50/topic/mqtt-configuration.html)
Message Queuing Telemetry Transport (MQTT) is a lightweight publish-subscribe protocol for communication between devices. Qualcomm IM SDK supports the MQTT protocol to send messages to a host device.
Last Published: Mar 26, 2026
[Previous Topic
GSt debug](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/imsdk_debug_gst.md)