LiVES  2.4.1-svn
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Data Structures | Macros | Enumerations | Functions
audio.h File Reference

Go to the source code of this file.

Data Structures

struct  aserver_message_t
 
struct  lives_audio_buf_t
 

Macros

#define SAMPLE_MAX_16BIT_P   32767.0f
 
#define SAMPLE_MAX_16BIT_N   32768.0f
 
#define SAMPLE_MAX_16BITI   32768
 
#define SWAP_U_TO_S   1
 sign swapping More...
 
#define SWAP_S_TO_U   2
 signed to unsigned More...
 
#define SWAP_X_TO_L   1
 endian swapping More...
 
#define SWAP_L_TO_X   2
 local to other More...
 
#define DEFAULT_AUDIO_RATE   44100
 defaults for when not specifed More...
 
#define DEFAULT_AUDIO_CHANS   2
 
#define DEFAULT_AUDIO_SAMPS   16
 
#define DEFAULT_AUDIO_SIGNED8   (AFORM_UNSIGNED)
 
#define DEFAULT_AUDIO_SIGNED16   (!AFORM_UNSIGNED)
 
#define LIVES_ACONNECT_TIMEOUT   (10 * U_SEC)
 KO time before declaring audio server dead. More...
 
#define MAX_AUDIO_MEM   8*1024*1024
 TODO ** - make configurable - audio buffer size for rendering. More...
 
#define RENDER_BLOCK_SIZE   1024
 chunk size for interpolate/effect cycle More...
 
#define SILENCE_BLOCK_SIZE   65536
 size of silent block in bytes More...
 
#define READ_BLOCK_SIZE   4096
 chunk size for audio buffer reads More...
 
#define XSAMPLES   128000
 buffer size for realtime audio More...
 
#define ASERVER_CMD_PROCESSED   0
 asynch msging More...
 
#define ASERVER_CMD_FILE_OPEN   1
 
#define ASERVER_CMD_FILE_CLOSE   2
 
#define ASERVER_CMD_FILE_SEEK   3
 

Enumerations

enum  lives_operation_t { LIVES_NOP_OPERATION =0, LIVES_READ_OPERATION, LIVES_WRITE_OPERATION, LIVES_CONVERT_OPERATION }
 
enum  lives_audio_loop_t { AUDIO_LOOP_NONE, AUDIO_LOOP_FORWARD, AUDIO_LOOP_PINGPONG }
 
enum  lives_rec_audio_type_t {
  RECA_WINDOW_GRAB, RECA_NEW_CLIP, RECA_EXISTING, RECA_EXTERNAL,
  RECA_GENERATED
}
 

Functions

void sample_silence_dS (float *dst, uint64_t nsamples)
 
void sample_move_d8_d16 (short *dst, uint8_t *src, uint64_t nsamples, size_t tbytes, float scale, int nDstChannels, int nSrcChannels, int swap_sign)
 
void sample_move_d16_d16 (short *dst, short *src, uint64_t nsamples, size_t tbytes, float scale, int nDstChannels, int nSrcChannels, int swap_endian, int swap_sign)
 
void sample_move_d16_d8 (uint8_t *dst, short *src, uint64_t nsamples, size_t tbytes, float scale, int nDstChannels, int nSrcChannels, int swap_sign)
 
void sample_move_d16_float (float *dst, short *src, uint64_t nsamples, uint64_t src_skip, int is_unsigned, boolean rev_endian, float vol)
 
int64_t sample_move_float_int (void *holding_buff, float **float_buffer, int nsamps, float scale, int chans, int asamps, int usigned, boolean swap_endian, boolean float_interleaved, float vol)
 returns frames output More...
 
int64_t sample_move_abuf_float (float **obuf, int nchans, int nsamps, int out_arate, float vol)
 
int64_t sample_move_abuf_int16 (short *obuf, int nchans, int nsamps, int out_arate)
 
void sample_move_float_float (float *dst, float *src, uint64_t nsamples, float scale, int dst_skip)
 
boolean float_deinterleave (float *fbuffer, int nsamps, int nchans)
 
boolean float_interleave (float *fbuffer, int nsamps, int nchans)
 
int64_t render_audio_segment (int nfiles, int *from_files, int to_file, double *avels, double *fromtime, weed_timecode_t tc_start, weed_timecode_t tc_end, double *chvol, double opvol_start, double opvol_end, lives_audio_buf_t *obuf)
 
void aud_fade (int fileno, double startt, double endt, double startv, double endv)
 fade in/fade out More...
 
void fill_abuffer_from (lives_audio_buf_t *abuf, weed_plant_t *event_list, weed_plant_t *st_event, boolean exact)
 
boolean resync_audio (int frameno)
 
lives_audio_track_state_tget_audio_and_effects_state_at (weed_plant_t *event_list, weed_plant_t *st_event, boolean get_audstate, boolean exact)
 
boolean get_audio_from_plugin (float *fbuffer, int nchans, int arate, int nsamps)
 
void reinit_audio_gen (void)
 
void init_jack_audio_buffers (int achans, int arate, boolean exact)
 
void free_jack_audio_buffers (void)
 
void init_pulse_audio_buffers (int achans, int arate, boolean exact)
 
void free_pulse_audio_buffers (void)
 
void audio_free_fnames (void)
 
lives_audio_buf_taudio_cache_init (void)
 
void audio_cache_end (void)
 
lives_audio_buf_taudio_cache_get_buffer (void)
 
boolean apply_rte_audio_init (void)
 
void apply_rte_audio_end (boolean del)
 
boolean apply_rte_audio (int nframes)
 
void init_audio_frame_buffer (short aplayer)
 
void free_audio_frame_buffer (lives_audio_buf_t *abuf)
 
void append_to_audio_bufferf (lives_audio_buf_t *abuf, float *src, uint64_t nsamples, int channum)
 
void append_to_audio_buffer16 (lives_audio_buf_t *abuf, void *src, uint64_t nsamples, int channum)
 
boolean push_audio_to_channel (weed_plant_t *achan, lives_audio_buf_t *abuf)
 
boolean start_audio_stream (void)
 
void stop_audio_stream (void)
 
void clear_audio_stream (void)
 
void audio_stream (void *buff, size_t nbytes, int fd)
 

Macro Definition Documentation

#define ASERVER_CMD_FILE_CLOSE   2
#define ASERVER_CMD_FILE_OPEN   1
#define ASERVER_CMD_FILE_SEEK   3
#define ASERVER_CMD_PROCESSED   0

asynch msging

#define DEFAULT_AUDIO_CHANS   2
#define DEFAULT_AUDIO_RATE   44100

defaults for when not specifed

#define DEFAULT_AUDIO_SAMPS   16
#define DEFAULT_AUDIO_SIGNED16   (!AFORM_UNSIGNED)
#define DEFAULT_AUDIO_SIGNED8   (AFORM_UNSIGNED)
#define LIVES_ACONNECT_TIMEOUT   (10 * U_SEC)

KO time before declaring audio server dead.

#define MAX_AUDIO_MEM   8*1024*1024

TODO ** - make configurable - audio buffer size for rendering.

#define READ_BLOCK_SIZE   4096

chunk size for audio buffer reads

#define RENDER_BLOCK_SIZE   1024

chunk size for interpolate/effect cycle

#define SAMPLE_MAX_16BIT_N   32768.0f
#define SAMPLE_MAX_16BIT_P   32767.0f
#define SAMPLE_MAX_16BITI   32768
#define SILENCE_BLOCK_SIZE   65536

size of silent block in bytes

#define SWAP_L_TO_X   2

local to other

#define SWAP_S_TO_U   2

signed to unsigned

#define SWAP_U_TO_S   1

sign swapping

unsigned to signed

#define SWAP_X_TO_L   1

endian swapping

other to local

#define XSAMPLES   128000

buffer size for realtime audio

Enumeration Type Documentation

Enumerator
AUDIO_LOOP_NONE 
AUDIO_LOOP_FORWARD 
AUDIO_LOOP_PINGPONG 
Enumerator
LIVES_NOP_OPERATION 
LIVES_READ_OPERATION 
LIVES_WRITE_OPERATION 
LIVES_CONVERT_OPERATION 
Enumerator
RECA_WINDOW_GRAB 
RECA_NEW_CLIP 
RECA_EXISTING 
RECA_EXTERNAL 
RECA_GENERATED 

Function Documentation

void append_to_audio_buffer16 ( lives_audio_buf_t abuf,
void *  src,
uint64_t  nsamples,
int  channum 
)
void append_to_audio_bufferf ( lives_audio_buf_t abuf,
float *  src,
uint64_t  nsamples,
int  channum 
)
boolean apply_rte_audio ( int  nframes)
void apply_rte_audio_end ( boolean  del)
boolean apply_rte_audio_init ( void  )
void aud_fade ( int  fileno,
double  startt,
double  endt,
double  startv,
double  endv 
)

fade in/fade out

void audio_cache_end ( void  )

< tell cache thread to exit when possible

lives_audio_buf_t* audio_cache_get_buffer ( void  )
lives_audio_buf_t* audio_cache_init ( void  )
void audio_free_fnames ( void  )
void audio_stream ( void *  buff,
size_t  nbytes,
int  fd 
)
void clear_audio_stream ( void  )
void fill_abuffer_from ( lives_audio_buf_t abuf,
weed_plant_t *  event_list,
weed_plant_t *  st_event,
boolean  exact 
)
boolean float_deinterleave ( float *  fbuffer,
int  nsamps,
int  nchans 
)
boolean float_interleave ( float *  fbuffer,
int  nsamps,
int  nchans 
)
void free_audio_frame_buffer ( lives_audio_buf_t abuf)
void free_jack_audio_buffers ( void  )
void free_pulse_audio_buffers ( void  )
lives_audio_track_state_t* get_audio_and_effects_state_at ( weed_plant_t *  event_list,
weed_plant_t *  st_event,
boolean  get_audstate,
boolean  exact 
)
boolean get_audio_from_plugin ( float *  fbuffer,
int  nchans,
int  arate,
int  nsamps 
)
void init_audio_frame_buffer ( short  aplayer)
void init_jack_audio_buffers ( int  achans,
int  arate,
boolean  exact 
)
void init_pulse_audio_buffers ( int  achans,
int  arate,
boolean  exact 
)
boolean push_audio_to_channel ( weed_plant_t *  achan,
lives_audio_buf_t abuf 
)
void reinit_audio_gen ( void  )
int64_t render_audio_segment ( int  nfiles,
int *  from_files,
int  to_file,
double *  avels,
double *  fromtime,
weed_timecode_t  tc_start,
weed_timecode_t  tc_end,
double *  chvol,
double  opvol_start,
double  opvol_end,
lives_audio_buf_t obuf 
)
boolean resync_audio ( int  frameno)
int64_t sample_move_abuf_float ( float **  obuf,
int  nchans,
int  nsamps,
int  out_arate,
float  vol 
)
int64_t sample_move_abuf_int16 ( short *  obuf,
int  nchans,
int  nsamps,
int  out_arate 
)
void sample_move_d16_d16 ( short *  dst,
short *  src,
uint64_t  nsamples,
size_t  tbytes,
float  scale,
int  nDstChannels,
int  nSrcChannels,
int  swap_endian,
int  swap_sign 
)
void sample_move_d16_d8 ( uint8_t *  dst,
short *  src,
uint64_t  nsamples,
size_t  tbytes,
float  scale,
int  nDstChannels,
int  nSrcChannels,
int  swap_sign 
)
void sample_move_d16_float ( float *  dst,
short *  src,
uint64_t  nsamples,
uint64_t  src_skip,
int  is_unsigned,
boolean  rev_endian,
float  vol 
)
void sample_move_d8_d16 ( short *  dst,
uint8_t *  src,
uint64_t  nsamples,
size_t  tbytes,
float  scale,
int  nDstChannels,
int  nSrcChannels,
int  swap_sign 
)
void sample_move_float_float ( float *  dst,
float *  src,
uint64_t  nsamples,
float  scale,
int  dst_skip 
)
int64_t sample_move_float_int ( void *  holding_buff,
float **  float_buffer,
int  nsamps,
float  scale,
int  chans,
int  asamps,
int  usigned,
boolean  swap_endian,
boolean  float_interleaved,
float  vol 
)

returns frames output

void sample_silence_dS ( float *  dst,
uint64_t  nsamples 
)
boolean start_audio_stream ( void  )
void stop_audio_stream ( void  )