Versions Compared

Key

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

...

PlantUML Macro
formatSVG
titleCobalt pushing media frames
@startuml

autonumber

box "Container" #LightGreen
participant Cobalt
participant Starboard
participant GStreamer_client_appsrc
participant GStreamer_client_rialto_sinkdecrypter_element
participant ocdmProxy
end box


Cobalt                        ->  Starboard:                    SbPlayerWriteSample2(player, sample[])
note right: Currently sample array size must be 1
Starboard                     ->  Starboard:                    Create GstBuffer and add media data from sample to it

opt Sample encrypted
Starboard                     ->  GStreamer_client_appsrc:      gst_buffer_add_protection_meta(gst_buffer, decrytion_params)
end


Starboard                     ->  GStreamer_client_appsrc:      gst_app_src_push_buffer(app_src, gst_buffer)
GStreamer_client_appsrc       --> GStreamer_client_rialto_sink: decrypter_element:            data flows through client pipeline
GStreamer_client_rialto_sink  decrypter_element             ->  GStreamer_client_rialto_sink: decrypter_element:            gst_buffer_get_protection_meta(buffer)
GStreamer_client_rialto_sink  decrypter_element             ->  ocdmProxy:                    opencdm_gstreamer_session_decrypt(key_session, buffer, decrytion_params)
ocdmProxy                     ->  ocdmProxy:                    Create gst struct containing encryption data decrytion_params
ocdmProxy                     ->  GStreamer_client_rialto_sink: decrypter_element:            gst_buffer_add_protection_meta(buffer, metadata)
note left
Decryption is deferred until the data is sent to Rialto so
attach the required decryption parameters to the media frame
which are then ready to be passed to Rialto when it requests
more data.
end note

@enduml

...