Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
8859e89a
Commit
8859e89a
authored
Apr 22, 2020
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善 c api
parent
1d5c6cb1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
56 行增加
和
16 行删除
+56
-16
api/include/mk_common.h
+16
-7
api/include/mk_events_objects.h
+4
-0
api/source/mk_common.cpp
+21
-8
api/source/mk_events_objects.cpp
+15
-1
没有找到文件。
api/include/mk_common.h
查看文件 @
8859e89a
...
@@ -40,8 +40,13 @@ extern "C" {
...
@@ -40,8 +40,13 @@ extern "C" {
typedef
struct
{
typedef
struct
{
// 线程数
// 线程数
int
thread_num
;
int
thread_num
;
// 日志级别,支持0~4
// 日志级别,支持0~4
int
log_level
;
int
log_level
;
//文件日志保存路径,路径可以不存在(内部可以创建文件夹),设置为NULL关闭日志输出至文件
const
char
*
log_file_path
;
//文件日志保存天数,设置为0关闭日志文件
int
log_file_days
;
// 配置文件是内容还是路径
// 配置文件是内容还是路径
int
ini_is_path
;
int
ini_is_path
;
...
@@ -71,19 +76,23 @@ API_EXPORT void API_CALL mk_stop_all_server();
...
@@ -71,19 +76,23 @@ API_EXPORT void API_CALL mk_stop_all_server();
* 基础类型参数版本的mk_env_init,为了方便其他语言调用
* 基础类型参数版本的mk_env_init,为了方便其他语言调用
* @param thread_num 线程数
* @param thread_num 线程数
* @param log_level 日志级别,支持0~4
* @param log_level 日志级别,支持0~4
* @param log_file_path 文件日志保存路径,路径可以不存在(内部可以创建文件夹),设置为NULL关闭日志输出至文件
* @param log_file_days 文件日志保存天数,设置为0关闭日志文件
* @param ini_is_path 配置文件是内容还是路径
* @param ini_is_path 配置文件是内容还是路径
* @param ini 配置文件内容或路径,可以为NULL,如果该文件不存在,那么将导出默认配置至该文件
* @param ini 配置文件内容或路径,可以为NULL,如果该文件不存在,那么将导出默认配置至该文件
* @param ssl_is_path ssl证书是内容还是路径
* @param ssl_is_path ssl证书是内容还是路径
* @param ssl ssl证书内容或路径,可以为NULL
* @param ssl ssl证书内容或路径,可以为NULL
* @param ssl_pwd 证书密码,可以为NULL
* @param ssl_pwd 证书密码,可以为NULL
*/
*/
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
int
log_level
,
int
log_level
,
int
ini_is_path
,
const
char
*
log_file_path
,
const
char
*
ini
,
int
log_file_days
,
int
ssl_is_path
,
int
ini_is_path
,
const
char
*
ssl
,
const
char
*
ini
,
const
char
*
ssl_pwd
);
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
);
/**
/**
* 设置配置项
* 设置配置项
...
...
api/include/mk_events_objects.h
查看文件 @
8859e89a
...
@@ -73,6 +73,10 @@ API_EXPORT const char* API_CALL mk_media_info_get_vhost(const mk_media_info ctx)
...
@@ -73,6 +73,10 @@ API_EXPORT const char* API_CALL mk_media_info_get_vhost(const mk_media_info ctx)
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_app
(
const
mk_media_info
ctx
);
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_app
(
const
mk_media_info
ctx
);
//MediaInfo::_streamid
//MediaInfo::_streamid
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_stream
(
const
mk_media_info
ctx
);
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_stream
(
const
mk_media_info
ctx
);
//MediaInfo::_host
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_host
(
const
mk_media_info
ctx
);
//MediaInfo::_port
API_EXPORT
uint16_t
API_CALL
mk_media_info_get_port
(
const
mk_media_info
ctx
);
///////////////////////////////////////////MediaSource/////////////////////////////////////////////
///////////////////////////////////////////MediaSource/////////////////////////////////////////////
...
...
api/source/mk_common.cpp
100755 → 100644
查看文件 @
8859e89a
...
@@ -41,6 +41,8 @@ API_EXPORT void API_CALL mk_env_init(const mk_config *cfg) {
...
@@ -41,6 +41,8 @@ API_EXPORT void API_CALL mk_env_init(const mk_config *cfg) {
assert
(
cfg
);
assert
(
cfg
);
mk_env_init1
(
cfg
->
thread_num
,
mk_env_init1
(
cfg
->
thread_num
,
cfg
->
log_level
,
cfg
->
log_level
,
cfg
->
log_file_path
,
cfg
->
log_file_days
,
cfg
->
ini_is_path
,
cfg
->
ini_is_path
,
cfg
->
ini
,
cfg
->
ini
,
cfg
->
ssl_is_path
,
cfg
->
ssl_is_path
,
...
@@ -61,18 +63,29 @@ API_EXPORT void API_CALL mk_stop_all_server(){
...
@@ -61,18 +63,29 @@ API_EXPORT void API_CALL mk_stop_all_server(){
stopAllTcpServer
();
stopAllTcpServer
();
}
}
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
API_EXPORT
void
API_CALL
mk_env_init1
(
int
thread_num
,
int
log_level
,
int
log_level
,
int
ini_is_path
,
const
char
*
log_file_path
,
const
char
*
ini
,
int
log_file_days
,
int
ssl_is_path
,
int
ini_is_path
,
const
char
*
ssl
,
const
char
*
ini
,
const
char
*
ssl_pwd
)
{
int
ssl_is_path
,
const
char
*
ssl
,
const
char
*
ssl_pwd
)
{
//确保只初始化一次
static
onceToken
token
([
&
]()
{
static
onceToken
token
([
&
]()
{
//控制台日志
Logger
::
Instance
().
add
(
std
::
make_shared
<
ConsoleChannel
>
(
"console"
,
(
LogLevel
)
log_level
));
Logger
::
Instance
().
add
(
std
::
make_shared
<
ConsoleChannel
>
(
"console"
,
(
LogLevel
)
log_level
));
if
(
log_file_path
&&
log_file_days
){
//日志文件
auto
channel
=
std
::
make_shared
<
FileChannel
>
(
"FileChannel"
,
File
::
absolutePath
(
log_file_path
,
""
),
(
LogLevel
)
log_level
);
Logger
::
Instance
().
add
(
channel
);
}
//异步日志线程
Logger
::
Instance
().
setWriter
(
std
::
make_shared
<
AsyncLogWriter
>
());
Logger
::
Instance
().
setWriter
(
std
::
make_shared
<
AsyncLogWriter
>
());
//设置线程数
EventPollerPool
::
setPoolSize
(
thread_num
);
EventPollerPool
::
setPoolSize
(
thread_num
);
WorkThreadPool
::
setPoolSize
(
thread_num
);
WorkThreadPool
::
setPoolSize
(
thread_num
);
...
...
api/source/mk_events_objects.cpp
查看文件 @
8859e89a
...
@@ -12,7 +12,6 @@
...
@@ -12,7 +12,6 @@
#include "mk_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 "Http/HttpSession.h"
#include "Http/HttpSession.h"
#include "Http/HttpBody.h"
#include "Http/HttpBody.h"
#include "Http/HttpClient.h"
#include "Http/HttpClient.h"
...
@@ -137,16 +136,31 @@ API_EXPORT const char* API_CALL mk_media_info_get_schema(const mk_media_info ctx
...
@@ -137,16 +136,31 @@ API_EXPORT const char* API_CALL mk_media_info_get_schema(const mk_media_info ctx
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
return
info
->
_schema
.
c_str
();
return
info
->
_schema
.
c_str
();
}
}
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_vhost
(
const
mk_media_info
ctx
){
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_vhost
(
const
mk_media_info
ctx
){
assert
(
ctx
);
assert
(
ctx
);
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
return
info
->
_vhost
.
c_str
();
return
info
->
_vhost
.
c_str
();
}
}
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_host
(
const
mk_media_info
ctx
){
assert
(
ctx
);
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
return
info
->
_host
.
c_str
();
}
API_EXPORT
uint16_t
API_CALL
mk_media_info_get_port
(
const
mk_media_info
ctx
){
assert
(
ctx
);
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
return
std
::
stoi
(
info
->
_port
);
}
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_app
(
const
mk_media_info
ctx
){
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_app
(
const
mk_media_info
ctx
){
assert
(
ctx
);
assert
(
ctx
);
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
return
info
->
_app
.
c_str
();
return
info
->
_app
.
c_str
();
}
}
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_stream
(
const
mk_media_info
ctx
){
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_stream
(
const
mk_media_info
ctx
){
assert
(
ctx
);
assert
(
ctx
);
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
MediaInfo
*
info
=
(
MediaInfo
*
)
ctx
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论