So we had some discussions of the stream states, so I thought it is a good idea to document the state transitions, so add it documentation Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx> --- .../sound/designs/compress-offload.rst | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/Documentation/sound/designs/compress-offload.rst b/Documentation/sound/designs/compress-offload.rst index ad4bfbdacc83..6f86db82298b 100644 --- a/Documentation/sound/designs/compress-offload.rst +++ b/Documentation/sound/designs/compress-offload.rst @@ -151,6 +151,58 @@ Modifications include: - Addition of encoding options when required (derived from OpenMAX IL) - Addition of rateControlSupported (missing in OpenMAX AL) +State Machine +============= + +The compressed audio stream state machine is described below :: + + +----------+ + | | + | OPEN | + | | + +----------+ + | + | + | compr_set_params() + | + v + compr_free() +----------+ + +-------------------------------------| | + | | SETUP | + | +------------------------>| |<---------------------------------+ + | | compr_drain_notify() +----------+ | + | | | | + | | | | + | | | compr_write() | + | | | | + | | v | + | | +----------+ | + | | | | | + | | | PREPARE | | + | | | | | + | | +----------+ | + | | | | + | | | | + | | | compr_start() | + | | | | + | | v | + | +----------+ +----------+ compr_pause() +----------+ | + | | | compr_drain() | |---------------->| | | + | | DRAIN |<-------------------| RUNNING | | PAUSE | | + | | | | |<----------------| | | + | +----------+ +----------+ compr_resume() +----------+ | + | | | | | + | | | | | + | | | | | + | | | | compr_stop() | + | | | +------------------------------------+ + | | +----------+ | + | | | | | + +-----------+------>| |<-------+ + compr_free() | FREE | compr_free() + | | + +----------+ + Gapless Playback ================ -- 2.26.2