Versions Compared

Key

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

...

PlantUML Macro
formatSVG
titleNon-fatal Errors
@startuml

autonumber

box "Container" #LightGreen
participant Application
participant rialtoGstreamer
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant GStreamer_server 
end box

== Decryption ==
GStreamer_server   ->  rialtoServer:      decrypt(buffer)

rialtoServer	   ->  GStreamer_server:  MediaKeyErrorStatus::  gst_buffer_get_protection_meta(buffer)
 
opt Protection Meta exists (Frame encrypted)
 
rialtoServer    Fail
GStreamer_server   ->  GStreamer_server:  GST_BASE_TRANSFORM_FLOW_DROPPED 

note over GStreamer_server
Frame is dropped but playback is unaffected.
end note 

GStreamer_server   ->  rialtoServer:      Extract frame's metadata

opt media_keys.key_system == "com.netflix.playready"
rialtoServer       ->  Ocdm:    GST_MESSAGE_WARNING(src, GST_STREAM_ERROR_DECRYPT)

rialtoServer       -/  rialtoClient:      notifyPlaybackError(MediaSourceType, PlaybackError::DECRYPTION)
rialtoClient       -/  rialtoGstreamer:   opencdm_select_key_id(ocdm_session, kid)
end


opt Implementation before CBCS support added
rialtoServer   notifyPlaybackError(MediaSourceType, PlaybackError::DECRYPTION)

rialtoGstreamer    ->/  Ocdm Application:                opencdm_gstreamer_session_decrypt_ex(ocdm_session, gst_buffer, subsample_info, iv, key, init_with_last_15, caps)
else Implementation after CBCS support added
rialtoServer       ->  Ocdm:              opencdm_gstreamer_session_decrypt_buffer(ocdm_session, gst_buffer, caps)
end

end
  GST_MESSAGE_ERROR(sink, GST_STREAM_ERROR_DECRYPT)
 
note over Application
Pipeline moves to error state an cannot recover.
end note  

@enduml