...
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml
autonumber
box "Platform" #LightGreen
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant GStreamer_server
participant Ocdm
end box
Gstreamer_server -> rialtoServer: decrypt(buffer)
rialtoServer -> Â GStreamer_server: gst_buffer_get_protection_meta(buffer)
opt Protection Meta exists (Frame encrypted)
rialtoServer -> rialtoServer: Extract frame's metadata
opt media_keys.key_system == "com.netflix.playready"
rialtoServer -> Ocdm: opencdm_select_key_id(ocdm_session, kid)
end
rialtoServer -> Ocdm: opencdm_gstreamer_session_decrypt(ocdm_session, gst_buffer, subsample_info, iv, key, init_with_last_15)
end
rialtoServer -> GStreamer_server: gst_app_src_push_buffer(src, gst_buffer)
rialtoServer -> rialtoServer: 'Remove' frame from shm
opt First video frame pushed at start of playback / after seek
note across: Not currently implemented
rialtoServer --/ rialtoClient: notifyFrameReady(frame_timestamp)
end
opt Appsrc data exhausted from shm
opt (status == EOS) for this appsrc
rialtoServer -> GStreamer_server: notify EOS
else Not EOS
rialtoServer --/ rialtoClient: notifyNeedMediaData(...)
end
end
end
@enduml |
...