39#ifndef _AUDIO_UTILS_H_
40#define _AUDIO_UTILS_H_
72void change_bps(
char *out,
int out_bps,
const char *in,
int in_bps,
int in_len );
74void change_bps2(
char *out,
int out_bps,
const char *in,
int in_bps,
int in_len ,
bool dither);
97void copy_channel(
char *out,
const char *in,
int bps,
int in_len ,
int out_channel_count);
102void mux_channel(
char *out,
const char *in,
int bps,
int in_len,
int out_stream_channels,
int chan_pos_stream,
double scale);
103void demux_channel(
char *out,
char *in,
int bps,
int in_len,
int in_stream_channels,
int pos_in_stream);
104void remux_channel(
char *out,
const char *in,
int bps,
int in_len,
int in_stream_channels,
int out_stream_channels,
int pos_in_stream,
int pos_out_stream);
108 int in_len ,
int channel_count);
110 int in_len ,
int channel_count);
117void mux_and_mix_channel(
char *out,
const char *in,
int bps,
int in_len,
int out_stream_channels,
int chan_pos_stream,
double scale);
118void remux_and_mix_channel(
char *out,
const char *in,
int bps,
int frames,
int in_stream_channels,
int out_stream_channels,
int in_channel,
int out_channel,
double scale);
119double get_avg_volume(
char *data,
int bps,
int in_len,
int stream_channels,
int chan_pos_stream);
142#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
143#define STORE_I32_SAMPLE(ptr, val, out_bps) \
144 memcpy((ptr), ((const char *) &(val)) + 4 - (out_bps), (out_bps))
146#define STORE_I32_SAMPLE(ptr, val, out_bps) memcpy((ptr), &(val), (out_bps))
183 const char *format_color,
char **volume_start,
struct video_frame * frame
This file contains definition of some common audio types.
void interleaved2noninterleaved2(char **out, const char *in, int bps, int in_len, int channel_count)
void copy_channel(char *out, const char *in, int bps, int in_len, int out_channel_count)
void audio_channel_demux(const audio_frame2 *, int, audio_channel *)
struct audio_desc audio_desc_from_frame(const struct audio_frame *frame)
void remux_and_mix_channel(char *out, const char *in, int bps, int frames, int in_stream_channels, int out_stream_channels, int in_channel, int out_channel, double scale)
bool parse_channel_map_cfg(struct channel_map *channel_map, const char *cfg)
void signed2unsigned(char *out, const char *in, int in_len)
void float2int(char *out, const char *in, int len)
void audio_frame_write_desc(struct audio_frame *f, struct audio_desc desc)
bool append_audio_frame(struct audio_frame *frame, char *data, size_t data_len)
struct audio_desc audio_desc_from_audio_channel(const audio_channel *)
void change_bps2(char *out, int out_bps, const char *in, int in_bps, int in_len, bool dither)
changes bps with option to specify whether or not do the dithering
void interleaved2noninterleaved(char *out, const char *in, int bps, int in_len, int channel_count)
void mux_channel(char *out, const char *in, int bps, int in_len, int out_stream_channels, int chan_pos_stream, double scale)
void audio_frame_multiply_channel(struct audio_frame *frame, int new_channel_count)
void demux_channel(char *out, char *in, int bps, int in_len, int in_stream_channels, int pos_in_stream)
void change_bps(char *out, int out_bps, const char *in, int in_bps, int in_len)
double get_avg_volume(char *data, int bps, int in_len, int stream_channels, int chan_pos_stream)
double calculate_rms(audio_frame2 *frame, int channel, double *peak)
Calculates mean and peak RMS from audio samples.
void remux_channel(char *out, const char *in, int bps, int in_len, int in_stream_channels, int out_stream_channels, int pos_in_stream, int pos_out_stream)
bool audio_desc_eq(struct audio_desc, struct audio_desc)
int32_t downshift_with_dither(int32_t val, int shift)
void format_audio_channel_volume(int chan_idx, double rms, double peak, const char *format_color, char **volume_start, char *volume_end)
format per channel incrementally volume string (eg. "[0]-18.00/-14.99, [1] -18.00/-14....
int parse_audio_format(const char *str, struct audio_desc *ret)
struct audio_frame * audio_frame_copy(const struct audio_frame *src, bool keep_size)
void int2float(char *out, const char *in, int len)
void interleaved2noninterleaved_float(char **out, const char *in, int in_bps, int in_len, int channel_count)
void mux_and_mix_channel(char *out, const char *in, int bps, int in_len, int out_stream_channels, int chan_pos_stream, double scale)
const char * audio_desc_to_cstring(struct audio_desc desc)
Audio channel is a non-owning view on audio_frame2 isolating one channel.
struct used to comunicate with audio capture/playback device
void compute_contributors()