@startuml
autonumber
box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Netflix -> DPI: teardown()
DPI -> rialtoClient: ~IMediaKeys()
rialtoClient -> rialtoServer: destroyMediaKeys(media_keys_handle)
rialtoServer -> Ocdm: opencdm_destruct_system(handle)
Ocdm --> rialtoServer: status
rialtoServer -> rialtoServer: Remove stored MediaKeys handle
rialtoServer --> rialtoClient: status
rialtoClient --> DPI: status
DPI --> Netflix: status
note over Netflix: To prevent leaks ~IDrmSystem() should call\n~IMediaKeys() if teardown() wasn't called
@enduml |