...
| PlantUML Render Macro |
|---|
|
@startuml autonumber box "Container" #LightGreen participant GStreamer_client participant rialtoClient end box box "Platform" #LightBlue participant rialtoServer participant GStreamer_server end box GStreamer_client -> rialtoClient: getStats(pipeline_session, source_id) rialtoClient -> rialtoServer: getStats(pipeline_session, source_id) rialtoServer -> GStreamer_server: g_object_get(pipeline, "stats", &stats, nullptr) GStreamer_server --> rialtoServer: GstStructure *stats; containing rendered_frames, dropped_frames rialtoServer --> rialtoClient: rendered_frames, dropped_frames rialtoClient --> GStreamer_client: stats @enduml
|
| Code Block |
|---|
| language | cpp |
|---|
| title | Example rialto-gstreamer client code |
|---|
|
GstStructure *stats{nullptr};
g_object_get(sink, "stats", &stats, nullptr);
if (stats)
{
guint64 renderedVideoFrames;
guint64 droppedVideoFrames;
if (gst_structure_get_uint64(stats, "rendered", &renderedVideoFrames) &&
gst_structure_get_uint64(stats, "dropped", &droppedVideoFrames))
{
std::cout << "renderedVideoFrames " << renderedVideoFrames << std::endl;
std::cout << "droppedVideoFrames " << droppedVideoFrames << std::endl;
}
gst_structure_free(stats);
} |
Immediate Output
API for setting and getting the "immediate-output" property (used for low-latency output)
| PlantUML Render Macro |
|---|
| format | SVG |
|---|
| title | getImmediateOutput |
|---|
|
@startuml autonumber box "Container" #LightGreen participant GStreamer_client participant rialtoClient end box box "Platform" #LightBlue participant rialtoServer participant GStreamer_server end box GStreamer_client -> rialtoClient: getImmediateOutput(pipeline_session, source_id) rialtoClient -> rialtoServer: getImmediateOutput(pipeline_session, source_id) rialtoServer -> GStreamer_server: g_object_get(pipeline, "immediate-output", &immediateOutput, nullptr) GStreamer_server --> rialtoServer: immediateOutput rialtoServer --> rialtoClient: immediateOutput rialtoClient --> GStreamer_client: immediateOutput @enduml
|
| Code Block |
|---|
| language | cpp |
|---|
| title | Example rialto-gstreamer client code |
|---|
|
gboolean immediateOutput;
# NOTE: The "immediate-output" property will only be available if it's supported by the hardware
g_object_get(videoSink, "immediate-output", &immediateOutput, nullptr);
if (immediateOutput) ... |
| PlantUML Render Macro |
|---|
| format | SVG |
|---|
| title | setImmediateOutput |
|---|
|
@startuml autonumber box "Container" #LightGreen participant GStreamer_client participant rialtoClient end box box "Platform" #LightBlue participant rialtoServer participant GStreamer_server end box GStreamer_client -> rialtoClient: setImmediateOutput(pipeline_session, source_id, immediateOutput) rialtoClient -> rialtoServer: setImmediateOutput(pipeline_session, source_id, immediateOutput) rialtoServer -> GStreamer_server: g_object_set(pipeline, "immediate-output", immediateOutput, nullptr) GStreamer_server --> rialtoServer: status rialtoServer --> rialtoClient: status rialtoClient --> GStreamer_client: nothing returned @enduml
|
| Code Block |
|---|
| language | cpp |
|---|
| title | Example rialto-gstreamer client code |
|---|
|
gboolean immediateOutput{TRUE}; // The desired setting
# NOTE: The "immediate-output" property will only be available if it's supported by the hardware
g_object_set(videoSink, "immediate-output", immediateOutput, nullptr); |
Mute
API for setting and getting the mute setting for a pipeline session.
...