Files
AC707N/SDK/interface/media/audio_src.h
T
2025-12-03 11:12:34 +08:00

56 lines
1.7 KiB
C

/*****************************************************************
>file name : audio_src.h
>author : lichao
>create time : Fri 14 Dec 2018 03:05:49 PM CST
*****************************************************************/
#ifndef _AUDIO_SRC_H_
#define _AUDIO_SRC_H_
#include "system/includes.h"
#include "audio_src_base.h"
#define SRC_TYPE_NONE 0
#define SRC_TYPE_RESAMPLE 1
#define SRC_TYPE_AUDIO_SYNC 2
struct audio_src_buffer {
void *addr;
int len;
};
// *INDENT-OFF*
struct audio_src_handle {
void *base;
struct audio_src_buffer output;
void *output_priv;
int (*output_handler)(void *priv, void *data, int len);
u8 *remain_addr;
int remain_len;
u8 output_malloc;
};
// *INDENT-ON*
int audio_hw_src_open(struct audio_src_handle *src, u8 channel, u8 type);
int audio_hw_src_set_rate(struct audio_src_handle *src, u32 input_rate, u32 output_rate);
int audio_hw_src_bufferd_frames(struct audio_src_handle *src);
int audio_src_resample_write(struct audio_src_handle *src, void *data, int len);
void audio_src_set_output_handler(struct audio_src_handle *src, void *priv,
int (*handler)(void *, void *, int));
int audio_hw_src_set_input_buffer(struct audio_src_handle *src, void *addr, int len);
int audio_hw_src_set_output_buffer(struct audio_src_handle *src, void *addr, int len);
int audio_hw_src_stop(struct audio_src_handle *src);
void audio_hw_src_close(struct audio_src_handle *src);
int audio_hw_src_trigger_resume(struct audio_src_handle *src, void *priv, void (*callback)(void *));
int audio_src_push_data_out(struct audio_src_handle *src);
u8 audio_src_get_hw_src_id(struct audio_src_handle *src);
#endif