From 49dfccd56f9bf3b2b7d7c13688dd6b854b367aa6 Mon Sep 17 00:00:00 2001 From: Lidaofu <746101210@qq.com> Date: Thu, 30 May 2024 10:49:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85C=20API=E6=8B=89=E6=B5=81?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E7=BC=BA=E5=B0=91retry=5Fcount=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=AC=A1=E6=95=B0=E9=85=8D=E7=BD=AE=20(#3584)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 李道甫 --- api/include/mk_common.h | 5 ++++- api/include/mk_proxyplayer.h | 27 +++++++++++++++++++++++++++ api/source/mk_common.cpp | 2 +- api/source/mk_proxyplayer.cpp | 24 ++++++++++++++++-------- 4 files changed, 48 insertions(+), 10 deletions(-) diff --git a/api/include/mk_common.h b/api/include/mk_common.h index b6f480cd..c2bf43bf 100755 --- a/api/include/mk_common.h +++ b/api/include/mk_common.h @@ -51,6 +51,9 @@ extern "C" { //输出日志到回调函数(mk_events::on_mk_log) #define LOG_CALLBACK (1 << 2) +//向下兼容 +#define mk_env_init1 mk_env_init2 + //回调user_data回调函数 typedef void(API_CALL *on_user_data_free)(void *user_data); @@ -104,7 +107,7 @@ API_EXPORT void API_CALL mk_stop_all_server(); * @param ssl ssl证书内容或路径,可以为NULL * @param ssl_pwd 证书密码,可以为NULL */ -API_EXPORT void API_CALL mk_env_init1(int thread_num, +API_EXPORT void API_CALL mk_env_init2(int thread_num, int log_level, int log_mask, const char *log_file_path, diff --git a/api/include/mk_proxyplayer.h b/api/include/mk_proxyplayer.h index e8d45b4a..1f66abc5 100644 --- a/api/include/mk_proxyplayer.h +++ b/api/include/mk_proxyplayer.h @@ -32,6 +32,7 @@ typedef struct mk_proxy_player_t *mk_proxy_player; */ API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create(const char *vhost, const char *app, const char *stream, int hls_enabled, int mp4_enabled); + /** * 创建一个代理播放器 * @param vhost 虚拟主机名,一般为__defaultVhost__ @@ -43,6 +44,32 @@ API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create(const char *vhost, co API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create2(const char *vhost, const char *app, const char *stream, mk_ini option); +/** + * 创建一个代理播放器 + * @param vhost 虚拟主机名,一般为__defaultVhost__ + * @param app 应用名 + * @param stream 流名 + * @param rtp_type rtsp播放方式:RTP_TCP = 0, RTP_UDP = 1, RTP_MULTICAST = 2 + * @param hls_enabled 是否生成hls + * @param mp4_enabled 是否生成mp4 + * @param retry_count 重试次数,当<0无限次重试 + * @return 对象指针 + */ +API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create3(const char *vhost, const char *app, const char *stream, int hls_enabled, int mp4_enabled, int retry_count); + + +/** + * 创建一个代理播放器 + * @param vhost 虚拟主机名,一般为__defaultVhost__ + * @param app 应用名 + * @param stream 流名 + * @param option ProtocolOption相关配置 + * @param retry_count 重试次数,当<0无限次重试 + * @return 对象指针 + */ +API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create4(const char *vhost, const char *app, const char *stream, mk_ini option, int retry_count); + + /** * 销毁代理播放器 * @param ctx 对象指针 diff --git a/api/source/mk_common.cpp b/api/source/mk_common.cpp index 48efeb1d..335cd467 100644 --- a/api/source/mk_common.cpp +++ b/api/source/mk_common.cpp @@ -83,7 +83,7 @@ API_EXPORT void API_CALL mk_stop_all_server(){ stopAllTcpServer(); } -API_EXPORT void API_CALL mk_env_init1(int thread_num, +API_EXPORT void API_CALL mk_env_init2(int thread_num, int log_level, int log_mask, const char *log_file_path, diff --git a/api/source/mk_proxyplayer.cpp b/api/source/mk_proxyplayer.cpp index 0b98e8fe..af73c013 100644 --- a/api/source/mk_proxyplayer.cpp +++ b/api/source/mk_proxyplayer.cpp @@ -16,22 +16,30 @@ using namespace toolkit; using namespace mediakit; API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create(const char *vhost, const char *app, const char *stream, int hls_enabled, int mp4_enabled) { + return mk_proxy_player_create3(vhost, app, stream, hls_enabled, mp4_enabled,-1); +} + +API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create2(const char *vhost, const char *app, const char *stream, mk_ini ini) { + return mk_proxy_player_create4(vhost, app, stream, ini, -1); +} + +API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create3(const char *vhost, const char *app, const char *stream, int hls_enabled, int mp4_enabled, int retry_count) { assert(vhost && app && stream); ProtocolOption option; option.enable_hls = hls_enabled; option.enable_mp4 = mp4_enabled; - PlayerProxy::Ptr *obj(new PlayerProxy::Ptr(new PlayerProxy(vhost, app, stream, option))); - return (mk_proxy_player) obj; -} - -API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create2(const char *vhost, const char *app, const char *stream, mk_ini ini) { - assert(vhost && app && stream); - ProtocolOption option(*((mINI *)ini)); - PlayerProxy::Ptr *obj(new PlayerProxy::Ptr(new PlayerProxy(vhost, app, stream, option))); + PlayerProxy::Ptr *obj(new PlayerProxy::Ptr(new PlayerProxy(vhost, app, stream, option, retry_count))); return (mk_proxy_player)obj; } +API_EXPORT mk_proxy_player API_CALL mk_proxy_player_create4(const char *vhost, const char *app, const char *stream, mk_ini ini, int retry_count) { + assert(vhost && app && stream); + ProtocolOption option(*((mINI *)ini)); + PlayerProxy::Ptr *obj(new PlayerProxy::Ptr(new PlayerProxy(vhost, app, stream, option, retry_count))); + return (mk_proxy_player)obj; +} + API_EXPORT void API_CALL mk_proxy_player_release(mk_proxy_player ctx) { assert(ctx); PlayerProxy::Ptr *obj = (PlayerProxy::Ptr *) ctx;