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
4ab270ca
Commit
4ab270ca
authored
4 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
精简代码
parent
6356ffcb
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
4 行增加
和
32 行删除
+4
-32
src/Extension/AAC.h
+4
-32
没有找到文件。
src/Extension/AAC.h
查看文件 @
4ab270ca
...
...
@@ -17,8 +17,6 @@
namespace
mediakit
{
class
AACFrame
;
string
makeAacConfig
(
const
uint8_t
*
hex
);
void
dumpAacConfig
(
const
string
&
config
,
int
length
,
uint8_t
*
out
);
void
parseAacConfig
(
const
string
&
config
,
int
&
samplerate
,
int
&
channels
);
...
...
@@ -38,11 +36,11 @@ class AACFrameNoCacheAble : public FrameFromPtr {
public
:
typedef
std
::
shared_ptr
<
AACFrameNoCacheAble
>
Ptr
;
AACFrameNoCacheAble
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
=
0
,
int
prefix
eSize
=
7
){
AACFrameNoCacheAble
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
=
0
,
int
prefix
_size
=
ADTS_HEADER_LEN
){
_ptr
=
ptr
;
_size
=
size
;
_dts
=
dts
;
_prefix_size
=
prefix
eS
ize
;
_prefix_size
=
prefix
_s
ize
;
}
CodecId
getCodecId
()
const
override
{
...
...
@@ -84,31 +82,6 @@ public:
}
/**
* 构造aac类型的媒体
* @param adts_header adts头,7个字节
* @param adts_header_len adts头长度,不少于7个字节
*/
AACTrack
(
const
char
*
adts_header
,
int
adts_header_len
=
7
){
if
(
adts_header_len
<
7
){
throw
std
::
invalid_argument
(
"adts头必须不少于7个字节"
);
}
_cfg
=
makeAacConfig
((
uint8_t
*
)
adts_header
);
onReady
();
}
/**
* 构造aac类型的媒体
* @param aac_frame_with_adts 带adts头的aac帧
*/
AACTrack
(
const
Frame
::
Ptr
&
aac_frame_with_adts
){
if
(
aac_frame_with_adts
->
getCodecId
()
!=
CodecAAC
||
aac_frame_with_adts
->
prefixSize
()
<
7
){
throw
std
::
invalid_argument
(
"必须输入带adts头的aac帧"
);
}
_cfg
=
makeAacConfig
((
uint8_t
*
)
aac_frame_with_adts
->
data
());
onReady
();
}
/**
* 获取aac两个字节的配置
*/
const
string
&
getAacCfg
()
const
{
...
...
@@ -157,7 +130,7 @@ public:
void
inputFrame
(
const
Frame
::
Ptr
&
frame
)
override
{
if
(
_cfg
.
empty
())
{
//未获取到aac_cfg信息
if
(
frame
->
prefixSize
()
>=
7
)
{
if
(
frame
->
prefixSize
()
>=
ADTS_HEADER_LEN
)
{
//7个字节的adts头
_cfg
=
makeAacConfig
((
uint8_t
*
)
(
frame
->
data
()));
onReady
();
...
...
@@ -215,8 +188,7 @@ public:
char
configStr
[
32
]
=
{
0
};
snprintf
(
configStr
,
sizeof
(
configStr
),
"%02X%02X"
,
(
uint8_t
)
aac_cfg
[
0
],
(
uint8_t
)
aac_cfg
[
1
]);
_printer
<<
"a=fmtp:"
<<
playload_type
<<
" streamtype=5;profile-level-id=1;mode=AAC-hbr;"
<<
"sizelength=13;indexlength=3;indexdeltalength=3;config="
<<
configStr
<<
"
\r\n
"
;
<<
"sizelength=13;indexlength=3;indexdeltalength=3;config="
<<
configStr
<<
"
\r\n
"
;
_printer
<<
"a=control:trackID="
<<
(
int
)
TrackAudio
<<
"
\r\n
"
;
}
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论