Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

74 linhas
2.1KB

  1. /*
  2. * Copyright (c) 2016 The ZLMediaKit project authors. All Rights Reserved.
  3. *
  4. * This file is part of ZLMediaKit(https://github.com/xia-chu/ZLMediaKit).
  5. *
  6. * Use of this source code is governed by MIT license that can be found in the
  7. * LICENSE file in the root of the source tree. All contributing project authors
  8. * may be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #include "mk_common.h"
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. typedef void* mk_rtp_server;
  15. /**
  16. * 创建GB28181 RTP 服务器
  17. * @param port 监听端口,0则为随机
  18. * @param tcp_mode tcp模式(0: 不监听端口 1: 监听端口 2: 主动连接到服务端)
  19. * @param stream_id 该端口绑定的流id
  20. * @return
  21. */
  22. API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create(uint16_t port, int tcp_mode, const char *stream_id);
  23. /**
  24. * TCP 主动模式时连接到服务器是否成功的回调
  25. */
  26. typedef void(API_CALL *on_mk_rtp_server_connected)(void *user_data, int err, const char *what, int sys_err);
  27. /**
  28. * TCP 主动模式时连接到服务器
  29. * @param @param ctx 服务器对象
  30. * @param dst_url 服务端地址
  31. * @param dst_port 服务端端口
  32. * @param cb 连接到服务器是否成功的回调
  33. * @param user_data 用户数据指针
  34. * @return
  35. */
  36. API_EXPORT void API_CALL mk_rtp_server_connect(mk_rtp_server ctx, const char *dst_url, uint16_t dst_port, on_mk_rtp_server_connected cb, void *user_data);
  37. /**
  38. * 销毁GB28181 RTP 服务器
  39. * @param ctx 服务器对象
  40. */
  41. API_EXPORT void API_CALL mk_rtp_server_release(mk_rtp_server ctx);
  42. /**
  43. * 获取本地监听的端口号
  44. * @param ctx 服务器对象
  45. * @return 端口号
  46. */
  47. API_EXPORT uint16_t API_CALL mk_rtp_server_port(mk_rtp_server ctx);
  48. /**
  49. * GB28181 RTP 服务器接收流超时时触发
  50. * @param user_data 用户数据指针
  51. */
  52. typedef void(API_CALL *on_mk_rtp_server_detach)(void *user_data);
  53. /**
  54. * 监听B28181 RTP 服务器接收流超时事件
  55. * @param ctx 服务器对象
  56. * @param cb 回调函数
  57. * @param user_data 回调函数用户数据指针
  58. */
  59. API_EXPORT void API_CALL mk_rtp_server_set_on_detach(mk_rtp_server ctx, on_mk_rtp_server_detach cb, void *user_data);
  60. #ifdef __cplusplus
  61. }
  62. #endif