diff options
author | Vinod Koul <vkoul@kernel.org> | 2020-06-29 15:47:35 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2020-07-07 11:53:27 +0200 |
commit | 2441bf4dbcb8196d994aa992b1be725a701589f2 (patch) | |
tree | 711ded6626ff7e444486b308c8fe477db4575af5 /Documentation/sound | |
parent | ALSA: hda: fix SND_HDA_GENERIC kconfig & build (diff) | |
download | linux-2441bf4dbcb8196d994aa992b1be725a701589f2.tar.xz linux-2441bf4dbcb8196d994aa992b1be725a701589f2.zip |
ALSA: compress: document the compress audio state machine
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
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/20200629134737.105993-2-vkoul@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'Documentation/sound')
-rw-r--r-- | Documentation/sound/designs/compress-offload.rst | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Documentation/sound/designs/compress-offload.rst b/Documentation/sound/designs/compress-offload.rst index ad4bfbdacc83..ad89af9b31c9 100644 --- a/Documentation/sound/designs/compress-offload.rst +++ b/Documentation/sound/designs/compress-offload.rst @@ -151,6 +151,57 @@ 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_write() +----------+ | + | | ^ | + | | | compr_drain_notify() | + | | | or | + | | | compr_stop() | + | | | | + | | +----------+ | + | | | | | + | | | DRAIN | | + | | | | | + | | +----------+ | + | | ^ | + | | | | + | | | compr_drain() | + | | | | + | v | | + | +----------+ +----------+ | + | | | compr_start() | | compr_stop() | + | | PREPARE |------------------->| RUNNING |--------------------------+ + | | | | | | + | +----------+ +----------+ | + | | | ^ | + | |compr_free() | | | + | | compr_pause() | | compr_resume() | + | | | | | + | v v | | + | +----------+ +----------+ | + | | | | | compr_stop() | + +--->| FREE | | PAUSE |---------------------------+ + | | | | + +----------+ +----------+ + Gapless Playback ================ |