xref: /OK3568_Linux_fs/external/rknpu2/examples/3rdparty/zlmediakit/include/mk_rtp_server.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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 
11 #include "mk_common.h"
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 typedef void* mk_rtp_server;
18 
19 /**
20  * 创建GB28181 RTP 服务器
21  * @param port 监听端口,0则为随机
22  * @param tcp_mode tcp模式(0: 不监听端口 1: 监听端口 2: 主动连接到服务端)
23  * @param stream_id 该端口绑定的流id
24  * @return
25  */
26 API_EXPORT mk_rtp_server API_CALL mk_rtp_server_create(uint16_t port, int tcp_mode, const char *stream_id);
27 
28 /**
29  * TCP 主动模式时连接到服务器是否成功的回调
30  */
31 typedef void(API_CALL *on_mk_rtp_server_connected)(void *user_data, int err, const char *what, int sys_err);
32 
33 /**
34  * TCP 主动模式时连接到服务器
35  * @param @param ctx 服务器对象
36  * @param dst_url 服务端地址
37  * @param dst_port 服务端端口
38  * @param cb 连接到服务器是否成功的回调
39  * @param user_data 用户数据指针
40  * @return
41  */
42 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);
43 
44 /**
45  * 销毁GB28181 RTP 服务器
46  * @param ctx 服务器对象
47  */
48 API_EXPORT void API_CALL mk_rtp_server_release(mk_rtp_server ctx);
49 
50 /**
51  * 获取本地监听的端口号
52  * @param ctx 服务器对象
53  * @return 端口号
54  */
55 API_EXPORT uint16_t API_CALL mk_rtp_server_port(mk_rtp_server ctx);
56 
57 /**
58  * GB28181 RTP 服务器接收流超时时触发
59  * @param user_data 用户数据指针
60  */
61 typedef void(API_CALL *on_mk_rtp_server_detach)(void *user_data);
62 
63 /**
64  * 监听B28181 RTP 服务器接收流超时事件
65  * @param ctx 服务器对象
66  * @param cb 回调函数
67  * @param user_data 回调函数用户数据指针
68  */
69 API_EXPORT void API_CALL mk_rtp_server_set_on_detach(mk_rtp_server ctx, on_mk_rtp_server_detach cb, void *user_data);
70 
71 
72 #ifdef __cplusplus
73 }
74 #endif