nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
PCM Stream Channel Modifier library

Enables splitting of pulse-code modulation (PCM) streams from stereo to mono or combine mono streams to form a stereo stream. More...

Macros

#define PSCM_MAX_CARRIER_BIT_DEPTH   (32)
 Specifies the maximum number of bits used to carry a sample.
 

Functions

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.
 
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_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_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_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_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.
 

Detailed Description

Enables splitting of pulse-code modulation (PCM) streams from stereo to mono or combine mono streams to form a stereo stream.