1 /* 2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited 3 */ 4 #ifndef BUFFER_MANAGER_H 5 #define BUFFER_MANAGER_H 6 7 #include <stdint.h> 8 9 struct BufferManager_; 10 11 typedef struct BufferManager_ BufferManager; 12 13 typedef enum 14 { 15 BUFFER_MANAGER_CACHING = 0, 16 BUFFER_MANAGER_CACHE_OK = 1, 17 BUFFER_MANAGER_FLUSH = 2 18 } BufferManagerStatus; 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 // Buffer management for decoupling codec frame size and vqe frame size, 25 // vqe frame size must be larger than codec frame size. 26 // When init buffer manager, input buffer should inited by 27 // buffer_manager_create(codec_frame_size, vqe_frame_size) 28 // output buffer should inited by 29 // buffer_manager_create(vqe_frame_size, codec_frame_size) 30 BufferManager *buffer_manager_create(int inlen, int outlen, int sample_size); 31 32 void buffer_manager_destroy(BufferManager *st); 33 34 BufferManagerStatus buffer_manager_process(BufferManager *st, void *inbuf, int inlen, void *outbuf, int outlen); 35 36 #ifdef __cplusplus 37 } 38 #endif 39 40 #endif