@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::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: GST_MESSAGE_WARNING(src, GST_STREAM_ERROR_DECRYPT)
rialtoServer -/ rialtoClient: notifyPlaybackError(MediaSourceType, PlaybackError::DECRYPTION)
rialtoClient -/ rialtoGstreamer: notifyPlaybackError(MediaSourceType, PlaybackError::DECRYPTION)
note over rialtoGstreamer
Posting an error message on the sink make the\n
sink unable to continue playing back content.
end note
rialtoGstreamer -/ Application: GST_MESSAGE_ERROR(sink, GST_STREAM_ERROR_DECRYPT)
note over Application
Pipeline moves to error state an cannot recover.
end note
@enduml |