Versions Compared

Key

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

...

PlantUML Macro
formatSVG
titleFlush
@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

...