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
dc8508c5
Commit
dc8508c5
authored
2 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善c sdk对象描述元信息,防止隐式指针转换错误
void* 类型指针很容易存在隐式转换错误,用户无法察觉
parent
8f108395
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
94 行增加
和
92 行删除
+94
-92
api/include/mk_events_objects.h
+12
-11
api/include/mk_frame.h
+1
-1
api/include/mk_h264_splitter.h
+1
-1
api/include/mk_httpclient.h
+2
-2
api/include/mk_media.h
+1
-1
api/include/mk_player.h
+1
-1
api/include/mk_proxyplayer.h
+1
-1
api/include/mk_pusher.h
+1
-1
api/include/mk_recorder.h
+1
-1
api/include/mk_rtp_server.h
+1
-1
api/include/mk_tcp.h
+5
-5
api/include/mk_thread.h
+4
-4
api/include/mk_track.h
+1
-1
api/include/mk_transcode.h
+3
-3
api/include/mk_util.h
+1
-1
api/source/mk_events_objects.cpp
+12
-12
api/source/mk_frame.cpp
+4
-4
api/source/mk_httpclient.cpp
+1
-1
api/source/mk_media.cpp
+3
-2
api/source/mk_player.cpp
+1
-1
api/source/mk_pusher.cpp
+2
-2
api/source/mk_recorder.cpp
+1
-1
api/source/mk_rtp_server.cpp
+1
-1
api/source/mk_tcp.cpp
+12
-12
api/source/mk_thread.cpp
+8
-8
api/source/mk_track.cpp
+3
-3
api/source/mk_transcode.cpp
+7
-7
api/source/mk_util.cpp
+2
-2
api/tests/pusher.c
+1
-1
没有找到文件。
api/include/mk_events_objects.h
查看文件 @
dc8508c5
...
@@ -18,7 +18,7 @@ extern "C" {
...
@@ -18,7 +18,7 @@ extern "C" {
///////////////////////////////////////////MP4Info/////////////////////////////////////////////
///////////////////////////////////////////MP4Info/////////////////////////////////////////////
//MP4Info对象的C映射
//MP4Info对象的C映射
typedef
void
*
mk_mp4_info
;
typedef
struct
mk_mp4_info_t
*
mk_mp4_info
;
// GMT 标准时间,单位秒
// GMT 标准时间,单位秒
API_EXPORT
uint64_t
API_CALL
mk_mp4_info_get_start_time
(
const
mk_mp4_info
ctx
);
API_EXPORT
uint64_t
API_CALL
mk_mp4_info_get_start_time
(
const
mk_mp4_info
ctx
);
// 录像长度,单位秒
// 录像长度,单位秒
...
@@ -42,7 +42,7 @@ API_EXPORT const char* API_CALL mk_mp4_info_get_stream(const mk_mp4_info ctx);
...
@@ -42,7 +42,7 @@ API_EXPORT const char* API_CALL mk_mp4_info_get_stream(const mk_mp4_info ctx);
///////////////////////////////////////////Parser/////////////////////////////////////////////
///////////////////////////////////////////Parser/////////////////////////////////////////////
//Parser对象的C映射
//Parser对象的C映射
typedef
void
*
mk_parser
;
typedef
struct
mk_parser_t
*
mk_parser
;
//Parser::Method(),获取命令字,譬如GET/POST
//Parser::Method(),获取命令字,譬如GET/POST
API_EXPORT
const
char
*
API_CALL
mk_parser_get_method
(
const
mk_parser
ctx
);
API_EXPORT
const
char
*
API_CALL
mk_parser_get_method
(
const
mk_parser
ctx
);
//Parser::Url(),获取HTTP的访问url(不包括?后面的参数)
//Parser::Url(),获取HTTP的访问url(不包括?后面的参数)
...
@@ -60,7 +60,7 @@ API_EXPORT const char* API_CALL mk_parser_get_content(const mk_parser ctx, size_
...
@@ -60,7 +60,7 @@ API_EXPORT const char* API_CALL mk_parser_get_content(const mk_parser ctx, size_
///////////////////////////////////////////MediaInfo/////////////////////////////////////////////
///////////////////////////////////////////MediaInfo/////////////////////////////////////////////
//MediaInfo对象的C映射
//MediaInfo对象的C映射
typedef
void
*
mk_media_info
;
typedef
struct
mk_media_info_t
*
mk_media_info
;
//MediaInfo::_param_strs
//MediaInfo::_param_strs
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_params
(
const
mk_media_info
ctx
);
API_EXPORT
const
char
*
API_CALL
mk_media_info_get_params
(
const
mk_media_info
ctx
);
//MediaInfo::_schema
//MediaInfo::_schema
...
@@ -79,7 +79,7 @@ API_EXPORT uint16_t API_CALL mk_media_info_get_port(const mk_media_info ctx);
...
@@ -79,7 +79,7 @@ API_EXPORT uint16_t API_CALL mk_media_info_get_port(const mk_media_info ctx);
///////////////////////////////////////////MediaSource/////////////////////////////////////////////
///////////////////////////////////////////MediaSource/////////////////////////////////////////////
//MediaSource对象的C映射
//MediaSource对象的C映射
typedef
void
*
mk_media_source
;
typedef
struct
mk_media_source_t
*
mk_media_source
;
//查找MediaSource的回调函数
//查找MediaSource的回调函数
typedef
void
(
API_CALL
*
on_mk_media_source_find_cb
)(
void
*
user_data
,
const
mk_media_source
ctx
);
typedef
void
(
API_CALL
*
on_mk_media_source_find_cb
)(
void
*
user_data
,
const
mk_media_source
ctx
);
...
@@ -138,7 +138,7 @@ API_EXPORT void API_CALL mk_media_source_for_each(void *user_data, on_mk_media_s
...
@@ -138,7 +138,7 @@ API_EXPORT void API_CALL mk_media_source_for_each(void *user_data, on_mk_media_s
///////////////////////////////////////////HttpBody/////////////////////////////////////////////
///////////////////////////////////////////HttpBody/////////////////////////////////////////////
//HttpBody对象的C映射
//HttpBody对象的C映射
typedef
void
*
mk_http_body
;
typedef
struct
mk_http_body_t
*
mk_http_body
;
/**
/**
* 生成HttpStringBody
* 生成HttpStringBody
* @param str 字符串指针
* @param str 字符串指针
...
@@ -173,7 +173,7 @@ API_EXPORT void API_CALL mk_http_body_release(mk_http_body ctx);
...
@@ -173,7 +173,7 @@ API_EXPORT void API_CALL mk_http_body_release(mk_http_body ctx);
///////////////////////////////////////////HttpResponseInvoker/////////////////////////////////////////////
///////////////////////////////////////////HttpResponseInvoker/////////////////////////////////////////////
//HttpSession::HttpResponseInvoker对象的C映射
//HttpSession::HttpResponseInvoker对象的C映射
typedef
void
*
mk_http_response_invoker
;
typedef
struct
mk_http_response_invoker_t
*
mk_http_response_invoker
;
/**
/**
* HttpSession::HttpResponseInvoker(const string &codeOut, const StrCaseMap &headerOut, const HttpBody::Ptr &body);
* HttpSession::HttpResponseInvoker(const string &codeOut, const StrCaseMap &headerOut, const HttpBody::Ptr &body);
...
@@ -219,7 +219,8 @@ API_EXPORT void API_CALL mk_http_response_invoker_clone_release(const mk_http_re
...
@@ -219,7 +219,8 @@ API_EXPORT void API_CALL mk_http_response_invoker_clone_release(const mk_http_re
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
///////////////////////////////////////////HttpAccessPathInvoker/////////////////////////////////////////////
//HttpSession::HttpAccessPathInvoker对象的C映射
//HttpSession::HttpAccessPathInvoker对象的C映射
typedef
void
*
mk_http_access_path_invoker
;
typedef
struct
mk_http_access_path_invoker_t
*
mk_http_access_path_invoker
;
/**
/**
* HttpSession::HttpAccessPathInvoker(const string &errMsg,const string &accessPath, int cookieLifeSecond);
* HttpSession::HttpAccessPathInvoker(const string &errMsg,const string &accessPath, int cookieLifeSecond);
* @param err_msg 如果为空,则代表鉴权通过,否则为错误提示,可以为null
* @param err_msg 如果为空,则代表鉴权通过,否则为错误提示,可以为null
...
@@ -244,7 +245,7 @@ API_EXPORT void API_CALL mk_http_access_path_invoker_clone_release(const mk_http
...
@@ -244,7 +245,7 @@ API_EXPORT void API_CALL mk_http_access_path_invoker_clone_release(const mk_http
///////////////////////////////////////////RtspSession::onGetRealm/////////////////////////////////////////////
///////////////////////////////////////////RtspSession::onGetRealm/////////////////////////////////////////////
//RtspSession::onGetRealm对象的C映射
//RtspSession::onGetRealm对象的C映射
typedef
void
*
mk_rtsp_get_realm_invoker
;
typedef
struct
mk_rtsp_get_realm_invoker_t
*
mk_rtsp_get_realm_invoker
;
/**
/**
* 执行RtspSession::onGetRealm
* 执行RtspSession::onGetRealm
* @param realm 该rtsp流是否需要开启rtsp专属鉴权,至null或空字符串则不鉴权
* @param realm 该rtsp流是否需要开启rtsp专属鉴权,至null或空字符串则不鉴权
...
@@ -265,7 +266,7 @@ API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_clone_release(const mk_rtsp_g
...
@@ -265,7 +266,7 @@ API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_clone_release(const mk_rtsp_g
///////////////////////////////////////////RtspSession::onAuth/////////////////////////////////////////////
///////////////////////////////////////////RtspSession::onAuth/////////////////////////////////////////////
//RtspSession::onAuth对象的C映射
//RtspSession::onAuth对象的C映射
typedef
void
*
mk_rtsp_auth_invoker
;
typedef
struct
mk_rtsp_auth_invoker_t
*
mk_rtsp_auth_invoker
;
/**
/**
* 执行RtspSession::onAuth
* 执行RtspSession::onAuth
...
@@ -289,7 +290,7 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_clone_release(const mk_rtsp_auth_i
...
@@ -289,7 +290,7 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_clone_release(const mk_rtsp_auth_i
///////////////////////////////////////////Broadcast::PublishAuthInvoker/////////////////////////////////////////////
///////////////////////////////////////////Broadcast::PublishAuthInvoker/////////////////////////////////////////////
//Broadcast::PublishAuthInvoker对象的C映射
//Broadcast::PublishAuthInvoker对象的C映射
typedef
void
*
mk_publish_auth_invoker
;
typedef
struct
mk_publish_auth_invoker_t
*
mk_publish_auth_invoker
;
/**
/**
* 执行Broadcast::PublishAuthInvoker
* 执行Broadcast::PublishAuthInvoker
...
@@ -315,7 +316,7 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_clone_release(const mk_publish_
...
@@ -315,7 +316,7 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_clone_release(const mk_publish_
///////////////////////////////////////////Broadcast::AuthInvoker/////////////////////////////////////////////
///////////////////////////////////////////Broadcast::AuthInvoker/////////////////////////////////////////////
//Broadcast::AuthInvoker对象的C映射
//Broadcast::AuthInvoker对象的C映射
typedef
void
*
mk_auth_invoker
;
typedef
struct
mk_auth_invoker_t
*
mk_auth_invoker
;
/**
/**
* 执行Broadcast::AuthInvoker
* 执行Broadcast::AuthInvoker
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_frame.h
查看文件 @
dc8508c5
...
@@ -39,7 +39,7 @@ API_EXPORT extern const int MKCodecVP9;
...
@@ -39,7 +39,7 @@ API_EXPORT extern const int MKCodecVP9;
API_EXPORT
extern
const
int
MKCodecAV1
;
API_EXPORT
extern
const
int
MKCodecAV1
;
API_EXPORT
extern
const
int
MKCodecJPEG
;
API_EXPORT
extern
const
int
MKCodecJPEG
;
typedef
void
*
mk_frame
;
typedef
struct
mk_frame_t
*
mk_frame
;
// 用户自定义free回调函数
// 用户自定义free回调函数
typedef
void
(
API_CALL
*
on_mk_frame_data_release
)(
void
*
user_data
,
char
*
ptr
);
typedef
void
(
API_CALL
*
on_mk_frame_data_release
)(
void
*
user_data
,
char
*
ptr
);
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_h264_splitter.h
查看文件 @
dc8508c5
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_h264_splitter
;
typedef
struct
mk_h264_splitter_t
*
mk_h264_splitter
;
/**
/**
* h264 分帧器输出回调函数
* h264 分帧器输出回调函数
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_httpclient.h
查看文件 @
dc8508c5
...
@@ -20,7 +20,7 @@ extern "C" {
...
@@ -20,7 +20,7 @@ extern "C" {
///////////////////////////////////////////HttpDownloader/////////////////////////////////////////////
///////////////////////////////////////////HttpDownloader/////////////////////////////////////////////
typedef
void
*
mk_http_downloader
;
typedef
struct
mk_http_downloader_t
*
mk_http_downloader
;
/**
/**
* @param user_data 用户数据指针
* @param user_data 用户数据指针
...
@@ -54,7 +54,7 @@ API_EXPORT void API_CALL mk_http_downloader_start(mk_http_downloader ctx, const
...
@@ -54,7 +54,7 @@ API_EXPORT void API_CALL mk_http_downloader_start(mk_http_downloader ctx, const
API_EXPORT
void
API_CALL
mk_http_downloader_start2
(
mk_http_downloader
ctx
,
const
char
*
url
,
const
char
*
file
,
on_mk_download_complete
cb
,
void
*
user_data
,
on_user_data_free
user_data_free
);
API_EXPORT
void
API_CALL
mk_http_downloader_start2
(
mk_http_downloader
ctx
,
const
char
*
url
,
const
char
*
file
,
on_mk_download_complete
cb
,
void
*
user_data
,
on_user_data_free
user_data_free
);
///////////////////////////////////////////HttpRequester/////////////////////////////////////////////
///////////////////////////////////////////HttpRequester/////////////////////////////////////////////
typedef
void
*
mk_http_requester
;
typedef
struct
mk_http_requester_t
*
mk_http_requester
;
/**
/**
* http请求结果回调
* http请求结果回调
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_media.h
查看文件 @
dc8508c5
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_media
;
typedef
struct
mk_media_t
*
mk_media
;
/**
/**
* 创建一个媒体源
* 创建一个媒体源
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_player.h
查看文件 @
dc8508c5
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_player
;
typedef
struct
mk_player_t
*
mk_player
;
/**
/**
* 播放结果或播放中断事件的回调
* 播放结果或播放中断事件的回调
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_proxyplayer.h
查看文件 @
dc8508c5
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_proxy_player
;
typedef
struct
mk_proxy_player_t
*
mk_proxy_player
;
/**
/**
* 创建一个代理播放器
* 创建一个代理播放器
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_pusher.h
查看文件 @
dc8508c5
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_pusher
;
typedef
struct
mk_pusher_t
*
mk_pusher
;
/**
/**
* 推流结果或推流中断事件的回调
* 推流结果或推流中断事件的回调
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_recorder.h
查看文件 @
dc8508c5
...
@@ -19,7 +19,7 @@ extern "C" {
...
@@ -19,7 +19,7 @@ extern "C" {
///////////////////////////////////////////flv录制/////////////////////////////////////////////
///////////////////////////////////////////flv录制/////////////////////////////////////////////
typedef
void
*
mk_flv_recorder
;
typedef
struct
mk_flv_recorder_t
*
mk_flv_recorder
;
/**
/**
* 创建flv录制器
* 创建flv录制器
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_rtp_server.h
查看文件 @
dc8508c5
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
extern
"C"
{
extern
"C"
{
#endif
#endif
typedef
void
*
mk_rtp_server
;
typedef
struct
mk_rtp_server_t
*
mk_rtp_server
;
/**
/**
* 创建GB28181 RTP 服务器
* 创建GB28181 RTP 服务器
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_tcp.h
查看文件 @
dc8508c5
...
@@ -19,7 +19,7 @@ extern "C" {
...
@@ -19,7 +19,7 @@ extern "C" {
///////////////////////////////////////////Buffer::Ptr/////////////////////////////////////////////
///////////////////////////////////////////Buffer::Ptr/////////////////////////////////////////////
typedef
void
*
mk_buffer
;
typedef
struct
mk_buffer_t
*
mk_buffer
;
typedef
void
(
API_CALL
*
on_mk_buffer_free
)(
void
*
user_data
,
void
*
data
);
typedef
void
(
API_CALL
*
on_mk_buffer_free
)(
void
*
user_data
,
void
*
data
);
/**
/**
...
@@ -39,7 +39,7 @@ API_EXPORT size_t API_CALL mk_buffer_get_size(mk_buffer buffer);
...
@@ -39,7 +39,7 @@ API_EXPORT size_t API_CALL mk_buffer_get_size(mk_buffer buffer);
///////////////////////////////////////////SockInfo/////////////////////////////////////////////
///////////////////////////////////////////SockInfo/////////////////////////////////////////////
//SockInfo对象的C映射
//SockInfo对象的C映射
typedef
void
*
mk_sock_info
;
typedef
struct
mk_sock_info_t
*
mk_sock_info
;
//SockInfo::get_peer_ip()
//SockInfo::get_peer_ip()
API_EXPORT
const
char
*
API_CALL
mk_sock_info_peer_ip
(
const
mk_sock_info
ctx
,
char
*
buf
);
API_EXPORT
const
char
*
API_CALL
mk_sock_info_peer_ip
(
const
mk_sock_info
ctx
,
char
*
buf
);
...
@@ -66,8 +66,8 @@ API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx);
...
@@ -66,8 +66,8 @@ API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx);
#endif
#endif
///////////////////////////////////////////TcpSession/////////////////////////////////////////////
///////////////////////////////////////////TcpSession/////////////////////////////////////////////
//TcpSession对象的C映射
//TcpSession对象的C映射
typedef
void
*
mk_tcp_session
;
typedef
struct
mk_tcp_session_t
*
mk_tcp_session
;
typedef
void
*
mk_tcp_session_ref
;
typedef
struct
mk_tcp_session_ref_t
*
mk_tcp_session_ref
;
//获取基类指针以便获取其网络相关信息
//获取基类指针以便获取其网络相关信息
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_session_get_sock_info
(
const
mk_tcp_session
ctx
);
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_session_get_sock_info
(
const
mk_tcp_session
ctx
);
...
@@ -168,7 +168,7 @@ API_EXPORT void API_CALL mk_tcp_server_events_listen(const mk_tcp_session_events
...
@@ -168,7 +168,7 @@ API_EXPORT void API_CALL mk_tcp_server_events_listen(const mk_tcp_session_events
///////////////////////////////////////////自定义tcp客户端/////////////////////////////////////////////
///////////////////////////////////////////自定义tcp客户端/////////////////////////////////////////////
typedef
void
*
mk_tcp_client
;
typedef
struct
mk_tcp_client_t
*
mk_tcp_client
;
//获取基类指针以便获取其网络相关信息
//获取基类指针以便获取其网络相关信息
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_client_get_sock_info
(
const
mk_tcp_client
ctx
);
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_client_get_sock_info
(
const
mk_tcp_client
ctx
);
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_thread.h
查看文件 @
dc8508c5
...
@@ -20,7 +20,7 @@ extern "C" {
...
@@ -20,7 +20,7 @@ extern "C" {
#endif
#endif
///////////////////////////////////////////事件线程/////////////////////////////////////////////
///////////////////////////////////////////事件线程/////////////////////////////////////////////
typedef
void
*
mk_thread
;
typedef
struct
mk_thread_t
*
mk_thread
;
/**
/**
* 获取tcp会话对象所在事件线程
* 获取tcp会话对象所在事件线程
...
@@ -52,7 +52,7 @@ API_EXPORT mk_thread API_CALL mk_thread_from_pool();
...
@@ -52,7 +52,7 @@ API_EXPORT mk_thread API_CALL mk_thread_from_pool();
*/
*/
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool_work
();
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool_work
();
typedef
void
*
mk_thread_pool
;
typedef
struct
mk_thread_pool_t
*
mk_thread_pool
;
/**
/**
* 创建线程池
* 创建线程池
...
@@ -108,7 +108,7 @@ API_EXPORT void API_CALL mk_async_do_delay2(mk_thread ctx, size_t ms, on_mk_asyn
...
@@ -108,7 +108,7 @@ API_EXPORT void API_CALL mk_async_do_delay2(mk_thread ctx, size_t ms, on_mk_asyn
API_EXPORT
void
API_CALL
mk_sync_do
(
mk_thread
ctx
,
on_mk_async
cb
,
void
*
user_data
);
API_EXPORT
void
API_CALL
mk_sync_do
(
mk_thread
ctx
,
on_mk_async
cb
,
void
*
user_data
);
///////////////////////////////////////////定时器/////////////////////////////////////////////
///////////////////////////////////////////定时器/////////////////////////////////////////////
typedef
void
*
mk_timer
;
typedef
struct
mk_timer_t
*
mk_timer
;
/**
/**
* 定时器触发事件
* 定时器触发事件
...
@@ -135,7 +135,7 @@ API_EXPORT void API_CALL mk_timer_release(mk_timer ctx);
...
@@ -135,7 +135,7 @@ API_EXPORT void API_CALL mk_timer_release(mk_timer ctx);
///////////////////////////////////////////信号量/////////////////////////////////////////////
///////////////////////////////////////////信号量/////////////////////////////////////////////
typedef
void
*
mk_sem
;
typedef
struct
mk_sem_t
*
mk_sem
;
/**
/**
* 创建信号量
* 创建信号量
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_track.h
查看文件 @
dc8508c5
...
@@ -19,7 +19,7 @@ extern "C" {
...
@@ -19,7 +19,7 @@ extern "C" {
#endif
#endif
//音视频轨道
//音视频轨道
typedef
void
*
mk_track
;
typedef
struct
mk_track_t
*
mk_track
;
//输出frame回调
//输出frame回调
typedef
void
(
API_CALL
*
on_mk_frame_out
)(
void
*
user_data
,
mk_frame
frame
);
typedef
void
(
API_CALL
*
on_mk_frame_out
)(
void
*
user_data
,
mk_frame
frame
);
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_transcode.h
查看文件 @
dc8508c5
...
@@ -20,11 +20,11 @@ extern "C" {
...
@@ -20,11 +20,11 @@ extern "C" {
#endif
#endif
//解码器对象
//解码器对象
typedef
void
*
mk_decoder
;
typedef
struct
mk_decoder_t
*
mk_decoder
;
//解码后的frame
//解码后的frame
typedef
void
*
mk_frame_pix
;
typedef
struct
mk_frame_pix_t
*
mk_frame_pix
;
//SwsContext的包装
//SwsContext的包装
typedef
void
*
mk_swscale
;
typedef
struct
mk_swscale_t
*
mk_swscale
;
//FFmpeg原始解码帧对象
//FFmpeg原始解码帧对象
typedef
struct
AVFrame
AVFrame
;
typedef
struct
AVFrame
AVFrame
;
//FFmpeg编解码器对象
//FFmpeg编解码器对象
...
...
This diff is collapsed.
Click to expand it.
api/include/mk_util.h
查看文件 @
dc8508c5
...
@@ -58,7 +58,7 @@ API_EXPORT char* API_CALL mk_util_get_current_time_string(const char *fmt);
...
@@ -58,7 +58,7 @@ API_EXPORT char* API_CALL mk_util_get_current_time_string(const char *fmt);
API_EXPORT
char
*
API_CALL
mk_util_hex_dump
(
const
void
*
buf
,
int
len
);
API_EXPORT
char
*
API_CALL
mk_util_hex_dump
(
const
void
*
buf
,
int
len
);
///////////////////////////////////////////mk ini/////////////////////////////////////////////
///////////////////////////////////////////mk ini/////////////////////////////////////////////
typedef
void
*
mk_ini
;
typedef
struct
mk_ini_t
*
mk_ini
;
/**
/**
* 创建ini配置对象
* 创建ini配置对象
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_events_objects.cpp
查看文件 @
dc8508c5
...
@@ -245,14 +245,14 @@ API_EXPORT void API_CALL mk_media_source_find(const char *schema,
...
@@ -245,14 +245,14 @@ API_EXPORT void API_CALL mk_media_source_find(const char *schema,
on_mk_media_source_find_cb
cb
)
{
on_mk_media_source_find_cb
cb
)
{
assert
(
schema
&&
vhost
&&
app
&&
stream
&&
cb
);
assert
(
schema
&&
vhost
&&
app
&&
stream
&&
cb
);
auto
src
=
MediaSource
::
find
(
schema
,
vhost
,
app
,
stream
,
from_mp4
);
auto
src
=
MediaSource
::
find
(
schema
,
vhost
,
app
,
stream
,
from_mp4
);
cb
(
user_data
,
src
.
get
());
cb
(
user_data
,
(
mk_media_source
)
src
.
get
());
}
}
API_EXPORT
void
API_CALL
mk_media_source_for_each
(
void
*
user_data
,
on_mk_media_source_find_cb
cb
,
const
char
*
schema
,
API_EXPORT
void
API_CALL
mk_media_source_for_each
(
void
*
user_data
,
on_mk_media_source_find_cb
cb
,
const
char
*
schema
,
const
char
*
vhost
,
const
char
*
app
,
const
char
*
stream
)
{
const
char
*
vhost
,
const
char
*
app
,
const
char
*
stream
)
{
assert
(
cb
);
assert
(
cb
);
MediaSource
::
for_each_media
([
&
](
const
MediaSource
::
Ptr
&
src
)
{
MediaSource
::
for_each_media
([
&
](
const
MediaSource
::
Ptr
&
src
)
{
cb
(
user_data
,
src
.
get
());
cb
(
user_data
,
(
mk_media_source
)
src
.
get
());
},
schema
?
schema
:
""
,
vhost
?
vhost
:
""
,
app
?
app
:
""
,
stream
?
stream
:
""
);
},
schema
?
schema
:
""
,
vhost
?
vhost
:
""
,
app
?
app
:
""
,
stream
?
stream
:
""
);
}
}
...
@@ -263,17 +263,17 @@ API_EXPORT mk_http_body API_CALL mk_http_body_from_string(const char *str, size_
...
@@ -263,17 +263,17 @@ API_EXPORT mk_http_body API_CALL mk_http_body_from_string(const char *str, size_
if
(
!
len
){
if
(
!
len
){
len
=
strlen
(
str
);
len
=
strlen
(
str
);
}
}
return
new
HttpBody
::
Ptr
(
new
HttpStringBody
(
std
::
string
(
str
,
len
)));
return
(
mk_http_body
)
new
HttpBody
::
Ptr
(
new
HttpStringBody
(
std
::
string
(
str
,
len
)));
}
}
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_buffer
(
mk_buffer
buffer
)
{
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_buffer
(
mk_buffer
buffer
)
{
assert
(
buffer
);
assert
(
buffer
);
return
new
HttpBody
::
Ptr
(
new
HttpBufferBody
(
*
((
Buffer
::
Ptr
*
)
buffer
)));
return
(
mk_http_body
)
new
HttpBody
::
Ptr
(
new
HttpBufferBody
(
*
((
Buffer
::
Ptr
*
)
buffer
)));
}
}
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_file
(
const
char
*
file_path
){
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_file
(
const
char
*
file_path
){
assert
(
file_path
);
assert
(
file_path
);
return
new
HttpBody
::
Ptr
(
new
HttpFileBody
(
file_path
));
return
(
mk_http_body
)
new
HttpBody
::
Ptr
(
new
HttpFileBody
(
file_path
));
}
}
template
<
typename
C
=
StrCaseMap
>
template
<
typename
C
=
StrCaseMap
>
...
@@ -294,7 +294,7 @@ static C get_http_header( const char *response_header[]){
...
@@ -294,7 +294,7 @@ static C get_http_header( const char *response_header[]){
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_multi_form
(
const
char
*
key_val
[],
const
char
*
file_path
){
API_EXPORT
mk_http_body
API_CALL
mk_http_body_from_multi_form
(
const
char
*
key_val
[],
const
char
*
file_path
){
assert
(
key_val
&&
file_path
);
assert
(
key_val
&&
file_path
);
return
new
HttpBody
::
Ptr
(
new
HttpMultiFormBody
(
get_http_header
<
HttpArgs
>
(
key_val
),
file_path
));
return
(
mk_http_body
)
new
HttpBody
::
Ptr
(
new
HttpMultiFormBody
(
get_http_header
<
HttpArgs
>
(
key_val
),
file_path
));
}
}
API_EXPORT
void
API_CALL
mk_http_body_release
(
mk_http_body
ctx
){
API_EXPORT
void
API_CALL
mk_http_body_release
(
mk_http_body
ctx
){
...
@@ -338,7 +338,7 @@ API_EXPORT void API_CALL mk_http_response_invoker_do(const mk_http_response_invo
...
@@ -338,7 +338,7 @@ API_EXPORT void API_CALL mk_http_response_invoker_do(const mk_http_response_invo
API_EXPORT
mk_http_response_invoker
API_CALL
mk_http_response_invoker_clone
(
const
mk_http_response_invoker
ctx
){
API_EXPORT
mk_http_response_invoker
API_CALL
mk_http_response_invoker_clone
(
const
mk_http_response_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
HttpSession
::
HttpResponseInvoker
*
invoker
=
(
HttpSession
::
HttpResponseInvoker
*
)
ctx
;
HttpSession
::
HttpResponseInvoker
*
invoker
=
(
HttpSession
::
HttpResponseInvoker
*
)
ctx
;
return
new
HttpSession
::
HttpResponseInvoker
(
*
invoker
);
return
(
mk_http_response_invoker
)
new
HttpSession
::
HttpResponseInvoker
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_http_response_invoker_clone_release
(
const
mk_http_response_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_http_response_invoker_clone_release
(
const
mk_http_response_invoker
ctx
){
...
@@ -362,7 +362,7 @@ API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_pat
...
@@ -362,7 +362,7 @@ API_EXPORT void API_CALL mk_http_access_path_invoker_do(const mk_http_access_pat
API_EXPORT
mk_http_access_path_invoker
API_CALL
mk_http_access_path_invoker_clone
(
const
mk_http_access_path_invoker
ctx
){
API_EXPORT
mk_http_access_path_invoker
API_CALL
mk_http_access_path_invoker_clone
(
const
mk_http_access_path_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
HttpSession
::
HttpAccessPathInvoker
*
invoker
=
(
HttpSession
::
HttpAccessPathInvoker
*
)
ctx
;
HttpSession
::
HttpAccessPathInvoker
*
invoker
=
(
HttpSession
::
HttpAccessPathInvoker
*
)
ctx
;
return
new
HttpSession
::
HttpAccessPathInvoker
(
*
invoker
);
return
(
mk_http_access_path_invoker
)
new
HttpSession
::
HttpAccessPathInvoker
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_http_access_path_invoker_clone_release
(
const
mk_http_access_path_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_http_access_path_invoker_clone_release
(
const
mk_http_access_path_invoker
ctx
){
...
@@ -382,7 +382,7 @@ API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_in
...
@@ -382,7 +382,7 @@ API_EXPORT void API_CALL mk_rtsp_get_realm_invoker_do(const mk_rtsp_get_realm_in
API_EXPORT
mk_rtsp_get_realm_invoker
API_CALL
mk_rtsp_get_realm_invoker_clone
(
const
mk_rtsp_get_realm_invoker
ctx
){
API_EXPORT
mk_rtsp_get_realm_invoker
API_CALL
mk_rtsp_get_realm_invoker_clone
(
const
mk_rtsp_get_realm_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
RtspSession
::
onGetRealm
*
invoker
=
(
RtspSession
::
onGetRealm
*
)
ctx
;
RtspSession
::
onGetRealm
*
invoker
=
(
RtspSession
::
onGetRealm
*
)
ctx
;
return
new
RtspSession
::
onGetRealm
(
*
invoker
);
return
(
mk_rtsp_get_realm_invoker
)
new
RtspSession
::
onGetRealm
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_rtsp_get_realm_invoker_clone_release
(
const
mk_rtsp_get_realm_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_rtsp_get_realm_invoker_clone_release
(
const
mk_rtsp_get_realm_invoker
ctx
){
...
@@ -403,7 +403,7 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
...
@@ -403,7 +403,7 @@ API_EXPORT void API_CALL mk_rtsp_auth_invoker_do(const mk_rtsp_auth_invoker ctx,
API_EXPORT
mk_rtsp_auth_invoker
API_CALL
mk_rtsp_auth_invoker_clone
(
const
mk_rtsp_auth_invoker
ctx
){
API_EXPORT
mk_rtsp_auth_invoker
API_CALL
mk_rtsp_auth_invoker_clone
(
const
mk_rtsp_auth_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
RtspSession
::
onAuth
*
invoker
=
(
RtspSession
::
onAuth
*
)
ctx
;
RtspSession
::
onAuth
*
invoker
=
(
RtspSession
::
onAuth
*
)
ctx
;
return
new
RtspSession
::
onAuth
(
*
invoker
);
return
(
mk_rtsp_auth_invoker
)
new
RtspSession
::
onAuth
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_rtsp_auth_invoker_clone_release
(
const
mk_rtsp_auth_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_rtsp_auth_invoker_clone_release
(
const
mk_rtsp_auth_invoker
ctx
){
...
@@ -428,7 +428,7 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoke
...
@@ -428,7 +428,7 @@ API_EXPORT void API_CALL mk_publish_auth_invoker_do(const mk_publish_auth_invoke
API_EXPORT
mk_publish_auth_invoker
API_CALL
mk_publish_auth_invoker_clone
(
const
mk_publish_auth_invoker
ctx
){
API_EXPORT
mk_publish_auth_invoker
API_CALL
mk_publish_auth_invoker_clone
(
const
mk_publish_auth_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
Broadcast
::
PublishAuthInvoker
*
invoker
=
(
Broadcast
::
PublishAuthInvoker
*
)
ctx
;
Broadcast
::
PublishAuthInvoker
*
invoker
=
(
Broadcast
::
PublishAuthInvoker
*
)
ctx
;
return
new
Broadcast
::
PublishAuthInvoker
(
*
invoker
);
return
(
mk_publish_auth_invoker
)
new
Broadcast
::
PublishAuthInvoker
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_publish_auth_invoker_clone_release
(
const
mk_publish_auth_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_publish_auth_invoker_clone_release
(
const
mk_publish_auth_invoker
ctx
){
...
@@ -447,7 +447,7 @@ API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const cha
...
@@ -447,7 +447,7 @@ API_EXPORT void API_CALL mk_auth_invoker_do(const mk_auth_invoker ctx, const cha
API_EXPORT
mk_auth_invoker
API_CALL
mk_auth_invoker_clone
(
const
mk_auth_invoker
ctx
){
API_EXPORT
mk_auth_invoker
API_CALL
mk_auth_invoker_clone
(
const
mk_auth_invoker
ctx
){
assert
(
ctx
);
assert
(
ctx
);
Broadcast
::
AuthInvoker
*
invoker
=
(
Broadcast
::
AuthInvoker
*
)
ctx
;
Broadcast
::
AuthInvoker
*
invoker
=
(
Broadcast
::
AuthInvoker
*
)
ctx
;
return
new
Broadcast
::
AuthInvoker
(
*
invoker
);
return
(
mk_auth_invoker
)
new
Broadcast
::
AuthInvoker
(
*
invoker
);
}
}
API_EXPORT
void
API_CALL
mk_auth_invoker_clone_release
(
const
mk_auth_invoker
ctx
){
API_EXPORT
void
API_CALL
mk_auth_invoker_clone_release
(
const
mk_auth_invoker
ctx
){
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_frame.cpp
查看文件 @
dc8508c5
...
@@ -74,13 +74,13 @@ static mk_frame mk_frame_create_complex(int codec_id, uint64_t dts, uint64_t pts
...
@@ -74,13 +74,13 @@ static mk_frame mk_frame_create_complex(int codec_id, uint64_t dts, uint64_t pts
char
*
data
,
size_t
size
,
on_mk_frame_data_release
cb
,
std
::
shared_ptr
<
void
>
user_data
)
{
char
*
data
,
size_t
size
,
on_mk_frame_data_release
cb
,
std
::
shared_ptr
<
void
>
user_data
)
{
switch
(
codec_id
)
{
switch
(
codec_id
)
{
case
CodecH264
:
case
CodecH264
:
return
new
Frame
::
Ptr
(
new
H264FrameHelper
<
FrameFromPtrForC
>
(
return
(
mk_frame
)
new
Frame
::
Ptr
(
new
H264FrameHelper
<
FrameFromPtrForC
>
(
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
case
CodecH265
:
case
CodecH265
:
return
new
Frame
::
Ptr
(
new
H265FrameHelper
<
FrameFromPtrForC
>
(
return
(
mk_frame
)
new
Frame
::
Ptr
(
new
H265FrameHelper
<
FrameFromPtrForC
>
(
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
default:
default:
return
new
Frame
::
Ptr
(
new
FrameFromPtrForC
(
return
(
mk_frame
)
new
Frame
::
Ptr
(
new
FrameFromPtrForC
(
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
cb
,
frame_flags
,
cb
,
std
::
move
(
user_data
),
(
CodecId
)
codec_id
,
data
,
size
,
dts
,
pts
,
prefix_size
));
}
}
}
}
...
@@ -117,7 +117,7 @@ API_EXPORT void API_CALL mk_frame_unref(mk_frame frame) {
...
@@ -117,7 +117,7 @@ API_EXPORT void API_CALL mk_frame_unref(mk_frame frame) {
API_EXPORT
mk_frame
API_CALL
mk_frame_ref
(
mk_frame
frame
)
{
API_EXPORT
mk_frame
API_CALL
mk_frame_ref
(
mk_frame
frame
)
{
assert
(
frame
);
assert
(
frame
);
return
new
Frame
::
Ptr
(
Frame
::
getCacheAbleFrame
(
*
((
Frame
::
Ptr
*
)
frame
)));
return
(
mk_frame
)
new
Frame
::
Ptr
(
Frame
::
getCacheAbleFrame
(
*
((
Frame
::
Ptr
*
)
frame
)));
}
}
API_EXPORT
int
API_CALL
mk_frame_codec_id
(
mk_frame
frame
)
{
API_EXPORT
int
API_CALL
mk_frame_codec_id
(
mk_frame
frame
)
{
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_httpclient.cpp
查看文件 @
dc8508c5
...
@@ -48,7 +48,7 @@ API_EXPORT void API_CALL mk_http_downloader_start2(mk_http_downloader ctx, const
...
@@ -48,7 +48,7 @@ API_EXPORT void API_CALL mk_http_downloader_start2(mk_http_downloader ctx, const
///////////////////////////////////////////HttpRequester/////////////////////////////////////////////
///////////////////////////////////////////HttpRequester/////////////////////////////////////////////
API_EXPORT
mk_http_requester
API_CALL
mk_http_requester_create
(){
API_EXPORT
mk_http_requester
API_CALL
mk_http_requester_create
(){
HttpRequester
::
Ptr
*
ret
=
new
HttpRequester
::
Ptr
(
new
HttpRequester
);
HttpRequester
::
Ptr
*
ret
=
new
HttpRequester
::
Ptr
(
new
HttpRequester
);
return
ret
;
return
(
mk_http_requester
)
ret
;
}
}
API_EXPORT
void
API_CALL
mk_http_requester_clear
(
mk_http_requester
ctx
){
API_EXPORT
void
API_CALL
mk_http_requester_clear
(
mk_http_requester
ctx
){
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_media.cpp
查看文件 @
dc8508c5
...
@@ -98,7 +98,7 @@ protected:
...
@@ -98,7 +98,7 @@ protected:
void
onRegist
(
MediaSource
&
sender
,
bool
regist
)
override
{
void
onRegist
(
MediaSource
&
sender
,
bool
regist
)
override
{
if
(
_on_regist
)
{
if
(
_on_regist
)
{
_on_regist
(
_on_regist_data
.
get
(),
&
sender
,
regist
);
_on_regist
(
_on_regist_data
.
get
(),
(
mk_media_source
)
&
sender
,
regist
);
}
}
}
}
...
@@ -319,5 +319,5 @@ API_EXPORT void API_CALL mk_media_stop_send_rtp(mk_media ctx, const char *ssrc){
...
@@ -319,5 +319,5 @@ API_EXPORT void API_CALL mk_media_stop_send_rtp(mk_media ctx, const char *ssrc){
API_EXPORT
mk_thread
API_CALL
mk_media_get_owner_thread
(
mk_media
ctx
)
{
API_EXPORT
mk_thread
API_CALL
mk_media_get_owner_thread
(
mk_media
ctx
)
{
MediaHelper
::
Ptr
*
obj
=
(
MediaHelper
::
Ptr
*
)
ctx
;
MediaHelper
::
Ptr
*
obj
=
(
MediaHelper
::
Ptr
*
)
ctx
;
return
(
*
obj
)
->
getChannel
()
->
getOwnerPoller
(
MediaSource
::
NullMediaSource
()).
get
();
return
(
mk_thread
)(
*
obj
)
->
getChannel
()
->
getOwnerPoller
(
MediaSource
::
NullMediaSource
()).
get
();
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
api/source/mk_player.cpp
查看文件 @
dc8508c5
...
@@ -105,7 +105,7 @@ private:
...
@@ -105,7 +105,7 @@ private:
API_EXPORT
mk_player
API_CALL
mk_player_create
()
{
API_EXPORT
mk_player
API_CALL
mk_player_create
()
{
MediaPlayerForC
::
Ptr
*
obj
=
new
MediaPlayerForC
::
Ptr
(
new
MediaPlayerForC
());
MediaPlayerForC
::
Ptr
*
obj
=
new
MediaPlayerForC
::
Ptr
(
new
MediaPlayerForC
());
(
*
obj
)
->
setup
();
(
*
obj
)
->
setup
();
return
obj
;
return
(
mk_player
)
obj
;
}
}
API_EXPORT
void
API_CALL
mk_player_release
(
mk_player
ctx
)
{
API_EXPORT
void
API_CALL
mk_player_release
(
mk_player
ctx
)
{
assert
(
ctx
);
assert
(
ctx
);
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_pusher.cpp
查看文件 @
dc8508c5
...
@@ -18,14 +18,14 @@ using namespace mediakit;
...
@@ -18,14 +18,14 @@ using namespace mediakit;
API_EXPORT
mk_pusher
API_CALL
mk_pusher_create
(
const
char
*
schema
,
const
char
*
vhost
,
const
char
*
app
,
const
char
*
stream
){
API_EXPORT
mk_pusher
API_CALL
mk_pusher_create
(
const
char
*
schema
,
const
char
*
vhost
,
const
char
*
app
,
const
char
*
stream
){
assert
(
schema
&&
vhost
&&
app
&&
schema
);
assert
(
schema
&&
vhost
&&
app
&&
schema
);
MediaPusher
::
Ptr
*
obj
=
new
MediaPusher
::
Ptr
(
new
MediaPusher
(
schema
,
vhost
,
app
,
stream
));
MediaPusher
::
Ptr
*
obj
=
new
MediaPusher
::
Ptr
(
new
MediaPusher
(
schema
,
vhost
,
app
,
stream
));
return
obj
;
return
(
mk_pusher
)
obj
;
}
}
API_EXPORT
mk_pusher
API_CALL
mk_pusher_create_src
(
mk_media_source
ctx
){
API_EXPORT
mk_pusher
API_CALL
mk_pusher_create_src
(
mk_media_source
ctx
){
assert
(
ctx
);
assert
(
ctx
);
MediaSource
*
src
=
(
MediaSource
*
)
ctx
;
MediaSource
*
src
=
(
MediaSource
*
)
ctx
;
MediaPusher
::
Ptr
*
obj
=
new
MediaPusher
::
Ptr
(
new
MediaPusher
(
src
->
shared_from_this
()));
MediaPusher
::
Ptr
*
obj
=
new
MediaPusher
::
Ptr
(
new
MediaPusher
(
src
->
shared_from_this
()));
return
obj
;
return
(
mk_pusher
)
obj
;
}
}
API_EXPORT
void
API_CALL
mk_pusher_release
(
mk_pusher
ctx
){
API_EXPORT
void
API_CALL
mk_pusher_release
(
mk_pusher
ctx
){
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_recorder.cpp
查看文件 @
dc8508c5
...
@@ -18,7 +18,7 @@ using namespace mediakit;
...
@@ -18,7 +18,7 @@ using namespace mediakit;
API_EXPORT
mk_flv_recorder
API_CALL
mk_flv_recorder_create
(){
API_EXPORT
mk_flv_recorder
API_CALL
mk_flv_recorder_create
(){
FlvRecorder
::
Ptr
*
ret
=
new
FlvRecorder
::
Ptr
(
new
FlvRecorder
);
FlvRecorder
::
Ptr
*
ret
=
new
FlvRecorder
::
Ptr
(
new
FlvRecorder
);
return
ret
;
return
(
mk_flv_recorder
)
ret
;
}
}
API_EXPORT
void
API_CALL
mk_flv_recorder_release
(
mk_flv_recorder
ctx
){
API_EXPORT
void
API_CALL
mk_flv_recorder_release
(
mk_flv_recorder
ctx
){
assert
(
ctx
);
assert
(
ctx
);
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_rtp_server.cpp
查看文件 @
dc8508c5
...
@@ -19,7 +19,7 @@ using namespace mediakit;
...
@@ -19,7 +19,7 @@ using namespace mediakit;
API_EXPORT
mk_rtp_server
API_CALL
mk_rtp_server_create
(
uint16_t
port
,
int
tcp_mode
,
const
char
*
stream_id
)
{
API_EXPORT
mk_rtp_server
API_CALL
mk_rtp_server_create
(
uint16_t
port
,
int
tcp_mode
,
const
char
*
stream_id
)
{
RtpServer
::
Ptr
*
server
=
new
RtpServer
::
Ptr
(
new
RtpServer
);
RtpServer
::
Ptr
*
server
=
new
RtpServer
::
Ptr
(
new
RtpServer
);
(
*
server
)
->
start
(
port
,
stream_id
,
(
RtpServer
::
TcpMode
)
tcp_mode
);
(
*
server
)
->
start
(
port
,
stream_id
,
(
RtpServer
::
TcpMode
)
tcp_mode
);
return
server
;
return
(
mk_rtp_server
)
server
;
}
}
API_EXPORT
void
API_CALL
mk_rtp_server_connect
(
mk_rtp_server
ctx
,
const
char
*
dst_url
,
uint16_t
dst_port
,
on_mk_rtp_server_connected
cb
,
void
*
user_data
)
{
API_EXPORT
void
API_CALL
mk_rtp_server_connect
(
mk_rtp_server
ctx
,
const
char
*
dst_url
,
uint16_t
dst_port
,
on_mk_rtp_server_connected
cb
,
void
*
user_data
)
{
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_tcp.cpp
查看文件 @
dc8508c5
...
@@ -65,12 +65,12 @@ API_EXPORT mk_buffer API_CALL mk_buffer_from_char(const char *data, size_t len,
...
@@ -65,12 +65,12 @@ API_EXPORT mk_buffer API_CALL mk_buffer_from_char(const char *data, size_t len,
API_EXPORT
mk_buffer
API_CALL
mk_buffer_from_char2
(
const
char
*
data
,
size_t
len
,
on_mk_buffer_free
cb
,
void
*
user_data
,
on_user_data_free
user_data_free
)
{
API_EXPORT
mk_buffer
API_CALL
mk_buffer_from_char2
(
const
char
*
data
,
size_t
len
,
on_mk_buffer_free
cb
,
void
*
user_data
,
on_user_data_free
user_data_free
)
{
assert
(
data
);
assert
(
data
);
std
::
shared_ptr
<
void
>
ptr
(
user_data
,
user_data_free
?
user_data_free
:
[](
void
*
)
{});
std
::
shared_ptr
<
void
>
ptr
(
user_data
,
user_data_free
?
user_data_free
:
[](
void
*
)
{});
return
new
Buffer
::
Ptr
(
std
::
make_shared
<
BufferForC
>
(
data
,
len
,
cb
,
std
::
move
(
ptr
)));
return
(
mk_buffer
)
new
Buffer
::
Ptr
(
std
::
make_shared
<
BufferForC
>
(
data
,
len
,
cb
,
std
::
move
(
ptr
)));
}
}
API_EXPORT
mk_buffer
API_CALL
mk_buffer_ref
(
mk_buffer
buffer
)
{
API_EXPORT
mk_buffer
API_CALL
mk_buffer_ref
(
mk_buffer
buffer
)
{
assert
(
buffer
);
assert
(
buffer
);
return
new
Buffer
::
Ptr
(
*
((
Buffer
::
Ptr
*
)
buffer
));
return
(
mk_buffer
)
new
Buffer
::
Ptr
(
*
((
Buffer
::
Ptr
*
)
buffer
));
}
}
API_EXPORT
void
API_CALL
mk_buffer_unref
(
mk_buffer
buffer
)
{
API_EXPORT
void
API_CALL
mk_buffer_unref
(
mk_buffer
buffer
)
{
...
@@ -115,7 +115,7 @@ API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx){
...
@@ -115,7 +115,7 @@ API_EXPORT uint16_t API_CALL mk_sock_info_local_port(const mk_sock_info ctx){
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_session_get_sock_info
(
const
mk_tcp_session
ctx
){
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_session_get_sock_info
(
const
mk_tcp_session
ctx
){
assert
(
ctx
);
assert
(
ctx
);
SessionForC
*
session
=
(
SessionForC
*
)
ctx
;
SessionForC
*
session
=
(
SessionForC
*
)
ctx
;
return
(
SockInfo
*
)
session
;
return
(
mk_sock_info
)
session
;
}
}
API_EXPORT
void
API_CALL
mk_tcp_session_shutdown
(
const
mk_tcp_session
ctx
,
int
err
,
const
char
*
err_msg
){
API_EXPORT
void
API_CALL
mk_tcp_session_shutdown
(
const
mk_tcp_session
ctx
,
int
err
,
const
char
*
err_msg
){
...
@@ -155,7 +155,7 @@ API_EXPORT void API_CALL mk_tcp_session_send_buffer_safe(const mk_tcp_session ct
...
@@ -155,7 +155,7 @@ API_EXPORT void API_CALL mk_tcp_session_send_buffer_safe(const mk_tcp_session ct
API_EXPORT
mk_tcp_session_ref
API_CALL
mk_tcp_session_ref_from
(
const
mk_tcp_session
ctx
)
{
API_EXPORT
mk_tcp_session_ref
API_CALL
mk_tcp_session_ref_from
(
const
mk_tcp_session
ctx
)
{
auto
ref
=
((
SessionForC
*
)
ctx
)
->
shared_from_this
();
auto
ref
=
((
SessionForC
*
)
ctx
)
->
shared_from_this
();
return
new
std
::
shared_ptr
<
SessionForC
>
(
std
::
dynamic_pointer_cast
<
SessionForC
>
(
ref
));
return
(
mk_tcp_session_ref
)
new
std
::
shared_ptr
<
SessionForC
>
(
std
::
dynamic_pointer_cast
<
SessionForC
>
(
ref
));
}
}
API_EXPORT
void
mk_tcp_session_ref_release
(
const
mk_tcp_session_ref
ref
)
{
API_EXPORT
void
mk_tcp_session_ref_release
(
const
mk_tcp_session_ref
ref
)
{
...
@@ -163,7 +163,7 @@ API_EXPORT void mk_tcp_session_ref_release(const mk_tcp_session_ref ref) {
...
@@ -163,7 +163,7 @@ API_EXPORT void mk_tcp_session_ref_release(const mk_tcp_session_ref ref) {
}
}
API_EXPORT
mk_tcp_session
mk_tcp_session_from_ref
(
const
mk_tcp_session_ref
ref
)
{
API_EXPORT
mk_tcp_session
mk_tcp_session_from_ref
(
const
mk_tcp_session_ref
ref
)
{
return
((
std
::
shared_ptr
<
SessionForC
>
*
)
ref
)
->
get
();
return
(
mk_tcp_session
)(
(
std
::
shared_ptr
<
SessionForC
>
*
)
ref
)
->
get
();
}
}
API_EXPORT
void
API_CALL
mk_tcp_session_send_safe
(
const
mk_tcp_session
ctx
,
const
char
*
data
,
size_t
len
)
{
API_EXPORT
void
API_CALL
mk_tcp_session_send_safe
(
const
mk_tcp_session
ctx
,
const
char
*
data
,
size_t
len
)
{
...
@@ -179,25 +179,25 @@ static mk_tcp_session_events s_events_server = {0};
...
@@ -179,25 +179,25 @@ static mk_tcp_session_events s_events_server = {0};
SessionForC
::
SessionForC
(
const
Socket
::
Ptr
&
pSock
)
:
Session
(
pSock
)
{
SessionForC
::
SessionForC
(
const
Socket
::
Ptr
&
pSock
)
:
Session
(
pSock
)
{
_local_port
=
get_local_port
();
_local_port
=
get_local_port
();
if
(
s_events_server
.
on_mk_tcp_session_create
)
{
if
(
s_events_server
.
on_mk_tcp_session_create
)
{
s_events_server
.
on_mk_tcp_session_create
(
_local_port
,
this
);
s_events_server
.
on_mk_tcp_session_create
(
_local_port
,
(
mk_tcp_session
)
this
);
}
}
}
}
void
SessionForC
::
onRecv
(
const
Buffer
::
Ptr
&
buffer
)
{
void
SessionForC
::
onRecv
(
const
Buffer
::
Ptr
&
buffer
)
{
if
(
s_events_server
.
on_mk_tcp_session_data
)
{
if
(
s_events_server
.
on_mk_tcp_session_data
)
{
s_events_server
.
on_mk_tcp_session_data
(
_local_port
,
this
,
(
mk_buffer
)
&
buffer
);
s_events_server
.
on_mk_tcp_session_data
(
_local_port
,
(
mk_tcp_session
)
this
,
(
mk_buffer
)
&
buffer
);
}
}
}
}
void
SessionForC
::
onError
(
const
SockException
&
err
)
{
void
SessionForC
::
onError
(
const
SockException
&
err
)
{
if
(
s_events_server
.
on_mk_tcp_session_disconnect
)
{
if
(
s_events_server
.
on_mk_tcp_session_disconnect
)
{
s_events_server
.
on_mk_tcp_session_disconnect
(
_local_port
,
this
,
err
.
getErrCode
(),
err
.
what
());
s_events_server
.
on_mk_tcp_session_disconnect
(
_local_port
,
(
mk_tcp_session
)
this
,
err
.
getErrCode
(),
err
.
what
());
}
}
}
}
void
SessionForC
::
onManager
()
{
void
SessionForC
::
onManager
()
{
if
(
s_events_server
.
on_mk_tcp_session_manager
)
{
if
(
s_events_server
.
on_mk_tcp_session_manager
)
{
s_events_server
.
on_mk_tcp_session_manager
(
_local_port
,
this
);
s_events_server
.
on_mk_tcp_session_manager
(
_local_port
,
(
mk_tcp_session
)
this
);
}
}
}
}
...
@@ -320,13 +320,13 @@ TcpClientForC::Ptr *mk_tcp_client_create_l(mk_tcp_client_events *events, mk_tcp_
...
@@ -320,13 +320,13 @@ TcpClientForC::Ptr *mk_tcp_client_create_l(mk_tcp_client_events *events, mk_tcp_
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_client_get_sock_info
(
const
mk_tcp_client
ctx
){
API_EXPORT
mk_sock_info
API_CALL
mk_tcp_client_get_sock_info
(
const
mk_tcp_client
ctx
){
assert
(
ctx
);
assert
(
ctx
);
TcpClientForC
::
Ptr
*
client
=
(
TcpClientForC
::
Ptr
*
)
ctx
;
TcpClientForC
::
Ptr
*
client
=
(
TcpClientForC
::
Ptr
*
)
ctx
;
return
(
SockInfo
*
)
client
->
get
();
return
(
mk_sock_info
)(
SockInfo
*
)
client
->
get
();
}
}
API_EXPORT
mk_tcp_client
API_CALL
mk_tcp_client_create
(
mk_tcp_client_events
*
events
,
mk_tcp_type
type
){
API_EXPORT
mk_tcp_client
API_CALL
mk_tcp_client_create
(
mk_tcp_client_events
*
events
,
mk_tcp_type
type
){
auto
ret
=
mk_tcp_client_create_l
(
events
,
type
);
auto
ret
=
mk_tcp_client_create_l
(
events
,
type
);
(
*
ret
)
->
setClient
(
ret
);
(
*
ret
)
->
setClient
(
(
mk_tcp_client
)
ret
);
return
ret
;
return
(
mk_tcp_client
)
ret
;
}
}
API_EXPORT
void
API_CALL
mk_tcp_client_release
(
mk_tcp_client
ctx
){
API_EXPORT
void
API_CALL
mk_tcp_client_release
(
mk_tcp_client
ctx
){
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_thread.cpp
查看文件 @
dc8508c5
...
@@ -19,21 +19,21 @@ using namespace toolkit;
...
@@ -19,21 +19,21 @@ using namespace toolkit;
API_EXPORT
mk_thread
API_CALL
mk_thread_from_tcp_session
(
mk_tcp_session
ctx
){
API_EXPORT
mk_thread
API_CALL
mk_thread_from_tcp_session
(
mk_tcp_session
ctx
){
assert
(
ctx
);
assert
(
ctx
);
SessionForC
*
obj
=
(
SessionForC
*
)
ctx
;
SessionForC
*
obj
=
(
SessionForC
*
)
ctx
;
return
obj
->
getPoller
().
get
(
);
return
(
mk_thread
)(
obj
->
getPoller
().
get
()
);
}
}
API_EXPORT
mk_thread
API_CALL
mk_thread_from_tcp_client
(
mk_tcp_client
ctx
){
API_EXPORT
mk_thread
API_CALL
mk_thread_from_tcp_client
(
mk_tcp_client
ctx
){
assert
(
ctx
);
assert
(
ctx
);
TcpClientForC
::
Ptr
*
client
=
(
TcpClientForC
::
Ptr
*
)
ctx
;
TcpClientForC
::
Ptr
*
client
=
(
TcpClientForC
::
Ptr
*
)
ctx
;
return
(
*
client
)
->
getPoller
().
get
(
);
return
(
mk_thread
)((
*
client
)
->
getPoller
().
get
()
);
}
}
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool
(){
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool
(){
return
EventPollerPool
::
Instance
().
getPoller
().
get
(
);
return
(
mk_thread
)(
EventPollerPool
::
Instance
().
getPoller
().
get
()
);
}
}
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool_work
(){
API_EXPORT
mk_thread
API_CALL
mk_thread_from_pool_work
(){
return
WorkThreadPool
::
Instance
().
getPoller
().
get
(
);
return
(
mk_thread
)(
WorkThreadPool
::
Instance
().
getPoller
().
get
()
);
}
}
API_EXPORT
void
API_CALL
mk_async_do
(
mk_thread
ctx
,
on_mk_async
cb
,
void
*
user_data
){
API_EXPORT
void
API_CALL
mk_async_do
(
mk_thread
ctx
,
on_mk_async
cb
,
void
*
user_data
){
...
@@ -123,7 +123,7 @@ API_EXPORT mk_timer API_CALL mk_timer_create2(mk_thread ctx, uint64_t delay_ms,
...
@@ -123,7 +123,7 @@ API_EXPORT mk_timer API_CALL mk_timer_create2(mk_thread ctx, uint64_t delay_ms,
std
::
shared_ptr
<
void
>
ptr
(
user_data
,
user_data_free
?
user_data_free
:
[](
void
*
)
{});
std
::
shared_ptr
<
void
>
ptr
(
user_data
,
user_data_free
?
user_data_free
:
[](
void
*
)
{});
TimerForC
::
Ptr
*
ret
=
new
TimerForC
::
Ptr
(
new
TimerForC
(
cb
,
ptr
));
TimerForC
::
Ptr
*
ret
=
new
TimerForC
::
Ptr
(
new
TimerForC
(
cb
,
ptr
));
(
*
ret
)
->
start
(
delay_ms
,
*
poller
);
(
*
ret
)
->
start
(
delay_ms
,
*
poller
);
return
ret
;
return
(
mk_timer
)
ret
;
}
}
API_EXPORT
void
API_CALL
mk_timer_release
(
mk_timer
ctx
){
API_EXPORT
void
API_CALL
mk_timer_release
(
mk_timer
ctx
){
...
@@ -148,7 +148,7 @@ public:
...
@@ -148,7 +148,7 @@ public:
};
};
API_EXPORT
mk_thread_pool
API_CALL
mk_thread_pool_create
(
const
char
*
name
,
size_t
n_thread
,
int
priority
)
{
API_EXPORT
mk_thread_pool
API_CALL
mk_thread_pool_create
(
const
char
*
name
,
size_t
n_thread
,
int
priority
)
{
return
new
WorkThreadPoolForC
(
name
,
n_thread
,
priority
);
return
(
mk_thread_pool
)
new
WorkThreadPoolForC
(
name
,
n_thread
,
priority
);
}
}
API_EXPORT
int
API_CALL
mk_thread_pool_release
(
mk_thread_pool
pool
)
{
API_EXPORT
int
API_CALL
mk_thread_pool_release
(
mk_thread_pool
pool
)
{
...
@@ -159,11 +159,11 @@ API_EXPORT int API_CALL mk_thread_pool_release(mk_thread_pool pool) {
...
@@ -159,11 +159,11 @@ API_EXPORT int API_CALL mk_thread_pool_release(mk_thread_pool pool) {
API_EXPORT
mk_thread
API_CALL
mk_thread_from_thread_pool
(
mk_thread_pool
pool
)
{
API_EXPORT
mk_thread
API_CALL
mk_thread_from_thread_pool
(
mk_thread_pool
pool
)
{
assert
(
pool
);
assert
(
pool
);
return
(
(
WorkThreadPoolForC
*
)
pool
)
->
getPoller
().
get
(
);
return
(
mk_thread
)(((
WorkThreadPoolForC
*
)
pool
)
->
getPoller
().
get
()
);
}
}
API_EXPORT
mk_sem
API_CALL
mk_sem_create
()
{
API_EXPORT
mk_sem
API_CALL
mk_sem_create
()
{
return
new
toolkit
::
semaphore
;
return
(
mk_sem
)
new
toolkit
::
semaphore
;
}
}
API_EXPORT
void
API_CALL
mk_sem_release
(
mk_sem
sem
)
{
API_EXPORT
void
API_CALL
mk_sem_release
(
mk_sem
sem
)
{
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_track.cpp
查看文件 @
dc8508c5
...
@@ -82,8 +82,8 @@ public:
...
@@ -82,8 +82,8 @@ public:
API_EXPORT
mk_track
API_CALL
mk_track_create
(
int
codec_id
,
codec_args
*
args
)
{
API_EXPORT
mk_track
API_CALL
mk_track_create
(
int
codec_id
,
codec_args
*
args
)
{
switch
(
getTrackType
((
CodecId
)
codec_id
))
{
switch
(
getTrackType
((
CodecId
)
codec_id
))
{
case
TrackVideo
:
return
new
Track
::
Ptr
(
std
::
make_shared
<
VideoTrackForC
>
(
codec_id
,
args
));
case
TrackVideo
:
return
(
mk_track
)
new
Track
::
Ptr
(
std
::
make_shared
<
VideoTrackForC
>
(
codec_id
,
args
));
case
TrackAudio
:
return
new
Track
::
Ptr
(
std
::
make_shared
<
AudioTrackForC
>
(
codec_id
,
args
));
case
TrackAudio
:
return
(
mk_track
)
new
Track
::
Ptr
(
std
::
make_shared
<
AudioTrackForC
>
(
codec_id
,
args
));
default:
WarnL
<<
"unrecognized codec:"
<<
codec_id
;
return
nullptr
;
default:
WarnL
<<
"unrecognized codec:"
<<
codec_id
;
return
nullptr
;
}
}
}
}
...
@@ -95,7 +95,7 @@ API_EXPORT void API_CALL mk_track_unref(mk_track track) {
...
@@ -95,7 +95,7 @@ API_EXPORT void API_CALL mk_track_unref(mk_track track) {
API_EXPORT
mk_track
API_CALL
mk_track_ref
(
mk_track
track
)
{
API_EXPORT
mk_track
API_CALL
mk_track_ref
(
mk_track
track
)
{
assert
(
track
);
assert
(
track
);
return
new
Track
::
Ptr
(
*
(
(
Track
::
Ptr
*
)
track
));
return
(
mk_track
)
new
Track
::
Ptr
(
*
(
(
Track
::
Ptr
*
)
track
));
}
}
API_EXPORT
int
API_CALL
mk_track_codec_id
(
mk_track
track
)
{
API_EXPORT
int
API_CALL
mk_track_codec_id
(
mk_track
track
)
{
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_transcode.cpp
查看文件 @
dc8508c5
...
@@ -29,12 +29,12 @@ std::vector<std::string> toCodecList(const char *codec_name_list[]) {
...
@@ -29,12 +29,12 @@ std::vector<std::string> toCodecList(const char *codec_name_list[]) {
API_EXPORT
mk_decoder
API_CALL
mk_decoder_create
(
mk_track
track
,
int
thread_num
)
{
API_EXPORT
mk_decoder
API_CALL
mk_decoder_create
(
mk_track
track
,
int
thread_num
)
{
assert
(
track
);
assert
(
track
);
return
new
FFmpegDecoder
(
*
((
Track
::
Ptr
*
)
track
),
thread_num
);
return
(
mk_decoder
)
new
FFmpegDecoder
(
*
((
Track
::
Ptr
*
)
track
),
thread_num
);
}
}
API_EXPORT
mk_decoder
API_CALL
mk_decoder_create2
(
mk_track
track
,
int
thread_num
,
const
char
*
codec_name_list
[])
{
API_EXPORT
mk_decoder
API_CALL
mk_decoder_create2
(
mk_track
track
,
int
thread_num
,
const
char
*
codec_name_list
[])
{
assert
(
track
&&
codec_name_list
);
assert
(
track
&&
codec_name_list
);
return
new
FFmpegDecoder
(
*
((
Track
::
Ptr
*
)
track
),
thread_num
,
toCodecList
(
codec_name_list
));
return
(
mk_decoder
)
new
FFmpegDecoder
(
*
((
Track
::
Ptr
*
)
track
),
thread_num
,
toCodecList
(
codec_name_list
));
}
}
API_EXPORT
void
API_CALL
mk_decoder_release
(
mk_decoder
ctx
,
int
flush_frame
)
{
API_EXPORT
void
API_CALL
mk_decoder_release
(
mk_decoder
ctx
,
int
flush_frame
)
{
...
@@ -77,12 +77,12 @@ API_EXPORT const AVCodecContext *API_CALL mk_decoder_get_context(mk_decoder ctx)
...
@@ -77,12 +77,12 @@ API_EXPORT const AVCodecContext *API_CALL mk_decoder_get_context(mk_decoder ctx)
API_EXPORT
mk_frame_pix
API_CALL
mk_frame_pix_ref
(
mk_frame_pix
frame
)
{
API_EXPORT
mk_frame_pix
API_CALL
mk_frame_pix_ref
(
mk_frame_pix
frame
)
{
assert
(
frame
);
assert
(
frame
);
return
new
FFmpegFrame
::
Ptr
(
*
(
FFmpegFrame
::
Ptr
*
)
frame
);
return
(
mk_frame_pix
)
new
FFmpegFrame
::
Ptr
(
*
(
FFmpegFrame
::
Ptr
*
)
frame
);
}
}
API_EXPORT
mk_frame_pix
API_CALL
mk_frame_pix_from_av_frame
(
AVFrame
*
frame
)
{
API_EXPORT
mk_frame_pix
API_CALL
mk_frame_pix_from_av_frame
(
AVFrame
*
frame
)
{
assert
(
frame
);
assert
(
frame
);
return
new
FFmpegFrame
::
Ptr
(
std
::
make_shared
<
FFmpegFrame
>
(
std
::
shared_ptr
<
AVFrame
>
(
av_frame_clone
(
frame
),
[](
AVFrame
*
frame
){
return
(
mk_frame_pix
)
new
FFmpegFrame
::
Ptr
(
std
::
make_shared
<
FFmpegFrame
>
(
std
::
shared_ptr
<
AVFrame
>
(
av_frame_clone
(
frame
),
[](
AVFrame
*
frame
){
av_frame_free
(
&
frame
);
av_frame_free
(
&
frame
);
})));
})));
}
}
...
@@ -99,7 +99,7 @@ API_EXPORT mk_frame_pix API_CALL mk_frame_pix_from_buffer(mk_buffer plane_data[]
...
@@ -99,7 +99,7 @@ API_EXPORT mk_frame_pix API_CALL mk_frame_pix_from_buffer(mk_buffer plane_data[]
frame
->
linesize
[
i
]
=
line_size
[
i
];
frame
->
linesize
[
i
]
=
line_size
[
i
];
buffer_array
.
emplace_back
(
buffer
);
buffer_array
.
emplace_back
(
buffer
);
}
}
return
new
FFmpegFrame
::
Ptr
(
new
FFmpegFrame
(
std
::
move
(
frame
)),
[
buffer_array
](
FFmpegFrame
*
frame
)
{
return
(
mk_frame_pix
)
new
FFmpegFrame
::
Ptr
(
new
FFmpegFrame
(
std
::
move
(
frame
)),
[
buffer_array
](
FFmpegFrame
*
frame
)
{
for
(
auto
&
buffer
:
buffer_array
)
{
for
(
auto
&
buffer
:
buffer_array
)
{
mk_buffer_unref
(
buffer
);
mk_buffer_unref
(
buffer
);
}
}
...
@@ -120,7 +120,7 @@ API_EXPORT AVFrame *API_CALL mk_frame_pix_get_av_frame(mk_frame_pix frame) {
...
@@ -120,7 +120,7 @@ API_EXPORT AVFrame *API_CALL mk_frame_pix_get_av_frame(mk_frame_pix frame) {
/////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////
API_EXPORT
mk_swscale
mk_swscale_create
(
int
output
,
int
width
,
int
height
)
{
API_EXPORT
mk_swscale
mk_swscale_create
(
int
output
,
int
width
,
int
height
)
{
return
new
FFmpegSws
((
AVPixelFormat
)
output
,
width
,
height
);
return
(
mk_swscale
)
new
FFmpegSws
((
AVPixelFormat
)
output
,
width
,
height
);
}
}
API_EXPORT
void
mk_swscale_release
(
mk_swscale
ctx
)
{
API_EXPORT
void
mk_swscale_release
(
mk_swscale
ctx
)
{
...
@@ -132,7 +132,7 @@ API_EXPORT int mk_swscale_input_frame(mk_swscale ctx, mk_frame_pix frame, uint8_
...
@@ -132,7 +132,7 @@ API_EXPORT int mk_swscale_input_frame(mk_swscale ctx, mk_frame_pix frame, uint8_
}
}
API_EXPORT
mk_frame_pix
mk_swscale_input_frame2
(
mk_swscale
ctx
,
mk_frame_pix
frame
){
API_EXPORT
mk_frame_pix
mk_swscale_input_frame2
(
mk_swscale
ctx
,
mk_frame_pix
frame
){
return
new
FFmpegFrame
::
Ptr
(((
FFmpegSws
*
)
ctx
)
->
inputFrame
(
*
(
FFmpegFrame
::
Ptr
*
)
frame
));
return
(
mk_frame_pix
)
new
FFmpegFrame
::
Ptr
(((
FFmpegSws
*
)
ctx
)
->
inputFrame
(
*
(
FFmpegFrame
::
Ptr
*
)
frame
));
}
}
API_EXPORT
uint8_t
**
API_CALL
mk_get_av_frame_data
(
AVFrame
*
frame
)
{
API_EXPORT
uint8_t
**
API_CALL
mk_get_av_frame_data
(
AVFrame
*
frame
)
{
...
...
This diff is collapsed.
Click to expand it.
api/source/mk_util.cpp
查看文件 @
dc8508c5
...
@@ -55,11 +55,11 @@ API_EXPORT char* API_CALL mk_util_hex_dump(const void *buf, int len){
...
@@ -55,11 +55,11 @@ API_EXPORT char* API_CALL mk_util_hex_dump(const void *buf, int len){
}
}
API_EXPORT
mk_ini
API_CALL
mk_ini_create
()
{
API_EXPORT
mk_ini
API_CALL
mk_ini_create
()
{
return
new
mINI
;
return
(
mk_ini
)
new
mINI
;
}
}
API_EXPORT
mk_ini
API_CALL
mk_ini_default
()
{
API_EXPORT
mk_ini
API_CALL
mk_ini_default
()
{
return
&
(
mINI
::
Instance
());
return
(
mk_ini
)
&
(
mINI
::
Instance
());
}
}
static
void
emit_ini_file_reload
(
mk_ini
ini
)
{
static
void
emit_ini_file_reload
(
mk_ini
ini
)
{
...
...
This diff is collapsed.
Click to expand it.
api/tests/pusher.c
查看文件 @
dc8508c5
...
@@ -32,7 +32,7 @@ void release_player(mk_player *ptr) {
...
@@ -32,7 +32,7 @@ void release_player(mk_player *ptr) {
}
}
}
}
void
release_pusher
(
mk_
media
*
ptr
)
{
void
release_pusher
(
mk_
pusher
*
ptr
)
{
if
(
ptr
&&
*
ptr
)
{
if
(
ptr
&&
*
ptr
)
{
mk_pusher_release
(
*
ptr
);
mk_pusher_release
(
*
ptr
);
*
ptr
=
NULL
;
*
ptr
=
NULL
;
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论