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
e6a19c4e
Commit
e6a19c4e
authored
a year ago
by
xia-chu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复c api录制相关接口线程安全问题
parent
97859a99
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
11 行增加
和
7 行删除
+11
-7
api/include/mk_recorder.h
+2
-2
api/source/mk_recorder.cpp
+9
-5
没有找到文件。
api/include/mk_recorder.h
查看文件 @
e6a19c4e
...
...
@@ -58,7 +58,7 @@ API_EXPORT int API_CALL mk_recorder_is_recording(int type, const char *vhost, co
/**
* 开始录制
* @param type 0:hls
,1:MP4
* @param type 0:hls
-ts,1:MP4,2:hls-fmp4,3:http-fmp4,4:http-ts
* @param vhost 虚拟主机
* @param app 应用名
* @param stream 流id
...
...
@@ -70,7 +70,7 @@ API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const cha
/**
* 停止录制
* @param type 0:hls
,1:MP4
* @param type 0:hls
-ts,1:MP4,2:hls-fmp4,3:http-fmp4,4:http-ts
* @param vhost 虚拟主机
* @param app 应用名
* @param stream 流id
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_recorder.cpp
查看文件 @
e6a19c4e
...
...
@@ -47,21 +47,25 @@ static inline bool isRecording(Recorder::type type, const string &vhost, const s
return
src
->
isRecording
(
type
);
}
static
inline
bool
startRecord
(
Recorder
::
type
type
,
const
string
&
vhost
,
const
string
&
app
,
const
string
&
stream_id
,
const
string
&
customized_path
,
size_t
max_second
)
{
static
inline
bool
startRecord
(
Recorder
::
type
type
,
const
string
&
vhost
,
const
string
&
app
,
const
string
&
stream_id
,
const
string
&
customized_path
,
size_t
max_second
)
{
auto
src
=
MediaSource
::
find
(
vhost
,
app
,
stream_id
);
if
(
!
src
)
{
WarnL
<<
"未找到相关的MediaSource,startRecord失败:"
<<
vhost
<<
"/"
<<
app
<<
"/"
<<
stream_id
;
return
false
;
}
return
src
->
setupRecord
(
type
,
true
,
customized_path
,
max_second
);
bool
ret
;
src
->
getOwnerPoller
()
->
sync
([
&
]()
{
ret
=
src
->
setupRecord
(
type
,
true
,
customized_path
,
max_second
);
});
return
ret
;
}
static
inline
bool
stopRecord
(
Recorder
::
type
type
,
const
string
&
vhost
,
const
string
&
app
,
const
string
&
stream_id
){
static
inline
bool
stopRecord
(
Recorder
::
type
type
,
const
string
&
vhost
,
const
string
&
app
,
const
string
&
stream_id
)
{
auto
src
=
MediaSource
::
find
(
vhost
,
app
,
stream_id
);
if
(
!
src
)
{
if
(
!
src
)
{
return
false
;
}
return
src
->
setupRecord
(
type
,
false
,
""
,
0
);
bool
ret
;
src
->
getOwnerPoller
()
->
sync
([
&
]()
{
ret
=
src
->
setupRecord
(
type
,
false
,
""
,
0
);
});
return
ret
;
}
API_EXPORT
int
API_CALL
mk_recorder_is_recording
(
int
type
,
const
char
*
vhost
,
const
char
*
app
,
const
char
*
stream
){
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论