diff options
author | Ritu Sharma <ritushar@codeaurora.org> | 2021-08-18 18:41:14 +0530 |
---|---|---|
committer | Ritu Sharma <ritushar@codeaurora.org> | 2021-08-25 10:45:45 +0530 |
commit | 59ab62c9cd847563a68ef88b81eec9014413f23a (patch) | |
tree | 76a3f1ee81a835806626a5279759fd782df0fc9c /compress.c | |
parent | 7af6952af79e3ca5a58878bd0548a653d68caac3 (diff) |
tinycompress: Add support for compress_set_codec_params API
Add support for compress_set_codec_params API which is used
to send codec parameters from clients directly.
CRs-Fixed: 2926417
Change-Id: I83f52378e288f15bccfc8a7798d33943a02d5e52
Diffstat (limited to 'compress.c')
-rw-r--r-- | compress.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -622,6 +622,23 @@ int compress_wait(struct compress *compress, int timeout_ms) return oops(compress, EIO, "poll signalled unhandled event"); } +int compress_set_codec_params(struct compress *compress, + struct snd_codec *codec) { + struct snd_compr_params params; + + if (!is_compress_running(compress)) + return oops(compress, ENODEV, "device not ready"); + + params.buffer.fragment_size = compress->config->fragment_size; + params.buffer.fragments = compress->config->fragments; + memcpy(¶ms.codec, codec, sizeof(params.codec)); + + if (compress->ops->ioctl(compress->data, SNDRV_COMPRESS_SET_PARAMS, ¶ms)) + return oops(compress, errno, "cannot set device"); + + return 0; +} + #ifdef ENABLE_EXTENDED_COMPRESS_FORMAT int compress_get_metadata(struct compress *compress, struct snd_compr_metadata *mdata) { |