audiocodec.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef __AUDIOCODEC_H__
  2. #define __AUDIOCODEC_H__
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "audiostream.h"
  8. #define AUDIO_CODEC_OPT_ENCODE_READ 0
  9. #define AUDIO_CODEC_OPT_ENCODE_WRITE 1
  10. #define AUDIO_CODEC_OPT_DECODE_READ 1
  11. #define AUDIO_CODEC_OPT_DECODE_WRITE 0
  12. #define AUDIO_CODEC_OPT_PLC 2
  13. typedef struct audiocodec_t audiocodec_t;
  14. struct audiocodec_t
  15. {
  16. audiostream_t base;
  17. int flag;
  18. int ptime;
  19. int clock;
  20. void *private_codec;
  21. void *plc_state;
  22. int last_plc;
  23. audioframe_t tmp_frame;
  24. };
  25. apr_status_t audiocodec_create(apr_pool_t *pool,
  26. audioengine_t *engine,
  27. const char *name,
  28. int clock,
  29. int ptime,
  30. int flag,
  31. audiocodec_t**p_codec);
  32. apr_status_t audiocodec_set_param(audiocodec_t *codec, const char *key, const char *value);
  33. apr_status_t audiocodec_get_param(audiocodec_t *codec, const char *key, char *value);
  34. apr_status_t audiocodec_init(audiocodec_t *codec);
  35. apr_status_t audiocodec_term(audiocodec_t *codec);
  36. void audiocodec_destroy(audiocodec_t *codec);
  37. apr_status_t audiocodec_pcma_decode(const void *inbuf,int insize,void *outbuf,int *outsize);
  38. apr_status_t audiocodec_pcmu_decode(const void *inbuf,int insize,void *outbuf,int *outsize);
  39. apr_status_t audiocodec_g729a_decode(const void *inbuf,int insize,void *outbuf,int *outsize);
  40. #ifdef __cplusplus
  41. } // extern "C" {
  42. #endif
  43. #endif //__AUDIOCODEC_H__