Peak detector
[Audio]

Detect peaks in the volume for steering normalizers and dynamic range compressors While normalizers and dynamic range controls are out of the scope of gavl, some low-level functionality can be provided. More...

Typedefs

typedef struct gavl_peak_detector_s gavl_peak_detector_t
 Opaque structure for peak detector.
typedef void(* gavl_update_peak_callback )(void *priv, int samples, double min, double max, double abs)
 Callback for getting the peaks across all channels.
typedef void(* gavl_update_peaks_callback )(void *priv, int samples, const double *min, const double *max, const double *abs)
 Callback for getting the peaks for all channels separately.

Functions

GAVL_PUBLIC gavl_peak_detector_tgavl_peak_detector_create ()
 Create peak detector.
GAVL_PUBLIC void gavl_peak_detector_set_callbacks (gavl_peak_detector_t *pd, gavl_update_peak_callback peak_callback, gavl_update_peaks_callback peaks_callback, void *priv)
 Set callbacks.
GAVL_PUBLIC void gavl_peak_detector_destroy (gavl_peak_detector_t *pd)
 Destroys a peak detector and frees all associated memory.
GAVL_PUBLIC void gavl_peak_detector_set_format (gavl_peak_detector_t *pd, const gavl_audio_format_t *format)
 Set format for a peak detector.
GAVL_PUBLIC const
gavl_audio_format_t
gavl_peak_detector_get_format (gavl_peak_detector_t *pd)
 Get format.
GAVL_PUBLIC void gavl_peak_detector_update (gavl_peak_detector_t *pd, gavl_audio_frame_t *frame)
 Feed the peak detector with a new frame.
GAVL_PUBLIC gavl_audio_sink_tgavl_peak_detector_get_sink (gavl_peak_detector_t *pd)
 Get the audio sink.
GAVL_PUBLIC void gavl_peak_detector_get_peak (gavl_peak_detector_t *pd, double *min, double *max, double *abs)
 Get the peak volume across all channels.
GAVL_PUBLIC void gavl_peak_detector_get_peaks (gavl_peak_detector_t *pd, double *min, double *max, double *abs)
 Get the peak volume for all channels separate.
GAVL_PUBLIC void gavl_peak_detector_reset (gavl_peak_detector_t *pd)
 Reset a peak detector.

Detailed Description

Detect peaks in the volume for steering normalizers and dynamic range compressors While normalizers and dynamic range controls are out of the scope of gavl, some low-level functionality can be provided.


Typedef Documentation

typedef struct gavl_peak_detector_s gavl_peak_detector_t

Opaque structure for peak detector.

You don't want to know what's inside.

typedef void(* gavl_update_peak_callback)(void *priv, int samples, double min, double max, double abs)

Callback for getting the peaks across all channels.

Parameters:
priv Client data
samples Number of samples of last update call
min Minimum value (scaled betwen -1.0 and 1.0)
min Maximum value (scaled betwen -1.0 and 1.0)
abs Absolute value (scaled betwen 0.0 and 1.0)
Since 1.5.0

typedef void(* gavl_update_peaks_callback)(void *priv, int samples, const double *min, const double *max, const double *abs)

Callback for getting the peaks for all channels separately.

Parameters:
priv Client data
samples Number of samples of last update call
min Minimum value (scaled betwen -1.0 and 1.0)
min Maximum value (scaled betwen -1.0 and 1.0)
abs Absolute value (scaled betwen 0.0 and 1.0)
Since 1.5.0


Function Documentation

GAVL_PUBLIC gavl_peak_detector_t* gavl_peak_detector_create (  ) 

Create peak detector.

Returns:
A newly allocated peak detector

GAVL_PUBLIC void gavl_peak_detector_set_callbacks ( gavl_peak_detector_t pd,
gavl_update_peak_callback  peak_callback,
gavl_update_peaks_callback  peaks_callback,
void *  priv 
)

Set callbacks.

Parameters:
pd A peak detector
peak_callback Callback for overall peaks or NULL
peaks_callback Callback for per channel peaks or NULL
priv Client data passed to the callbacks
Since 1.5.0

GAVL_PUBLIC void gavl_peak_detector_destroy ( gavl_peak_detector_t pd  ) 

Destroys a peak detector and frees all associated memory.

Parameters:
pd A peak detector

GAVL_PUBLIC void gavl_peak_detector_set_format ( gavl_peak_detector_t pd,
const gavl_audio_format_t format 
)

Set format for a peak detector.

Parameters:
pd A peak detector
format The format subsequent frames will be passed with
This function can be called multiple times with one instance. It also calls gavl_peak_detector_reset.

GAVL_PUBLIC const gavl_audio_format_t* gavl_peak_detector_get_format ( gavl_peak_detector_t pd  ) 

Get format.

Parameters:
pd A peak detector
Returns:
The internal format
Since 1.5.0

GAVL_PUBLIC void gavl_peak_detector_update ( gavl_peak_detector_t pd,
gavl_audio_frame_t frame 
)

Feed the peak detector with a new frame.

Parameters:
pd A peak detector
frame An audio frame

GAVL_PUBLIC gavl_audio_sink_t* gavl_peak_detector_get_sink ( gavl_peak_detector_t pd  ) 

Get the audio sink.

Parameters:
pd A peak detector
Returns:
An audio sink
Use the returned sink for passing audio frames as an alternative to gavl_peak_detector_update

Since 1.5.0

GAVL_PUBLIC void gavl_peak_detector_get_peak ( gavl_peak_detector_t pd,
double *  min,
double *  max,
double *  abs 
)

Get the peak volume across all channels.

Parameters:
pd A peak detector
min Returns minimum amplitude
max Returns maximum amplitude
abs Returns maximum absolute amplitude
The returned amplitudes are normalized such that the minimum amplitude corresponds to -1.0, the maximum amplitude corresponds to 1.0.

GAVL_PUBLIC void gavl_peak_detector_get_peaks ( gavl_peak_detector_t pd,
double *  min,
double *  max,
double *  abs 
)

Get the peak volume for all channels separate.

Parameters:
pd A peak detector
min Returns minimum amplitude
max Returns maximum amplitude
abs Returns maximum absolute amplitude
The returned amplitudes are normalized such that the minimum amplitude corresponds to -1.0, the maximum amplitude corresponds to 1.0.

GAVL_PUBLIC void gavl_peak_detector_reset ( gavl_peak_detector_t pd  ) 

Reset a peak detector.

Parameters:
pd A peak detector


Generated on Sun Sep 6 17:35:01 2015 for gavl by  doxygen 1.5.6