...
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber box "Container" #LightGreen participant Netflix participant DPI participant rialtoClient end box box "Platform" #LightBlue participant rialtoServer end box Netflix -> DPI: createDrmSession(media_keys, content_id, license_type, drm_header) DPI -> DPI: Create DPI session object DPI -> DPI: Store content_id, & license_type &\ndrm_headernin in session object DPI --> Netflix: session_handle Netflix -> DPI: getChallengeData(is_LDLgenerateChallenge(drmHeader, licenseChallenge) DPI -> rialtoClient: createKeySession(media_keys_handle, session_type=TEMPORARY, is_LDL) rialtoClient -> rialtoServer: createKeySession(media_keys_handle, session_type, is_LDL) note over rialtoServer: As createKeySession() in Cobalt diagram above rialtoServer --> rialtoClient: status, key_session_id rialtoClient --> DPI: status, key_session_id DPI -> rialtoClient: setDrmHeader(media_keys_handle, key_session_id, drmHeader) rialtoClient -> rialtoServer: setDrmHeader(media_keys_handle, key_session_id, drmHeader) rialtoServer --> rialtoClient: status rialtoClient --> DPI: status DPI -> rialtoClient: generateRequest(key_session_id, init_data_type=DRMHEADER, init_data=drm_header) rialtoClient -> rialtoServer: generateRequest(key_session_id, init_data_type, init_data) note over rialtoServer:As generateRequest() in Cobalt diagram above,\nsee note that opendm_session_get_challenge_data() rialtoServer --> rialtoClient: status rialtoClient --> DPI: status note over DPI: getChallengeData() must block until onLicenseRequest() callback received rialtoServer -/ rialtoClient: onLicenseRequest(key_session_id, challenge, url) rialtoClient -/ DPI: onLicenseRequest(key_session_id, challenge, url) DPI --> Netflix: status, challenge @enduml |
...