Commit 9dc1f3a8 by xiongziliang

修改成c源码

parent 3f9f9c4d
...@@ -82,7 +82,7 @@ API_EXPORT int API_CALL mk_recorder_status(int type, const char *vhost, const ch ...@@ -82,7 +82,7 @@ API_EXPORT int API_CALL mk_recorder_status(int type, const char *vhost, const ch
* @param continue_record 流注销时是否继续等待录制还是立即停止录制 * @param continue_record 流注销时是否继续等待录制还是立即停止录制
* @return 0代表成功,负数代表失败 * @return 0代表成功,负数代表失败
*/ */
API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const char *app, const char *stream,bool wait_for_record, bool continue_record); API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const char *app, const char *stream,int wait_for_record, int continue_record);
/** /**
* 停止录制 * 停止录制
......
...@@ -57,7 +57,7 @@ API_EXPORT int API_CALL mk_recorder_status(int type, const char *vhost, const ch ...@@ -57,7 +57,7 @@ API_EXPORT int API_CALL mk_recorder_status(int type, const char *vhost, const ch
return Recorder::getRecordStatus((Recorder::type)type,vhost,app,stream); return Recorder::getRecordStatus((Recorder::type)type,vhost,app,stream);
} }
API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const char *app, const char *stream,bool wait_for_record, bool continue_record){ API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const char *app, const char *stream,int wait_for_record, int continue_record){
assert(vhost && app && stream); assert(vhost && app && stream);
return Recorder::startRecord((Recorder::type)type,vhost,app,stream,wait_for_record,continue_record); return Recorder::startRecord((Recorder::type)type,vhost,app,stream,wait_for_record,continue_record);
} }
......
...@@ -24,9 +24,8 @@ ...@@ -24,9 +24,8 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include <csignal> #include <signal.h>
#include <cstring> #include <string.h>
#include <string>
#include "mediakit.h" #include "mediakit.h"
#ifdef _WIN32 #ifdef _WIN32
...@@ -37,8 +36,6 @@ ...@@ -37,8 +36,6 @@
#endif #endif
using namespace std;
#define LOG_LEV 4 #define LOG_LEV 4
/** /**
...@@ -80,7 +77,7 @@ void API_CALL on_mk_media_publish(const mk_media_info url_info, ...@@ -80,7 +77,7 @@ void API_CALL on_mk_media_publish(const mk_media_info url_info,
mk_media_info_get_params(url_info)); mk_media_info_get_params(url_info));
//允许推流,并且允许转rtxp/hls/mp4 //允许推流,并且允许转rtxp/hls/mp4
mk_publish_auth_invoker_do(invoker, nullptr, 1, 1, true); mk_publish_auth_invoker_do(invoker, NULL, 1, 1, 1);
} }
/** /**
...@@ -108,7 +105,7 @@ void API_CALL on_mk_media_play(const mk_media_info url_info, ...@@ -108,7 +105,7 @@ void API_CALL on_mk_media_play(const mk_media_info url_info,
mk_media_info_get_params(url_info)); mk_media_info_get_params(url_info));
//允许播放 //允许播放
mk_auth_invoker_do(invoker, nullptr); mk_auth_invoker_do(invoker, NULL);
} }
/** /**
...@@ -176,12 +173,12 @@ void API_CALL on_mk_http_request(const mk_parser parser, ...@@ -176,12 +173,12 @@ void API_CALL on_mk_http_request(const mk_parser parser,
const char *url = mk_parser_get_url(parser); const char *url = mk_parser_get_url(parser);
if(strcmp(url,"/api/test") != 0){ if(strcmp(url,"/api/test") != 0){
*consumed = false; *consumed = 0;
return; return;
} }
//只拦截api: /api/test //只拦截api: /api/test
*consumed = true; *consumed = 1;
const char *response_header[] = {"Content-Type","text/html",NULL}; const char *response_header[] = {"Content-Type","text/html",NULL};
const char *content = const char *content =
"<html>" "<html>"
...@@ -230,7 +227,7 @@ void API_CALL on_mk_http_access(const mk_parser parser, ...@@ -230,7 +227,7 @@ void API_CALL on_mk_http_access(const mk_parser parser,
mk_parser_get_content(parser)); mk_parser_get_content(parser));
//有访问权限,每次访问文件都需要鉴权 //有访问权限,每次访问文件都需要鉴权
mk_http_access_path_invoker_do(invoker, nullptr, nullptr, 0); mk_http_access_path_invoker_do(invoker, NULL, NULL, 0);
} }
/** /**
...@@ -291,12 +288,12 @@ void API_CALL on_mk_rtsp_get_realm(const mk_media_info url_info, ...@@ -291,12 +288,12 @@ void API_CALL on_mk_rtsp_get_realm(const mk_media_info url_info,
} }
/** /**
* 请求认证用户密码事件,user_name为用户名,must_no_encrypt如果为true,则必须提供明文密码(因为此时是base64认证方式),否则会导致认证失败 * 请求认证用户密码事件,user_name为用户名,must_no_encrypt如果为1,则必须提供明文密码(因为此时是base64认证方式),否则会导致认证失败
* 获取到密码后请调用invoker并输入对应类型的密码和密码类型,invoker执行时会匹配密码 * 获取到密码后请调用invoker并输入对应类型的密码和密码类型,invoker执行时会匹配密码
* @param url_info 请求rtsp url相关信息 * @param url_info 请求rtsp url相关信息
* @param realm rtsp认证realm * @param realm rtsp认证realm
* @param user_name rtsp认证用户名 * @param user_name rtsp认证用户名
* @param must_no_encrypt 如果为true,则必须提供明文密码(因为此时是base64认证方式),否则会导致认证失败 * @param must_no_encrypt 如果为1,则必须提供明文密码(因为此时是base64认证方式),否则会导致认证失败
* @param invoker 执行invoker返回rtsp专属认证的密码 * @param invoker 执行invoker返回rtsp专属认证的密码
* @param sender rtsp客户端信息 * @param sender rtsp客户端信息
*/ */
...@@ -323,7 +320,7 @@ void API_CALL on_mk_rtsp_auth(const mk_media_info url_info, ...@@ -323,7 +320,7 @@ void API_CALL on_mk_rtsp_auth(const mk_media_info url_info,
realm,user_name,(int)must_no_encrypt); realm,user_name,(int)must_no_encrypt);
//rtsp播放用户名跟密码一致 //rtsp播放用户名跟密码一致
mk_rtsp_auth_invoker_do(invoker,false,user_name); mk_rtsp_auth_invoker_do(invoker,0,user_name);
} }
/** /**
...@@ -368,7 +365,7 @@ void API_CALL on_mk_shell_login(const char *user_name, ...@@ -368,7 +365,7 @@ void API_CALL on_mk_shell_login(const char *user_name,
mk_tcp_session_peer_port(sender), mk_tcp_session_peer_port(sender),
user_name, passwd); user_name, passwd);
//允许登录shell //允许登录shell
mk_auth_invoker_do(invoker, nullptr); mk_auth_invoker_do(invoker, NULL);
} }
/** /**
...@@ -392,11 +389,19 @@ void API_CALL on_mk_flow_report(const mk_media_info url_info, ...@@ -392,11 +389,19 @@ void API_CALL on_mk_flow_report(const mk_media_info url_info,
(int)total_bytes, (int)total_seconds, (int)is_player); (int)total_bytes, (int)total_seconds, (int)is_player);
} }
static int flag = 1;
static void on_exit(int sig){
flag = 0;
}
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
mk_env_init1(0, 0, 1, (string(argv[0]) + ".ini").data(), 0, nullptr, nullptr); char ini_path[2048] = {0};
mk_http_server_start(80, false); strcpy(ini_path,argv[0]);
mk_rtsp_server_start(554, false); strcat(ini_path,".ini");
mk_rtmp_server_start(1935, false);
mk_env_init1(0, 0, 1, ini_path, 0, NULL, NULL);
mk_http_server_start(80, 0);
mk_rtsp_server_start(554, 0);
mk_rtmp_server_start(1935, 0);
mk_shell_server_start(9000); mk_shell_server_start(9000);
mk_rtp_server_start(10000); mk_rtp_server_start(10000);
...@@ -417,8 +422,8 @@ int main(int argc, char *argv[]) { ...@@ -417,8 +422,8 @@ int main(int argc, char *argv[]) {
}; };
mk_events_listen(&events); mk_events_listen(&events);
static bool flag = true;
signal(SIGINT, [](int) { flag = false; });// 设置退出信号 signal(SIGINT, on_exit );// 设置退出信号
while (flag) { while (flag) {
#ifdef _WIN32 #ifdef _WIN32
Sleep(1000); Sleep(1000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论