razor_api.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef __razor_api__001_h_
  2. #define __razor_api__001_h_
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdint.h>
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. /**************************************************************
  10. 说明:razor没有实现线程安全,多线程访问需要上层的通信模块来保证,我们
  11. 是这样考虑的,因为整个拥塞评估没有很大的计算,也没有并发的需求,只要
  12. 在通信层做线程安全即可,关于这个请看具体的sim transport使用的例子
  13. **************************************************************/
  14. /*定义回调函数和对象*/
  15. #include "razor_callback.h"
  16. enum
  17. {
  18. gcc_congestion = 0,
  19. bbr_congestion = 1,
  20. };
  21. /****************************************外部直接调用API************************************/
  22. void razor_setup_log(razor_log_func log_cb, void *user_data);
  23. void razor_unsetup_log();
  24. /*创建一个发送端的拥塞控制对象*/
  25. razor_sender_t* razor_sender_create(int type, int padding, void* trigger, bitrate_changed_func bitrate_cb, void* handler, pace_send_func send_cb, int queue_ms);
  26. /*销毁一个发送端的拥塞控制对象*/
  27. void razor_sender_destroy(razor_sender_t* sender);
  28. razor_receiver_t* razor_receiver_create(int type, int min_bitrate, int max_bitrate, int packet_header_size, void* handler, send_feedback_func cb);
  29. void razor_receiver_destroy(razor_receiver_t* receiver);
  30. #ifdef __cplusplus
  31. }
  32. #endif
  33. #endif