pinebuds/services/multimedia/audio/process/limiter/include/limiter.h

29 lines
690 B
C

#ifndef LIMITER_H
#define LIMITER_H
#include <stdint.h>
typedef struct
{
int32_t knee;
int32_t look_ahead_time;
int32_t threshold;
float makeup_gain;
int32_t ratio; // reserved
int32_t attack_time;
int32_t release_time;
} LimiterConfig;
struct LimiterState_;
typedef struct LimiterState_ LimiterState;
LimiterState *limiter_create(int32_t sample_rate, int32_t frame_size, int32_t sample_bit, int32_t channel_number, const LimiterConfig *config);
int32_t limiter_destroy(LimiterState *st);
int32_t limiter_set_config(LimiterState *st, const LimiterConfig *config);
int32_t limiter_process(LimiterState *st, uint8_t *buf, int32_t len);
#endif