Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Render Macro
formatSVG
titlegetStats

@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
languagecpp
titleExample 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
formatSVG
titlegetImmediateOutput

@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
languagecpp
titleExample 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
formatSVG
titlesetImmediateOutput

@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
languagecpp
titleExample 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.

...