summaryrefslogtreecommitdiff
path: root/compress_plugin.c
diff options
context:
space:
mode:
authorSairamreddy Bojja <quic_sbojja@quicinc.com>2023-03-13 12:26:57 +0530
committerSairamreddy Bojja <quic_sbojja@quicinc.com>2023-03-13 12:28:25 +0530
commit592347b1b3b9fd1c69877a29cc250c78c4b9b6fc (patch)
tree8ff84f79bb871c15761516f097bf466700255858 /compress_plugin.c
parent08e9750b96a8e51918ff7896bafff606b6d3d3c9 (diff)
tinycompress: do not loop in the compress read
Return the compress read immediately when it is successful. client can recall for the remaining bytes. Also, In case of capture, move the plugin state to prepared when set params is successful. Earlier in case of playback this plug state is moved to prepare only when first write is successful. Change-Id: I9a6a365d78ede8ff04e4d99bcdaca05a71831d6c CRs-Fixed: 3424064
Diffstat (limited to 'compress_plugin.c')
-rw-r--r--compress_plugin.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/compress_plugin.c b/compress_plugin.c
index 0e536cc..22f8f11 100644
--- a/compress_plugin.c
+++ b/compress_plugin.c
@@ -43,6 +43,7 @@
#include <linux/ioctl.h>
#include <sound/asound.h>
#include "tinycompress/compress_plugin.h"
+#include "tinycompress/tinycompress.h"
#include "sound/compress_offload.h"
#include "compress_ops.h"
#include "snd_utils.h"
@@ -96,8 +97,11 @@ static int compress_plug_set_params(struct compress_plug_data *plug_data,
return -EINVAL;
rc = plugin->ops->set_params(plugin, params);
- if (!rc)
+ if (!rc) {
plugin->state = COMPRESS_PLUG_STATE_SETUP;
+ if (plug_data->flags & COMPRESS_OUT)
+ plugin->state = COMPRESS_PLUG_STATE_PREPARED;
+ }
return rc;
}