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
a30a83d6
Commit
a30a83d6
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加H265相关接口
parent
0bff2ad1
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
39 行增加
和
0 行删除
+39
-0
src/Common/Device.cpp
+24
-0
src/Common/Device.h
+15
-0
没有找到文件。
src/Common/Device.cpp
查看文件 @
a30a83d6
...
...
@@ -32,6 +32,7 @@
#include "Util/TimeTicker.h"
#include "Extension/AAC.h"
#include "Extension/H264.h"
#include "Extension/H265.h"
using
namespace
toolkit
;
...
...
@@ -106,6 +107,24 @@ void DevChannel::inputH264(const char* pcData, int iDataLen, uint32_t dts,uint32
inputFrame
(
std
::
make_shared
<
H264FrameNoCacheAble
>
((
char
*
)
pcData
,
iDataLen
,
dts
,
pts
,
prefixeSize
));
}
void
DevChannel
::
inputH265
(
const
char
*
pcData
,
int
iDataLen
,
uint32_t
dts
,
uint32_t
pts
)
{
if
(
dts
==
0
){
dts
=
(
uint32_t
)
_aTicker
[
0
].
elapsedTime
();
}
if
(
pts
==
0
){
pts
=
dts
;
}
int
prefixeSize
;
if
(
memcmp
(
"
\x00\x00\x00\x01
"
,
pcData
,
4
)
==
0
)
{
prefixeSize
=
4
;
}
else
if
(
memcmp
(
"
\x00\x00\x01
"
,
pcData
,
3
)
==
0
)
{
prefixeSize
=
3
;
}
else
{
prefixeSize
=
0
;
}
inputFrame
(
std
::
make_shared
<
H265FrameNoCacheAble
>
((
char
*
)
pcData
,
iDataLen
,
dts
,
pts
,
prefixeSize
));
}
void
DevChannel
::
inputAAC
(
const
char
*
pcData
,
int
iDataLen
,
uint32_t
uiStamp
,
bool
withAdtsHeader
)
{
if
(
withAdtsHeader
){
inputAAC
(
pcData
+
7
,
iDataLen
-
7
,
uiStamp
,
pcData
);
...
...
@@ -135,6 +154,11 @@ void DevChannel::initVideo(const VideoInfo& info) {
addTrack
(
std
::
make_shared
<
H264Track
>
());
}
void
DevChannel
::
initH265Video
(
const
VideoInfo
&
info
){
_video
=
std
::
make_shared
<
VideoInfo
>
(
info
);
addTrack
(
std
::
make_shared
<
H265Track
>
());
}
void
DevChannel
::
initAudio
(
const
AudioInfo
&
info
)
{
_audio
=
std
::
make_shared
<
AudioInfo
>
(
info
);
addTrack
(
std
::
make_shared
<
AACTrack
>
());
...
...
This diff is collapsed.
Click to expand it.
src/Common/Device.h
查看文件 @
a30a83d6
...
...
@@ -88,6 +88,12 @@ public:
*/
void
initVideo
(
const
VideoInfo
&
info
);
/**
* 初始化h265视频Track
* @param info
*/
void
initH265Video
(
const
VideoInfo
&
info
);
/**
* 初始化aac音频Track
* 相当于MultiMediaSourceMuxer::addTrack(AACTrack::Ptr );
...
...
@@ -105,6 +111,15 @@ public:
void
inputH264
(
const
char
*
pcData
,
int
iDataLen
,
uint32_t
dts
,
uint32_t
pts
=
0
);
/**
* 输入265帧
* @param pcData 265单帧数据指针
* @param iDataLen 数据指针长度
* @param dts 解码时间戳,单位毫秒;等于0时内部会自动生成时间戳
* @param pts 播放时间戳,单位毫秒;等于0时内部会赋值为dts
*/
void
inputH265
(
const
char
*
pcData
,
int
iDataLen
,
uint32_t
dts
,
uint32_t
pts
=
0
);
/**
* 输入可能带adts头的aac帧
* @param pcDataWithAdts 可能带adts头的aac帧
* @param iDataLen 帧数据长度
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论