Versions Compared

Key

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

...

PlantUML Render Macro
formatSVG
titleQOS

@startuml


autonumber

box "Container" #LightGreen
participant Cobalt
participant Starboard
participant GStreamer_client
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant GStreamer_server
end box


== During pipeline creation ==

rialtoServer      ->  GStreamer_server: Subscribe for QOS event


== During playback ==

opt Frames dropped or element changed processing strategy

note across

This event is generate whenever GStreamer generates a QoS event which is currently for these reasons:

 - The element dropped a buffer because of QoS reasons.

 - An element changed its processing strategy because of QoS reasons. This could include a decoder that

   decided to drop every B frame to increase its processing speed or an effect element switching to a lower

   quality algorithm.

end note


GStreamer_server  -/  rialtoServer:     GstBusMessage(qos_event)
rialtoServer      ->  rialtoServer:     Extract required data from event
rialtoServer      -/  rialtoClient:     notifyQos(pipeline_session, source_id, qos_info)
rialtoClient      -/  GStreamer_client: notifyQos(pipeline_session, source_id, qos_info)
GStreamer_client  ->  GStreamer_client: Create GST_EVENT_QOS message from qos_info
GStreamer_client  -/  Starboard:        GST_MESSAGE_QOS(qos_event)

note right
Only number of processed & dropped frames/
samples is sent by Rialto so the QOS event
sent by GStreamer_client will have less
valid properties set than the original server
side event.
end note

note over Cobalt, Starboard
QOS events are not propogated up to
Cobalt but can be queried anytime
by calling SbPlayerInfo2()
end note

end

@enduml

Get supported properties

This is not something that a user of rialto-gstreamer needs to be concerned about (it is done automatically). This API is to query if a specified set of properties are supported on the RialtoServer. This enables RialtoGstreamer to determine the set of properties to present, and support, for the client. This will happen upon creation of a pipeline (a sink is created).

PlantUML Macro
formatSVG
titleGet Supported Properties
@startuml

autonumber

box "Container" #LightGreen
participant GStreamer_client
participant rialtoGstreamer
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant GStreamer_server
end box


GStreamer_client  ->  rialtoGstreamer:  a sink is requested
rialtoGstreamer   ->  rialtoClient:     getSupportedProperties(pipeline_session, media_type, property_names)
rialtoClient      ->  rialtoServer:     getSupportedProperties(pipeline_session, media_type, property_names)
rialtoServer      ->  GStreamer_server: g_object_class_find_property(called once for each property name)
GStreamer_server  ->  rialtoServer:     property (or null if not supported) for each property name
rialtoServer      ->  rialtoClient:     list of supported properties
rialtoClient      ->  rialtoGstreamer:  list of supported properties
rialtoGstreamer   ->  GStreamer_client: a sink is created that supports the properties

@enduml


Volume

API for setting and getting the volume for a pipeline session.

...