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
872c0c8b
Commit
872c0c8b
authored
6 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整理代码
parent
1b613c55
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
18 行增加
和
18 行删除
+18
-18
src/RTP/AACRtpCodec.cpp
+4
-5
src/RTP/H264RtpCodec.cpp
+14
-13
没有找到文件。
src/RTP/AACRtpCodec.cpp
查看文件 @
872c0c8b
...
...
@@ -78,15 +78,13 @@ void AACRtpCodec::makeAACRtp(const void *pData, unsigned int uiLen, bool bMark,
void
AACRtpCodec
::
inputRtp
(
const
RtpPacket
::
Ptr
&
rtppack
,
bool
key_pos
)
{
RtpCodec
::
inputRtp
(
rtppack
,
key_pos
);
char
*
frame
=
(
char
*
)
rtppack
->
payload
+
rtppack
->
offset
;
int
length
=
rtppack
->
length
-
rtppack
->
offset
;
if
(
m_adts
->
aac_frame_length
+
length
-
4
>
sizeof
(
AdtsFrame
::
buffer
))
{
m_adts
->
aac_frame_length
=
7
;
WarnL
<<
"aac负载数据太长"
;
return
;
return
;
}
memcpy
(
m_adts
->
buffer
+
m_adts
->
aac_frame_length
,
frame
+
4
,
length
-
4
);
memcpy
(
m_adts
->
buffer
+
m_adts
->
aac_frame_length
,
rtppack
->
payload
+
rtppack
->
offset
+
4
,
length
-
4
);
m_adts
->
aac_frame_length
+=
(
length
-
4
);
if
(
rtppack
->
mark
==
true
)
{
m_adts
->
sequence
=
rtppack
->
sequence
;
...
...
@@ -95,11 +93,12 @@ void AACRtpCodec::inputRtp(const RtpPacket::Ptr &rtppack, bool key_pos) {
writeAdtsHeader
(
*
m_adts
,
m_adts
->
buffer
);
onGetAdts
(
m_adts
);
}
return
;
}
void
AACRtpCodec
::
onGetAdts
(
const
AdtsFrame
::
Ptr
&
frame
)
{
//写入环形缓存
RtpCodec
::
inputFame
(
frame
,
false
);
//从缓存池重新申请对象,防止覆盖已经写入环形缓存的对象
m_adts
=
m_framePool
.
obtain
();
m_adts
->
aac_frame_length
=
7
;
}
...
...
This diff is collapsed.
Click to expand it.
src/RTP/H264RtpCodec.cpp
查看文件 @
872c0c8b
...
...
@@ -60,9 +60,8 @@ void H264RtpCodec::makeH264Rtp(const void* data, unsigned int len, bool mark, ui
uint16_t
sq
=
htons
(
m_ui16Sequence
);
uint32_t
sc
=
htonl
(
m_ui32Ssrc
);
auto
pRtppkt
=
obtainRtp
();
auto
&
rtppkt
=
*
(
pRtppkt
.
get
());
unsigned
char
*
pucRtp
=
rtppkt
.
payload
;
auto
rtppkt
=
obtainRtp
();
unsigned
char
*
pucRtp
=
rtppkt
->
payload
;
pucRtp
[
0
]
=
'$'
;
pucRtp
[
1
]
=
m_ui8Interleaved
;
pucRtp
[
2
]
=
ui16RtpLen
>>
8
;
...
...
@@ -76,18 +75,18 @@ void H264RtpCodec::makeH264Rtp(const void* data, unsigned int len, bool mark, ui
//playload
memcpy
(
&
pucRtp
[
16
],
data
,
len
);
rtppkt
.
PT
=
m_ui8PlayloadType
;
rtppkt
.
interleaved
=
m_ui8Interleaved
;
rtppkt
.
mark
=
mark
;
rtppkt
.
length
=
len
+
16
;
rtppkt
.
sequence
=
m_ui16Sequence
;
rtppkt
.
timeStamp
=
m_ui32TimeStamp
;
rtppkt
.
ssrc
=
m_ui32Ssrc
;
rtppkt
.
type
=
TrackVideo
;
rtppkt
.
offset
=
16
;
rtppkt
->
PT
=
m_ui8PlayloadType
;
rtppkt
->
interleaved
=
m_ui8Interleaved
;
rtppkt
->
mark
=
mark
;
rtppkt
->
length
=
len
+
16
;
rtppkt
->
sequence
=
m_ui16Sequence
;
rtppkt
->
timeStamp
=
m_ui32TimeStamp
;
rtppkt
->
ssrc
=
m_ui32Ssrc
;
rtppkt
->
type
=
TrackVideo
;
rtppkt
->
offset
=
16
;
uint8_t
type
=
((
uint8_t
*
)
(
data
))[
0
]
&
0x1F
;
RtpCodec
::
inputRtp
(
pR
tppkt
,
type
==
5
);
RtpCodec
::
inputRtp
(
r
tppkt
,
type
==
5
);
m_ui16Sequence
++
;
}
...
...
@@ -173,7 +172,9 @@ bool H264RtpCodec::decodeRtp(const RtpPacket::Ptr &rtppack, bool key_pos) {
}
void
H264RtpCodec
::
onGetH264
(
const
H264Frame
::
Ptr
&
frame
)
{
//写入环形缓存
RtpCodec
::
inputFame
(
frame
,
frame
->
type
==
5
);
//从缓存池重新申请对象,防止覆盖已经写入环形缓存的对象
m_h264frame
=
m_framePool
.
obtain
();
m_h264frame
->
buffer
.
clear
();
}
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论