...
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber box "Container" #LightGreen participant Application participant GStreamer_client participant rialtoClient end box box "Platform" #LightBlue participant rialtoServer participant GStreamer_server end box note over GStreamer_client The Rialto's client should abort any pending needData() requests before calling flush and ignore any needData() requests received before the sourceFlushed event as they will be stale. ** TODO - document this in the API header file ** end note Application -> GStreamer_client: gst_element_send_event(sink, gst_event_new_flush_start()) GStreamer_client --> Application: Application -> GStreamer_client: gst_element_send_event(sink, gst_event_new_flush_stop(resetTime)) GStreamer_client -> rialtoClient: flush(sourceId, resetTime) rialtoClient -> rialtoClient: clear local cache of any active data requests for flushed source rialtoClient -> rialtoServer: flush(sourceId, resetTime) rialtoServer -> rialtoServer: stop sending new need data requests for flushed source rialtoServer -> rialtoServer: clear local cache of any active data requests for flushed source rialtoServer -> rialtoServer: clear buffered samples for flushed source rialtoServer -> GStreamer_server: gst_element_send_event(source, gst_event_new_flush requested source _start()) GStreamer_server --> rialtoServer: rialtoServer -> GStreamer_server: gst_element_send_event(source, gst_event_new_flush_stop(resetTime)) GStreamer_server --> rialtoServer: rialtoServer -> rialtoServer: Erase EOS info rialtoServer --> rialtoClient: rialtoClient --> GStreamer_client: GStreamer_client --> Application: rialtoServer -/ rialtoClient: notifySourceFlushed(sourceId) rialtoClient -/ GStreamer_client: notifySourceFlushed(sourceId) rialtoServer -> rialtoServer: trigger need data for flushed source ref over GStreamer_client, rialtoServer Start requesting samples as for regular playback end ref @enduml |
...