GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
audio_mixer.c File Reference
+ Include dependency graph for audio_mixer.c:

Data Structures

struct  MixerInput
 
struct  GF_AudioMixer
 

Macros

#define GF_SR_MAX_CHANNELS   16
 

Functions

GF_AudioMixer * gf_mixer_new (struct _audio_render *ar)
 
Bool gf_mixer_must_reconfig (GF_AudioMixer *am)
 
void gf_mixer_del (GF_AudioMixer *am)
 
void gf_mixer_remove_all (GF_AudioMixer *am)
 
Bool gf_mixer_is_src_present (GF_AudioMixer *am, GF_AudioInterface *ifce)
 
u32 gf_mixer_get_src_count (GF_AudioMixer *am)
 
void gf_mixer_force_chanel_out (GF_AudioMixer *am, u32 num_channels)
 
u32 gf_mixer_get_block_align (GF_AudioMixer *am)
 
void gf_mixer_lock (GF_AudioMixer *am, Bool lockIt)
 
Bool gf_mixer_empty (GF_AudioMixer *am)
 
void gf_mixer_add_input (GF_AudioMixer *am, GF_AudioInterface *src)
 
void gf_mixer_remove_input (GF_AudioMixer *am, GF_AudioInterface *src)
 
static GF_Err get_best_samplerate (GF_AudioMixer *am, u32 *out_sr, u32 *out_ch, u32 *out_bps)
 
void gf_mixer_get_config (GF_AudioMixer *am, u32 *outSR, u32 *outCH, u32 *outBPS, u32 *outChCfg)
 
void gf_mixer_set_config (GF_AudioMixer *am, u32 outSR, u32 outCH, u32 outBPS, u32 outChCfg)
 
Bool gf_mixer_reconfig (GF_AudioMixer *am)
 
static u32 get_channel_out_pos (u32 in_ch, u32 out_cfg)
 
static void gf_mixer_map_channels (s32 *inChan, u32 nb_in, u32 in_cfg, u32 nb_out, u32 out_cfg)
 
static void gf_mixer_fetch_input (GF_AudioMixer *am, MixerInput *in, u32 audio_delay)
 
u32 gf_mixer_get_output (GF_AudioMixer *am, void *buffer, u32 buffer_size, u32 delay)
 

Data Structure Documentation

struct MixerInput
+ Collaboration diagram for MixerInput:
Data Fields
GF_AudioInterface * src
s32 * ch_buf[16]
u32 buffer_size
u32 bytes_per_sec
Bool has_prev
s32 last_channels[16]
u32 in_bytes_used
u32 out_samples_written
u32 out_samples_to_write
Fixed speed
Fixed pan[6]
Bool muted
struct __audiomix
+ Collaboration diagram for GF_AudioMixer:
Data Fields
GF_List * sources
u32 sample_rate
u32 nb_channels
u32 bits_per_sample
u32 channel_cfg
GF_Mutex * mx
Bool force_channel_out
Bool must_reconfig
Bool isEmpty
struct _audio_render * ar
s32 * output
u32 output_size

Macro Definition Documentation

#define GF_SR_MAX_CHANNELS   16

Function Documentation

GF_AudioMixer* gf_mixer_new ( struct _audio_render *  ar)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool gf_mixer_must_reconfig ( GF_AudioMixer *  am)

+ Here is the caller graph for this function:

void gf_mixer_del ( GF_AudioMixer *  am)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gf_mixer_remove_all ( GF_AudioMixer *  am)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool gf_mixer_is_src_present ( GF_AudioMixer *  am,
GF_AudioInterface ifce 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gf_mixer_get_src_count ( GF_AudioMixer *  am)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gf_mixer_force_chanel_out ( GF_AudioMixer *  am,
u32  num_channels 
)

+ Here is the caller graph for this function:

u32 gf_mixer_get_block_align ( GF_AudioMixer *  am)

+ Here is the caller graph for this function:

void gf_mixer_lock ( GF_AudioMixer *  am,
Bool  lockIt 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool gf_mixer_empty ( GF_AudioMixer *  am)

+ Here is the caller graph for this function:

void gf_mixer_add_input ( GF_AudioMixer *  am,
GF_AudioInterface src 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gf_mixer_remove_input ( GF_AudioMixer *  am,
GF_AudioInterface src 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static GF_Err get_best_samplerate ( GF_AudioMixer *  am,
u32 out_sr,
u32 out_ch,
u32 out_bps 
)
static

+ Here is the caller graph for this function:

void gf_mixer_get_config ( GF_AudioMixer *  am,
u32 outSR,
u32 outCH,
u32 outBPS,
u32 outChCfg 
)

+ Here is the caller graph for this function:

void gf_mixer_set_config ( GF_AudioMixer *  am,
u32  outSR,
u32  outCH,
u32  outBPS,
u32  outChCfg 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool gf_mixer_reconfig ( GF_AudioMixer *  am)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 get_channel_out_pos ( u32  in_ch,
u32  out_cfg 
)
static

+ Here is the caller graph for this function:

static void gf_mixer_map_channels ( s32 inChan,
u32  nb_in,
u32  in_cfg,
u32  nb_out,
u32  out_cfg 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gf_mixer_fetch_input ( GF_AudioMixer *  am,
MixerInput in,
u32  audio_delay 
)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gf_mixer_get_output ( GF_AudioMixer *  am,
void *  buffer,
u32  buffer_size,
u32  delay 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function: