...
...
| PlantUML Macro | ||||
|---|---|---|---|---|
| ||||
@startuml autonumber box "Platform" #LightBlue participant rialtoServer participant GStreamer_server end box noteloop across Gstreamerdata appavailable sourcein usesweb 2audio signals, need-data and enough-data, to notify its client whether it needs more data. Rialto server should only push data when the appsrc indicates that it is in the need-data state. end note loop While appsrc needs data && data available in web audio shm region shm region rialtoServer -> GStreamer_server: gst_app_src_get_current_level_bytes(src) GStreamer_server --> rialtoServer: bytes_in_gst_queue rialtoServer -> rialtoServer: gst_buffer_new_allocate(size) GStreamer_server --> CreaterialtoServer: gst_buffer note right: size of gst_buffer containing next seteither free_bytes in src or size of samples fromin shm note right: This will need to perform endianness conversion if necessary rialtoServer -> GStreamer_server: gst_app_src_push_buffer(src, gst_buffer) rialtoServer -> rialtoServer: Update internal shm variables for consumed data opt Appsrc data exhausted from shm && internal EOS flag set rialtoServer -> GStreamer_server: notify EOS end end @enduml |
...