You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Overview

WebAudio provides a mechanism for playing PCM audio clips alongside, and mixed with, any ongoing A/V playback sessions by the client.

Changes required:

  • Introduce new IWebAudioPlayer interface to allow the client to control PCM injection. This will be implemented in both Rialto Client & Server.
  • Data will be passed in existing shm buffer used for MSE
    • The resources parameter provided to Rialto Application Session Server when it is spawned will be extended to include a max_web_audio_playbacks parameter to determine how many Web Audio playbacks can be performed by this application
    • The shared memory buffer will have a suitably sized Web Audio region allocated if max_web_audio_playbacks > 0


Web Audio Playback States

This diagram shows the states of the Web Audio object and how they are changed. These changes are all notified via the Web Audio Client interface.



The above state machine UML is not rendering correctly so this is a snapshot from Sky Confluence:

Shared Memory Region

If max_web_audio_playbacks>0 then max_web_audio_playbacks regions will be allocated in the shared memory buffer for web audio data. The module managing Web Audio should fetch that region data during initialisation and then manage the memory as a circular buffer into which audio frames can be written and from which they are read. The following diagrams show typical snapshots of how the buffer might look during Web Audio streaming and how the next WebAudioShmInfo parameter returned by getBufferAvailable() would look in such a case.


Web Audio Shm Region


Sequence Diagrams

Initialisation & termination


Client Sends Audio Frames


Rialto Internal Push Data Algorithm


Play & Pause


Get Buffer Delay

  • No labels