#ifndef __AUDIOCODEC_H__ #define __AUDIOCODEC_H__ #pragma once #ifdef __cplusplus extern "C" { #endif #include "audiostream.h" #define AUDIO_CODEC_OPT_ENCODE_READ 0 #define AUDIO_CODEC_OPT_ENCODE_WRITE 1 #define AUDIO_CODEC_OPT_DECODE_READ 1 #define AUDIO_CODEC_OPT_DECODE_WRITE 0 #define AUDIO_CODEC_OPT_PLC 2 typedef struct audiocodec_t audiocodec_t; struct audiocodec_t { audiostream_t base; int flag; int ptime; int clock; void *private_codec; void *plc_state; int last_plc; audioframe_t tmp_frame; }; apr_status_t audiocodec_create(apr_pool_t *pool, audioengine_t *engine, const char *name, int clock, int ptime, int flag, audiocodec_t**p_codec); apr_status_t audiocodec_set_param(audiocodec_t *codec, const char *key, const char *value); apr_status_t audiocodec_get_param(audiocodec_t *codec, const char *key, char *value); apr_status_t audiocodec_init(audiocodec_t *codec); apr_status_t audiocodec_term(audiocodec_t *codec); void audiocodec_destroy(audiocodec_t *codec); apr_status_t audiocodec_pcma_decode(const void *inbuf,int insize,void *outbuf,int *outsize); apr_status_t audiocodec_pcmu_decode(const void *inbuf,int insize,void *outbuf,int *outsize); apr_status_t audiocodec_g729a_decode(const void *inbuf,int insize,void *outbuf,int *outsize); #ifdef __cplusplus } // extern "C" { #endif #endif //__AUDIOCODEC_H__