...
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Contains Key |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Netflix -> DPI: hasLicense(session_id, key_id)
DPI -> DPI: Lookup MediaKeys object for session_id
DPI -> rialtoClient: containsKey(media_keys_handle, session_id, key_id)
rialtoClient -> rialtoServer: containsKey(media_keys_handle, session_id, key_id)
rialtoServer -> Ocdm: opencdm_session_has_key_id(session, key_id)
Ocdm --> rialtoServer: result
rialtoServer --> rialtoClient: result
rialtoClient --> DPI: result
DPI --> Netflix: result
@enduml |
Remove
...
/OCDM
Note that Remove is not required by Cobalt so we do not yet need to implement this API.
...
| PlantUML Macro |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Client
participant ocdmProxy
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Client -> ocdmProxy: opencdm_session_remove(session_id)
ocdmProxy -> ocdmProxy: Lookup MediaKeys object for session_id
ocdmProxy -> rialtoClient: removeKeySession(media_keys_handle, session_id)
rialtoClient -> rialtoServer: removeKeySession(media_keys_handle, session_id)
rialtoServer -> Ocdm: opencdm_session_remove(session_id)
Ocdm --> rialtoServer: status
rialtoServer --> rialtoClient: status
rialtoClient --> ocdmProxy: status
ocdmProxy --> Client: status
@enduml |
Load
...
/OCDM
Note that Load is not required by Cobalt so we do not yet need to implement this API.
...
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Close - Netflix/native Rialto |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Netflix -> DPI: ~IDrmSession()
DPI -> DPI: Lookup MediaKeys object for session_id
DPI -> rialtoClient: closeKeySession(media_keys_handle, session_id)
rialtoClient -> rialtoServer: closeKeySession(media_keys_handle, session_id)
note over rialtoServer, Ocdm: Same sequence as closeKeySession above
rialtoServer --> rialtoClient: status
rialtoClient --> DPI: status
DPI --> Netflix:
@enduml |
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Set DRM Header |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Application
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Application -> rialtoClient: setDrmHeader(media_keys_handle, session_id, drmHeader)
rialtoClient -> rialtoServer: setDrmHeader(media_keys_handle, session_id, drmHeader)
rialtoServer -> Ocdm: opencdm_session_set_drm_header(session_handle, drmHeader)
Ocdm --> rialtoServer: status
rialtoServer --> rialtoClient: status
rialtoClient --> Application : status
@enduml |
Get Last DRM Error
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Get Last DRM Error |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Application
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Application -> rialtoClient: getLastDrmError(media_keys_handle, session_id)
rialtoClient -> rialtoServer: getLastDrmError(media_keys_handle, session_id, drmHeader)
rialtoServer -> Ocdm: opencdm_session_system_error(session_handle)
Ocdm --> rialtoServer: status, errorCode
rialtoServer --> rialtoClient: status, errorCode
rialtoClient --> Application : status, errorCode
@enduml |
Get CDM Key Session Id
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Get CDM Key Session Id |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Application
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Application -> rialtoClient: getCdmKeySessionId(media_keys_handle, session_id)
rialtoClient -> rialtoServer: getCdmKeySessionId(media_keys_handle, session_id)
rialtoServer -> Ocdm: opencdm_session_id(session_handle)
Ocdm --> rialtoServer: status, cdmSessionId
rialtoServer --> rialtoClient: status, cdmSessionId
rialtoClient --> Application : status, cdmSessionId
@enduml
|
Release/OCDM
| PlantUML Macro |
|---|
| format | SVG |
|---|
| title | Release/OCDM |
|---|
|
@startuml
autonumber
box "Container" #LightGreen
participant Client
participant ocdmProxy
participant rialtoClient
end box
box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box
Client -> ocdmProxy: opencdm_destruct_session(session_id)
ocdmProxy -> ocdmProxy: Lookup MediaKeys object for session_id
ocdmProxy -> rialtoClient: releaseKeySession(media_keys_handle, session_id)
rialtoClient -> rialtoServer: releaseKeySession(media_keys_handle, session_id)
rialtoServer -> Ocdm: opencdm_destruct_session(session_id)
Ocdm --> rialtoServer: status
rialtoServer --> rialtoClient: status
rialtoClient --> ocdmProxy: status
ocdmProxy --> Client: status
@enduml |