添加util相关函数,整理库文件名

This commit is contained in:
xiongziliang 2019-12-27 10:10:31 +08:00
parent 528e4fffe5
commit 5b43b2c004
25 changed files with 228 additions and 74 deletions

View File

@ -139,25 +139,6 @@ API_EXPORT uint16_t API_CALL mk_rtp_server_start(uint16_t port);
*/ */
API_EXPORT uint16_t API_CALL mk_shell_server_start(uint16_t port); API_EXPORT uint16_t API_CALL mk_shell_server_start(uint16_t port);
/**
*
* @param level ,0~4
* @param file __FILE__
* @param function __FUNCTION__
* @param line __LINE__
* @param fmt printf类型的格式控制字符串
* @param ...
*/
API_EXPORT void API_CALL mk_log_printf(int level, const char *file, const char *function, int line, const char *fmt, ...);
// 以下宏可以替换printf使用
#define log_trace(fmt,...) mk_log_printf(0,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_debug(fmt,...) mk_log_printf(1,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_info(fmt,...) mk_log_printf(2,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_warn(fmt,...) mk_log_printf(3,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_error(fmt,...) mk_log_printf(4,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_printf(lev,fmt,...) mk_log_printf(lev,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -27,8 +27,8 @@
#ifndef MK_EVENTS_H #ifndef MK_EVENTS_H
#define MK_EVENTS_H #define MK_EVENTS_H
#include "common.h" #include "mk_common.h"
#include "events_objects.h" #include "mk_events_objects.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -26,8 +26,8 @@
#ifndef MK_EVENT_OBJECTS_H #ifndef MK_EVENT_OBJECTS_H
#define MK_EVENT_OBJECTS_H #define MK_EVENT_OBJECTS_H
#include "common.h" #include "mk_common.h"
#include "tcp.h" #include "mk_tcp.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

View File

@ -27,8 +27,8 @@
#ifndef MK_HTTPCLIENT_H_ #ifndef MK_HTTPCLIENT_H_
#define MK_HTTPCLIENT_H_ #define MK_HTTPCLIENT_H_
#include "common.h" #include "mk_common.h"
#include "events_objects.h" #include "mk_events_objects.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -27,7 +27,7 @@
#ifndef MK_MEDIA_H_ #ifndef MK_MEDIA_H_
#define MK_MEDIA_H_ #define MK_MEDIA_H_
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -27,14 +27,15 @@
#ifndef MK_API_H_ #ifndef MK_API_H_
#define MK_API_H_ #define MK_API_H_
#include "common.h" #include "mk_common.h"
#include "httpclient.h" #include "mk_httpclient.h"
#include "media.h" #include "mk_media.h"
#include "proxyplayer.h" #include "mk_proxyplayer.h"
#include "recorder.h" #include "mk_recorder.h"
#include "player.h" #include "mk_player.h"
#include "pusher.h" #include "mk_pusher.h"
#include "events.h" #include "mk_events.h"
#include "tcp.h" #include "mk_tcp.h"
#include "mk_util.h"
#endif /* MK_API_H_ */ #endif /* MK_API_H_ */

View File

@ -27,7 +27,7 @@
#ifndef MK_PLAYER_H_ #ifndef MK_PLAYER_H_
#define MK_PLAYER_H_ #define MK_PLAYER_H_
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -27,7 +27,7 @@
#ifndef MK_PROXY_PLAYER_H_ #ifndef MK_PROXY_PLAYER_H_
#define MK_PROXY_PLAYER_H_ #define MK_PROXY_PLAYER_H_
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -28,7 +28,7 @@
#ifndef MK_PUSHER_H #ifndef MK_PUSHER_H
#define MK_PUSHER_H #define MK_PUSHER_H
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -27,7 +27,7 @@
#ifndef MK_RECORDER_API_H_ #ifndef MK_RECORDER_API_H_
#define MK_RECORDER_API_H_ #define MK_RECORDER_API_H_
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -27,7 +27,7 @@
#ifndef MK_TCP_H #ifndef MK_TCP_H
#define MK_TCP_H #define MK_TCP_H
#include "common.h" #include "mk_common.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

94
api/include/mk_util.h Normal file
View File

@ -0,0 +1,94 @@
/*
* MIT License
*
* Copyright (c) 2019 xiongziliang <771730766@qq.com>
*
* This file is part of ZLMediaKit(https://github.com/xiongziliang/ZLMediaKit).
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#ifndef MK_UTIL_H
#define MK_UTIL_H
#include <stdlib.h>
#include "mk_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
*
* @return 使free
*/
API_EXPORT char* API_CALL mk_util_get_exe_path();
/**
*
* @param relative_path ,null
* @return 使free
*/
API_EXPORT char* API_CALL mk_uitl_get_exe_dir(const char *relative_path);
/**
* unix标准的系统时间戳
* @return
*/
API_EXPORT uint64_t API_CALL mk_uitl_get_current_millisecond();
/**
*
* @param fmt %Y-%m-%d %H:%M:%S
* @return 使free
*/
API_EXPORT char* API_CALL mk_uitl_get_current_time_string(const char *fmt);
/**
*
* @param buf
* @param len
* @return 使free
*/
API_EXPORT char* API_CALL mk_uitl_hex_dump(const void *buf, int len);
///////////////////////////////////////////日志/////////////////////////////////////////////
/**
*
* @param level ,0~4
* @param file __FILE__
* @param function __FUNCTION__
* @param line __LINE__
* @param fmt printf类型的格式控制字符串
* @param ...
*/
API_EXPORT void API_CALL mk_log_printf(int level, const char *file, const char *function, int line, const char *fmt, ...);
// 以下宏可以替换printf使用
#define log_trace(fmt,...) mk_log_printf(0,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_debug(fmt,...) mk_log_printf(1,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_info(fmt,...) mk_log_printf(2,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_warn(fmt,...) mk_log_printf(3,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_error(fmt,...) mk_log_printf(4,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#define log_printf(lev,fmt,...) mk_log_printf(lev,__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
#ifdef __cplusplus
}
#endif
#endif //MK_UTIL_H

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "common.h" #include "mk_common.h"
#include <stdarg.h> #include <stdarg.h>
#include <unordered_map> #include <unordered_map>
#include "Util/logger.h" #include "Util/logger.h"
@ -206,16 +206,3 @@ API_EXPORT uint16_t API_CALL mk_shell_server_start(uint16_t port){
return 0; return 0;
} }
} }
API_EXPORT void API_CALL mk_log_printf(int level, const char *file, const char *function, int line, const char *fmt, ...) {
assert(file && function && fmt);
LogContextCapturer info(Logger::Instance(), (LogLevel) level, file, function, line);
va_list pArg;
va_start(pArg, fmt);
char buf[4096];
int n = vsprintf(buf, fmt, pArg);
buf[n] = '\0';
va_end(pArg);
info << buf;
}

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "events.h" #include "mk_events.h"
#include "Common/config.h" #include "Common/config.h"
#include "Common/MediaSource.h" #include "Common/MediaSource.h"
#include "Http/HttpSession.h" #include "Http/HttpSession.h"

View File

@ -25,7 +25,7 @@
*/ */
#include <assert.h> #include <assert.h>
#include "events_objects.h" #include "mk_events_objects.h"
#include "Common/config.h" #include "Common/config.h"
#include "Record/MP4Recorder.h" #include "Record/MP4Recorder.h"
#include "Network/TcpSession.h" #include "Network/TcpSession.h"

View File

@ -23,7 +23,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE. * SOFTWARE.
*/ */
#include "httpclient.h" #include "mk_httpclient.h"
#include "Util/logger.h" #include "Util/logger.h"
#include "Http/HttpDownloader.h" #include "Http/HttpDownloader.h"

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "media.h" #include "mk_media.h"
#include "Util/logger.h" #include "Util/logger.h"
#include "Common/Device.h" #include "Common/Device.h"

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "player.h" #include "mk_player.h"
#include "Util/logger.h" #include "Util/logger.h"
#include "Player/MediaPlayer.h" #include "Player/MediaPlayer.h"
using namespace std; using namespace std;

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "proxyplayer.h" #include "mk_proxyplayer.h"
#include "Player/PlayerProxy.h" #include "Player/PlayerProxy.h"
using namespace toolkit; using namespace toolkit;

View File

@ -25,7 +25,7 @@
*/ */
#include <assert.h> #include <assert.h>
#include "pusher.h" #include "mk_pusher.h"
#include "Pusher/MediaPusher.h" #include "Pusher/MediaPusher.h"
using namespace mediakit; using namespace mediakit;

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "recorder.h" #include "mk_recorder.h"
#include "Rtmp/FlvMuxer.h" #include "Rtmp/FlvMuxer.h"
#include "Record/Recorder.h" #include "Record/Recorder.h"
using namespace toolkit; using namespace toolkit;

View File

@ -24,7 +24,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include "tcp.h" #include "mk_tcp.h"
#include "Network/TcpSession.h" #include "Network/TcpSession.h"
#include "Network/TcpClient.h" #include "Network/TcpClient.h"
#include "Http/WebSocketClient.h" #include "Http/WebSocketClient.h"

69
api/source/mk_util.cpp Normal file
View File

@ -0,0 +1,69 @@
/*
* MIT License
*
* Copyright (c) 2019 xiongziliang <771730766@qq.com>
*
* This file is part of ZLMediaKit(https://github.com/xiongziliang/ZLMediaKit).
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include "mk_util.h"
#include <stdarg.h>
#include "Util/logger.h"
using namespace std;
using namespace toolkit;
API_EXPORT char* API_CALL mk_util_get_exe_path(){
return strdup(exePath().data());
}
API_EXPORT char* API_CALL mk_uitl_get_exe_dir(const char *relative_path){
if(relative_path){
return strdup((exeDir() + relative_path).data());
}
return strdup(exeDir().data());
}
API_EXPORT uint64_t API_CALL mk_uitl_get_current_millisecond(){
return getCurrentMillisecond();
}
API_EXPORT char* API_CALL mk_uitl_get_current_time_string(const char *fmt){
assert(fmt);
return strdup(getTimeStr(fmt).data());
}
API_EXPORT char* API_CALL mk_uitl_hex_dump(const void *buf, int len){
assert(buf && len > 0);
return strdup(hexdump(buf,len).data());
}
API_EXPORT void API_CALL mk_log_printf(int level, const char *file, const char *function, int line, const char *fmt, ...) {
assert(file && function && fmt);
LogContextCapturer info(Logger::Instance(), (LogLevel) level, file, function, line);
va_list pArg;
va_start(pArg, fmt);
char buf[4096];
int n = vsprintf(buf, fmt, pArg);
buf[n] = '\0';
va_end(pArg);
info << buf;
}

View File

@ -26,7 +26,7 @@
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include "mediakit.h" #include "mk_mediakit.h"
#ifdef _WIN32 #ifdef _WIN32
#include "windows.h" #include "windows.h"
@ -396,12 +396,24 @@ static void s_on_exit(int sig){
flag = 0; flag = 0;
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
char ini_path[2048] = {0}; char *ini_path = mk_uitl_get_exe_dir("c_api.ini");
strcpy(ini_path,argv[0]); char *ssl_path = mk_uitl_get_exe_dir("ssl.p12");
strcat(ini_path,".ini");
mk_config config = {
.ini = ini_path,
.ini_is_path = 1,
.log_level = 0,
.ssl = ssl_path,
.ssl_is_path = 1,
.ssl_pwd = NULL,
.thread_num = 0
};
mk_env_init(&config);
free(ini_path);
free(ssl_path);
mk_env_init1(0, 0, 1, ini_path, 0, NULL, NULL);
mk_http_server_start(80, 0); mk_http_server_start(80, 0);
mk_http_server_start(443, 1);
mk_rtsp_server_start(554, 0); mk_rtsp_server_start(554, 0);
mk_rtmp_server_start(1935, 0); mk_rtmp_server_start(1935, 0);
mk_shell_server_start(9000); mk_shell_server_start(9000);
@ -424,7 +436,6 @@ int main(int argc, char *argv[]) {
}; };
mk_events_listen(&events); mk_events_listen(&events);
signal(SIGINT, s_on_exit );// 设置退出信号 signal(SIGINT, s_on_exit );// 设置退出信号
while (flag) { while (flag) {
#ifdef _WIN32 #ifdef _WIN32

View File

@ -28,7 +28,7 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "mediakit.h" #include "mk_mediakit.h"
#ifdef _WIN32 #ifdef _WIN32
#include "windows.h" #include "windows.h"
#else #else
@ -36,6 +36,7 @@
#endif #endif
#define LOG_LEV 4 #define LOG_LEV 4
//修改此宏,可以选择协议类型
#define TCP_TYPE mk_type_ws #define TCP_TYPE mk_type_ws
static int flag = 1; static int flag = 1;
@ -194,11 +195,21 @@ void test_client(){
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
char ini_path[2048] = {0}; char *ini_path = mk_uitl_get_exe_dir("c_api.ini");
strcpy(ini_path,argv[0]); char *ssl_path = mk_uitl_get_exe_dir("ssl.p12");
strcat(ini_path,".ini");
mk_env_init1(0, 0, 1, ini_path, 0, NULL, NULL); mk_config config = {
.ini = ini_path,
.ini_is_path = 1,
.log_level = 0,
.ssl = ssl_path,
.ssl_is_path = 1,
.ssl_pwd = NULL,
.thread_num = 0
};
mk_env_init(&config);
free(ini_path);
free(ssl_path);
test_server(); test_server();
test_client(); test_client();