nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
pcm_stream_channel_modifier.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
11#ifndef _PCM_STREAM_CHANNEL_MODIFIER_H_
12#define _PCM_STREAM_CHANNEL_MODIFIER_H_
13
22#include <zephyr/kernel.h>
23#include <audio_defines.h>
24
26#define PSCM_MAX_CARRIER_BIT_DEPTH (32)
27
42int pscm_zero_pad(void const *const input, size_t input_size, enum audio_channel channel,
43 uint8_t pcm_bit_depth, void *output, size_t *output_size);
44
58int pscm_copy_pad(void const *const input, size_t input_size, uint8_t pcm_bit_depth, void *output,
59 size_t *output_size);
60
72int pscm_combine(void const *const input_left, void const *const input_right, size_t input_size,
73 uint8_t pcm_bit_depth, void *output, size_t *output_size);
74
89int pscm_one_channel_split(void const *const input, size_t input_size, enum audio_channel channel,
90 uint8_t pcm_bit_depth, void *output, size_t *output_size);
91
108int pscm_two_channel_split(void const *const input, size_t input_size, uint8_t pcm_bit_depth,
109 void *output_left, void *output_right, size_t *output_size);
110
128int pscm_interleave(void const *const input, size_t input_size, uint8_t channel,
129 uint8_t pcm_bit_depth, void *output, size_t output_size,
130 uint8_t output_channels);
131
148int pscm_deinterleave(void const *const input, size_t input_size, uint8_t input_channels,
149 uint8_t channel, uint8_t pcm_bit_depth, void *output, size_t output_size);
150
155#endif /* _PCM_STREAM_CHANNEL_MODIFIER_H_ */
audio_channel
Audio channel assignment values.
Definition audio_defines.h:25
Globally accessible audio related defines.
int pscm_interleave(void const *const input, size_t input_size, uint8_t channel, uint8_t pcm_bit_depth, void *output, size_t output_size, uint8_t output_channels)
Interleave a channel into a buffer of N channels of PCM.
int pscm_deinterleave(void const *const input, size_t input_size, uint8_t input_channels, uint8_t channel, uint8_t pcm_bit_depth, void *output, size_t output_size)
De-interleave a channel from a buffer of N channels of PCM.
int pscm_copy_pad(void const *const input, size_t input_size, uint8_t pcm_bit_depth, void *output, size_t *output_size)
Adds a copy of every sample from *input and writes it to both channels in *output.
int pscm_two_channel_split(void const *const input, size_t input_size, uint8_t pcm_bit_depth, void *output_left, void *output_right, size_t *output_size)
Splits a stereo stream to two separate mono streams.
int pscm_one_channel_split(void const *const input, size_t input_size, enum audio_channel channel, uint8_t pcm_bit_depth, void *output, size_t *output_size)
Removes every second sample from *input and writes it to *output.
int pscm_combine(void const *const input_left, void const *const input_right, size_t input_size, uint8_t pcm_bit_depth, void *output, size_t *output_size)
Combines two mono streams into one stereo stream.
int pscm_zero_pad(void const *const input, size_t input_size, enum audio_channel channel, uint8_t pcm_bit_depth, void *output, size_t *output_size)
Adds a 0 after every sample from *input and writes it to *output.