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
893564d0
Commit
893564d0
authored
May 25, 2020
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复拼写错误
parent
06d61cf1
隐藏空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
89 行增加
和
89 行删除
+89
-89
src/Extension/AAC.h
+6
-6
src/Extension/AACRtp.cpp
+2
-2
src/Extension/AACRtp.h
+2
-2
src/Extension/Factory.cpp
+1
-1
src/Extension/G711.h
+5
-5
src/Extension/G711Rtp.cpp
+2
-2
src/Extension/G711Rtp.h
+2
-2
src/Extension/H264.h
+6
-6
src/Extension/H264Rtp.cpp
+2
-2
src/Extension/H264Rtp.h
+2
-2
src/Extension/H265.h
+6
-6
src/Extension/H265Rtp.cpp
+2
-2
src/Extension/H265Rtp.h
+2
-2
src/Extension/Opus.h
+5
-5
src/Http/WebSocketClient.h
+3
-3
src/Http/WebSocketSession.h
+1
-1
src/Http/WebSocketSplitter.cpp
+19
-19
src/Http/WebSocketSplitter.h
+7
-7
src/Rtsp/RtpCodec.cpp
+3
-3
src/Rtsp/RtpCodec.h
+5
-5
src/Rtsp/Rtsp.h
+6
-6
没有找到文件。
src/Extension/AAC.h
查看文件 @
893564d0
...
...
@@ -173,21 +173,21 @@ public:
* 构造函数
* @param aac_cfg aac两个字节的配置描述
* @param sample_rate 音频采样率
* @param p
layload_type rtp pl
ayload type 默认98
* @param p
ayload_type rtp p
ayload type 默认98
* @param bitrate 比特率
*/
AACSdp
(
const
string
&
aac_cfg
,
int
sample_rate
,
int
channels
,
int
p
l
ayload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
p
l
ayload_type
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
p
l
ayload_type
<<
"
\r\n
"
;
int
payload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
payload_type
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
payload_type
<<
"
\r\n
"
;
_printer
<<
"b=AS:"
<<
bitrate
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
p
l
ayload_type
<<
" MPEG4-GENERIC/"
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
payload_type
<<
" MPEG4-GENERIC/"
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
char
configStr
[
32
]
=
{
0
};
snprintf
(
configStr
,
sizeof
(
configStr
),
"%02X%02X"
,
(
uint8_t
)
aac_cfg
[
0
],
(
uint8_t
)
aac_cfg
[
1
]);
_printer
<<
"a=fmtp:"
<<
p
l
ayload_type
<<
" streamtype=5;profile-level-id=1;mode=AAC-hbr;"
_printer
<<
"a=fmtp:"
<<
payload_type
<<
" streamtype=5;profile-level-id=1;mode=AAC-hbr;"
<<
"sizelength=13;indexlength=3;indexdeltalength=3;config="
<<
configStr
<<
"
\r\n
"
;
_printer
<<
"a=control:trackID="
<<
(
int
)
TrackAudio
<<
"
\r\n
"
;
}
...
...
src/Extension/AACRtp.cpp
查看文件 @
893564d0
...
...
@@ -16,12 +16,12 @@ namespace mediakit{
AACRtpEncoder
::
AACRtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
,
uint8_t
ui8PayloadType
,
uint8_t
ui8Interleaved
)
:
RtpInfo
(
ui32Ssrc
,
ui32MtuSize
,
ui32SampleRate
,
ui8P
l
ayloadType
,
ui8PayloadType
,
ui8Interleaved
){
}
...
...
src/Extension/AACRtp.h
查看文件 @
893564d0
...
...
@@ -56,13 +56,13 @@ public:
* @param ui32Ssrc ssrc
* @param ui32MtuSize mtu 大小
* @param ui32SampleRate 采样率
* @param ui8P
l
ayloadType pt类型
* @param ui8PayloadType pt类型
* @param ui8Interleaved rtsp interleaved 值
*/
AACRtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
=
97
,
uint8_t
ui8PayloadType
=
97
,
uint8_t
ui8Interleaved
=
TrackAudio
*
2
);
~
AACRtpEncoder
()
{}
...
...
src/Extension/Factory.cpp
查看文件 @
893564d0
...
...
@@ -115,7 +115,7 @@ RtpCodec::Ptr Factory::getRtpEncoderBySdp(const Sdp::Ptr &sdp) {
}
auto
mtu
=
(
sdp
->
getTrackType
()
==
TrackVideo
?
video_mtu
:
audio_mtu
);
auto
sample_rate
=
sdp
->
getSampleRate
();
auto
pt
=
sdp
->
getP
l
ayloadType
();
auto
pt
=
sdp
->
getPayloadType
();
auto
interleaved
=
sdp
->
getTrackType
()
*
2
;
auto
codec_id
=
sdp
->
getCodecId
();
switch
(
codec_id
){
...
...
src/Extension/G711.h
查看文件 @
893564d0
...
...
@@ -83,16 +83,16 @@ public:
* G711采样率固定为8000
* @param codecId G711A G711U
* @param sample_rate 音频采样率
* @param p
layload_type rtp pl
ayload
* @param p
ayload_type rtp p
ayload
* @param bitrate 比特率
*/
G711Sdp
(
CodecId
codecId
,
int
sample_rate
,
int
channels
,
int
p
l
ayload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
p
l
ayload_type
),
_codecId
(
codecId
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
p
l
ayload_type
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
p
l
ayload_type
<<
(
codecId
==
CodecG711A
?
" PCMA/"
:
" PCMU/"
)
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
int
payload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
payload_type
),
_codecId
(
codecId
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
payload_type
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
payload_type
<<
(
codecId
==
CodecG711A
?
" PCMA/"
:
" PCMU/"
)
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
_printer
<<
"a=control:trackID="
<<
(
int
)
TrackAudio
<<
"
\r\n
"
;
}
...
...
src/Extension/G711Rtp.cpp
查看文件 @
893564d0
...
...
@@ -62,12 +62,12 @@ void G711RtpDecoder::onGetG711(const G711Frame::Ptr &frame) {
G711RtpEncoder
::
G711RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
,
uint8_t
ui8PayloadType
,
uint8_t
ui8Interleaved
)
:
RtpInfo
(
ui32Ssrc
,
ui32MtuSize
,
ui32SampleRate
,
ui8P
l
ayloadType
,
ui8PayloadType
,
ui8Interleaved
)
{
}
...
...
src/Extension/G711Rtp.h
查看文件 @
893564d0
...
...
@@ -58,13 +58,13 @@ public:
* @param ui32Ssrc ssrc
* @param ui32MtuSize mtu 大小
* @param ui32SampleRate 采样率
* @param ui8P
l
ayloadType pt类型
* @param ui8PayloadType pt类型
* @param ui8Interleaved rtsp interleaved 值
*/
G711RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
=
0
,
uint8_t
ui8PayloadType
=
0
,
uint8_t
ui8Interleaved
=
TrackAudio
*
2
);
~
G711RtpEncoder
()
{}
...
...
src/Extension/H264.h
查看文件 @
893564d0
...
...
@@ -289,18 +289,18 @@ public:
*
* @param sps 264 sps,不带0x00000001头
* @param pps 264 pps,不带0x00000001头
* @param p
layload_type rtp pl
ayload type 默认96
* @param p
ayload_type rtp p
ayload type 默认96
* @param bitrate 比特率
*/
H264Sdp
(
const
string
&
strSPS
,
const
string
&
strPPS
,
int
p
l
ayload_type
=
96
,
int
bitrate
=
4000
)
:
Sdp
(
90000
,
p
l
ayload_type
)
{
int
payload_type
=
96
,
int
bitrate
=
4000
)
:
Sdp
(
90000
,
payload_type
)
{
//视频通道
_printer
<<
"m=video 0 RTP/AVP "
<<
p
l
ayload_type
<<
"
\r\n
"
;
_printer
<<
"m=video 0 RTP/AVP "
<<
payload_type
<<
"
\r\n
"
;
_printer
<<
"b=AS:"
<<
bitrate
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
p
l
ayload_type
<<
" H264/"
<<
90000
<<
"
\r\n
"
;
_printer
<<
"a=fmtp:"
<<
p
l
ayload_type
<<
" packetization-mode=1; profile-level-id="
;
_printer
<<
"a=rtpmap:"
<<
payload_type
<<
" H264/"
<<
90000
<<
"
\r\n
"
;
_printer
<<
"a=fmtp:"
<<
payload_type
<<
" packetization-mode=1; profile-level-id="
;
char
strTemp
[
100
];
uint32_t
profile_level_id
=
0
;
...
...
src/Extension/H264Rtp.cpp
查看文件 @
893564d0
...
...
@@ -204,12 +204,12 @@ void H264RtpDecoder::onGetH264(const H264Frame::Ptr &frame) {
H264RtpEncoder
::
H264RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
,
uint8_t
ui8PayloadType
,
uint8_t
ui8Interleaved
)
:
RtpInfo
(
ui32Ssrc
,
ui32MtuSize
,
ui32SampleRate
,
ui8P
l
ayloadType
,
ui8PayloadType
,
ui8Interleaved
)
{
}
...
...
src/Extension/H264Rtp.h
查看文件 @
893564d0
...
...
@@ -62,13 +62,13 @@ public:
* @param ui32Ssrc ssrc
* @param ui32MtuSize mtu大小
* @param ui32SampleRate 采样率,强制为90000
* @param ui8P
l
ayloadType pt类型
* @param ui8PayloadType pt类型
* @param ui8Interleaved rtsp interleaved
*/
H264RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
=
1400
,
uint32_t
ui32SampleRate
=
90000
,
uint8_t
ui8P
l
ayloadType
=
96
,
uint8_t
ui8PayloadType
=
96
,
uint8_t
ui8Interleaved
=
TrackVideo
*
2
);
~
H264RtpEncoder
()
{}
...
...
src/Extension/H265.h
查看文件 @
893564d0
...
...
@@ -315,19 +315,19 @@ public:
* 构造函数
* @param sps 265 sps,不带0x00000001头
* @param pps 265 pps,不带0x00000001头
* @param p
layload_type rtp pl
ayload type 默认96
* @param p
ayload_type rtp p
ayload type 默认96
* @param bitrate 比特率
*/
H265Sdp
(
const
string
&
strVPS
,
const
string
&
strSPS
,
const
string
&
strPPS
,
int
p
l
ayload_type
=
96
,
int
bitrate
=
4000
)
:
Sdp
(
90000
,
p
l
ayload_type
)
{
int
payload_type
=
96
,
int
bitrate
=
4000
)
:
Sdp
(
90000
,
payload_type
)
{
//视频通道
_printer
<<
"m=video 0 RTP/AVP "
<<
p
l
ayload_type
<<
"
\r\n
"
;
_printer
<<
"m=video 0 RTP/AVP "
<<
payload_type
<<
"
\r\n
"
;
_printer
<<
"b=AS:"
<<
bitrate
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
p
l
ayload_type
<<
" H265/"
<<
90000
<<
"
\r\n
"
;
_printer
<<
"a=fmtp:"
<<
p
l
ayload_type
<<
" "
;
_printer
<<
"a=rtpmap:"
<<
payload_type
<<
" H265/"
<<
90000
<<
"
\r\n
"
;
_printer
<<
"a=fmtp:"
<<
payload_type
<<
" "
;
_printer
<<
"sprop-vps="
;
_printer
<<
encodeBase64
(
strVPS
)
<<
"; "
;
_printer
<<
"sprop-sps="
;
...
...
src/Extension/H265Rtp.cpp
查看文件 @
893564d0
...
...
@@ -140,12 +140,12 @@ void H265RtpDecoder::onGetH265(const H265Frame::Ptr &frame) {
H265RtpEncoder
::
H265RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
,
uint8_t
ui8PayloadType
,
uint8_t
ui8Interleaved
)
:
RtpInfo
(
ui32Ssrc
,
ui32MtuSize
,
ui32SampleRate
,
ui8P
l
ayloadType
,
ui8PayloadType
,
ui8Interleaved
)
{
}
...
...
src/Extension/H265Rtp.h
查看文件 @
893564d0
...
...
@@ -63,13 +63,13 @@ public:
* @param ui32Ssrc ssrc
* @param ui32MtuSize mtu大小
* @param ui32SampleRate 采样率,强制为90000
* @param ui8P
l
ayloadType pt类型
* @param ui8PayloadType pt类型
* @param ui8Interleaved rtsp interleaved
*/
H265RtpEncoder
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
=
1400
,
uint32_t
ui32SampleRate
=
90000
,
uint8_t
ui8P
l
ayloadType
=
96
,
uint8_t
ui8PayloadType
=
96
,
uint8_t
ui8Interleaved
=
TrackVideo
*
2
);
~
H265RtpEncoder
()
{}
...
...
src/Extension/Opus.h
查看文件 @
893564d0
...
...
@@ -80,15 +80,15 @@ public:
/**
* 构造opus sdp
* @param sample_rate 音频采样率
* @param p
layload_type rtp pl
ayload
* @param p
ayload_type rtp p
ayload
* @param bitrate 比特率
*/
OpusSdp
(
int
sample_rate
,
int
channels
,
int
p
l
ayload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
p
l
ayload_type
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
p
l
ayload_type
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
p
l
ayload_type
<<
" opus/"
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
int
payload_type
=
98
,
int
bitrate
=
128
)
:
Sdp
(
sample_rate
,
payload_type
){
_printer
<<
"m=audio 0 RTP/AVP "
<<
payload_type
<<
"
\r\n
"
;
_printer
<<
"a=rtpmap:"
<<
payload_type
<<
" opus/"
<<
sample_rate
<<
"/"
<<
channels
<<
"
\r\n
"
;
_printer
<<
"a=control:trackID="
<<
(
int
)
TrackAudio
<<
"
\r\n
"
;
}
...
...
src/Http/WebSocketClient.h
查看文件 @
893564d0
...
...
@@ -193,7 +193,7 @@ protected:
//WebSocketSplitter override
/**
* 收到一个webSocket数据包包头,后续将继续触发onWebSocketDecodeP
l
ayload回调
* 收到一个webSocket数据包包头,后续将继续触发onWebSocketDecodePayload回调
* @param header 数据包头
*/
void
onWebSocketDecodeHeader
(
const
WebSocketHeader
&
header
)
override
{
...
...
@@ -205,9 +205,9 @@ protected:
* @param header 数据包包头
* @param ptr 负载数据指针
* @param len 负载数据长度
* @param recved 已接收数据长度(包含本次数据长度),等于header._p
l
ayload_len时则接受完毕
* @param recved 已接收数据长度(包含本次数据长度),等于header._payload_len时则接受完毕
*/
void
onWebSocketDecodeP
l
ayload
(
const
WebSocketHeader
&
header
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
override
{
void
onWebSocketDecodePayload
(
const
WebSocketHeader
&
header
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
override
{
_payload
.
append
((
char
*
)
ptr
,
len
);
}
...
...
src/Http/WebSocketSession.h
查看文件 @
893564d0
...
...
@@ -161,7 +161,7 @@ protected:
* @param len
* @param recved
*/
void
onWebSocketDecodeP
l
ayload
(
const
WebSocketHeader
&
packet
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
override
{
void
onWebSocketDecodePayload
(
const
WebSocketHeader
&
packet
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
override
{
_remian_data
.
append
((
char
*
)
ptr
,
len
);
}
...
...
src/Http/WebSocketSplitter.cpp
查看文件 @
893564d0
...
...
@@ -72,16 +72,16 @@ begin_decode:
CHECK_LEN
(
1
);
_mask_flag
=
(
*
ptr
&
0x80
)
>>
7
;
_p
l
ayload_len
=
(
*
ptr
&
0x7F
);
_payload_len
=
(
*
ptr
&
0x7F
);
ptr
+=
1
;
if
(
_p
l
ayload_len
==
126
)
{
if
(
_payload_len
==
126
)
{
CHECK_LEN
(
2
);
_p
l
ayload_len
=
(
*
ptr
<<
8
)
|
*
(
ptr
+
1
);
_payload_len
=
(
*
ptr
<<
8
)
|
*
(
ptr
+
1
);
ptr
+=
2
;
}
else
if
(
_p
l
ayload_len
==
127
)
{
}
else
if
(
_payload_len
==
127
)
{
CHECK_LEN
(
8
);
_p
l
ayload_len
=
((
uint64_t
)
ptr
[
0
]
<<
(
8
*
7
))
|
_payload_len
=
((
uint64_t
)
ptr
[
0
]
<<
(
8
*
7
))
|
((
uint64_t
)
ptr
[
1
]
<<
(
8
*
6
))
|
((
uint64_t
)
ptr
[
2
]
<<
(
8
*
5
))
|
((
uint64_t
)
ptr
[
3
]
<<
(
8
*
4
))
|
...
...
@@ -98,9 +98,9 @@ begin_decode:
}
_got_header
=
true
;
_mask_offset
=
0
;
_p
l
ayload_offset
=
0
;
_payload_offset
=
0
;
onWebSocketDecodeHeader
(
*
this
);
if
(
_p
l
ayload_len
==
0
){
if
(
_payload_len
==
0
){
onWebSocketDecodeComplete
(
*
this
);
}
}
...
...
@@ -109,19 +109,19 @@ begin_decode:
uint64_t
remain
=
len
-
(
ptr
-
data
);
if
(
remain
>
0
){
uint64_t
p
l
ayload_slice_len
=
remain
;
if
(
p
layload_slice_len
+
_playload_offset
>
_pl
ayload_len
){
p
layload_slice_len
=
_playload_len
-
_pl
ayload_offset
;
uint64_t
payload_slice_len
=
remain
;
if
(
p
ayload_slice_len
+
_payload_offset
>
_p
ayload_len
){
p
ayload_slice_len
=
_payload_len
-
_p
ayload_offset
;
}
_p
layload_offset
+=
pl
ayload_slice_len
;
onP
layloadData
(
ptr
,
pl
ayload_slice_len
);
_p
ayload_offset
+=
p
ayload_slice_len
;
onP
ayloadData
(
ptr
,
p
ayload_slice_len
);
if
(
_p
layload_offset
==
_pl
ayload_len
){
if
(
_p
ayload_offset
==
_p
ayload_len
){
onWebSocketDecodeComplete
(
*
this
);
//这是下一个包
remain
-=
p
l
ayload_slice_len
;
ptr
+=
p
l
ayload_slice_len
;
remain
-=
payload_slice_len
;
ptr
+=
payload_slice_len
;
_got_header
=
false
;
if
(
remain
>
0
){
...
...
@@ -138,14 +138,14 @@ begin_decode:
_remain_data
.
clear
();
}
void
WebSocketSplitter
::
onP
layloadData
(
uint8_t
*
ptr
,
uint64_t
len
)
{
void
WebSocketSplitter
::
onP
ayloadData
(
uint8_t
*
data
,
uint64_t
len
)
{
if
(
_mask_flag
){
for
(
int
i
=
0
;
i
<
len
;
++
i
,
++
ptr
){
*
(
ptr
)
^=
_mask
[(
i
+
_mask_offset
)
%
4
];
for
(
int
i
=
0
;
i
<
len
;
++
i
,
++
data
){
*
(
data
)
^=
_mask
[(
i
+
_mask_offset
)
%
4
];
}
_mask_offset
=
(
_mask_offset
+
len
)
%
4
;
}
onWebSocketDecodeP
layload
(
*
this
,
_mask_flag
?
ptr
-
len
:
ptr
,
len
,
_pl
ayload_offset
);
onWebSocketDecodeP
ayload
(
*
this
,
_mask_flag
?
data
-
len
:
data
,
len
,
_p
ayload_offset
);
}
void
WebSocketSplitter
::
encode
(
const
WebSocketHeader
&
header
,
const
Buffer
::
Ptr
&
buffer
)
{
...
...
src/Http/WebSocketSplitter.h
查看文件 @
893564d0
...
...
@@ -51,7 +51,7 @@ public:
uint8_t
_reserved
;
Type
_opcode
;
bool
_mask_flag
;
uint64_t
_p
l
ayload_len
;
uint64_t
_payload_len
;
vector
<
uint8_t
>
_mask
;
};
...
...
@@ -62,7 +62,7 @@ public:
/**
* 输入数据以便解包webSocket数据以及处理粘包问题
* 可能触发onWebSocketDecodeHeader和onWebSocketDecodeP
l
ayload回调
* 可能触发onWebSocketDecodeHeader和onWebSocketDecodePayload回调
* @param data 需要解包的数据,可能是不完整的包或多个包
* @param len 数据长度
*/
...
...
@@ -77,7 +77,7 @@ public:
void
encode
(
const
WebSocketHeader
&
header
,
const
Buffer
::
Ptr
&
buffer
);
protected
:
/**
* 收到一个webSocket数据包包头,后续将继续触发onWebSocketDecodeP
l
ayload回调
* 收到一个webSocket数据包包头,后续将继续触发onWebSocketDecodePayload回调
* @param header 数据包头
*/
virtual
void
onWebSocketDecodeHeader
(
const
WebSocketHeader
&
header
)
{};
...
...
@@ -87,9 +87,9 @@ protected:
* @param header 数据包包头
* @param ptr 负载数据指针
* @param len 负载数据长度
* @param recved 已接收数据长度(包含本次数据长度),等于header._p
l
ayload_len时则接受完毕
* @param recved 已接收数据长度(包含本次数据长度),等于header._payload_len时则接受完毕
*/
virtual
void
onWebSocketDecodeP
l
ayload
(
const
WebSocketHeader
&
header
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
{};
virtual
void
onWebSocketDecodePayload
(
const
WebSocketHeader
&
header
,
const
uint8_t
*
ptr
,
uint64_t
len
,
uint64_t
recved
)
{};
/**
...
...
@@ -105,12 +105,12 @@ protected:
*/
virtual
void
onWebSocketEncodeData
(
const
Buffer
::
Ptr
&
buffer
){};
private
:
void
onP
layloadData
(
uint8_t
*
data
,
uint64_t
len
);
void
onP
ayloadData
(
uint8_t
*
data
,
uint64_t
len
);
private
:
string
_remain_data
;
int
_mask_offset
=
0
;
bool
_got_header
=
false
;
uint64_t
_p
l
ayload_offset
=
0
;
uint64_t
_payload_offset
=
0
;
};
}
/* namespace mediakit */
...
...
src/Rtsp/RtpCodec.cpp
查看文件 @
893564d0
...
...
@@ -28,18 +28,18 @@ RtpPacket::Ptr RtpInfo::makeRtp(TrackType type, const void* data, unsigned int l
pucRtp
[
2
]
=
ui16RtpLen
>>
8
;
pucRtp
[
3
]
=
ui16RtpLen
&
0x00FF
;
pucRtp
[
4
]
=
0x80
;
pucRtp
[
5
]
=
(
mark
<<
7
)
|
_ui8P
l
ayloadType
;
pucRtp
[
5
]
=
(
mark
<<
7
)
|
_ui8PayloadType
;
memcpy
(
&
pucRtp
[
6
],
&
sq
,
2
);
memcpy
(
&
pucRtp
[
8
],
&
ts
,
4
);
//ssrc
memcpy
(
&
pucRtp
[
12
],
&
sc
,
4
);
if
(
data
){
//p
l
ayload
//payload
memcpy
(
&
pucRtp
[
16
],
data
,
len
);
}
rtppkt
->
PT
=
_ui8P
l
ayloadType
;
rtppkt
->
PT
=
_ui8PayloadType
;
rtppkt
->
interleaved
=
_ui8Interleaved
;
rtppkt
->
mark
=
mark
;
rtppkt
->
sequence
=
_ui16Sequence
;
...
...
src/Rtsp/RtpCodec.h
查看文件 @
893564d0
...
...
@@ -66,7 +66,7 @@ public:
RtpInfo
(
uint32_t
ui32Ssrc
,
uint32_t
ui32MtuSize
,
uint32_t
ui32SampleRate
,
uint8_t
ui8P
l
ayloadType
,
uint8_t
ui8PayloadType
,
uint8_t
ui8Interleaved
)
{
if
(
ui32Ssrc
==
0
){
ui32Ssrc
=
((
uint64_t
)
this
)
&
0xFFFFFFFF
;
...
...
@@ -74,7 +74,7 @@ public:
_ui32Ssrc
=
ui32Ssrc
;
_ui32SampleRate
=
ui32SampleRate
;
_ui32MtuSize
=
ui32MtuSize
;
_ui8P
layloadType
=
ui8Pl
ayloadType
;
_ui8P
ayloadType
=
ui8P
ayloadType
;
_ui8Interleaved
=
ui8Interleaved
;
}
...
...
@@ -84,8 +84,8 @@ public:
return
_ui8Interleaved
;
}
int
getP
l
ayloadType
()
const
{
return
_ui8P
l
ayloadType
;
int
getPayloadType
()
const
{
return
_ui8PayloadType
;
}
int
getSampleRate
()
const
{
...
...
@@ -110,7 +110,7 @@ protected:
uint32_t
_ui32Ssrc
;
uint32_t
_ui32SampleRate
;
uint32_t
_ui32MtuSize
;
uint8_t
_ui8P
l
ayloadType
;
uint8_t
_ui8PayloadType
;
uint8_t
_ui8Interleaved
;
uint16_t
_ui16Sequence
=
0
;
uint32_t
_ui32TimeStamp
=
0
;
...
...
src/Rtsp/Rtsp.h
查看文件 @
893564d0
...
...
@@ -188,11 +188,11 @@ public:
/**
* 构造sdp
* @param sample_rate 采样率
* @param p
l
ayload_type pt类型
* @param payload_type pt类型
*/
Sdp
(
uint32_t
sample_rate
,
uint8_t
p
l
ayload_type
){
Sdp
(
uint32_t
sample_rate
,
uint8_t
payload_type
){
_sample_rate
=
sample_rate
;
_p
layload_type
=
pl
ayload_type
;
_p
ayload_type
=
p
ayload_type
;
}
virtual
~
Sdp
(){}
...
...
@@ -207,8 +207,8 @@ public:
* 获取pt
* @return
*/
uint8_t
getP
l
ayloadType
()
const
{
return
_p
l
ayload_type
;
uint8_t
getPayloadType
()
const
{
return
_payload_type
;
}
/**
...
...
@@ -219,7 +219,7 @@ public:
return
_sample_rate
;
}
private
:
uint8_t
_p
l
ayload_type
;
uint8_t
_payload_type
;
uint32_t
_sample_rate
;
};
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论