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
4858dc74
Commit
4858dc74
authored
6 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复bug
parent
f3f7a962
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
29 行增加
和
28 行删除
+29
-28
src/Player/Track.h
+1
-1
src/Rtsp/RtpParser.cpp
+10
-17
src/Rtsp/RtpParser.h
+14
-4
src/Rtsp/RtspSdp.h
+4
-6
没有找到文件。
src/Player/Track.h
查看文件 @
4858dc74
...
...
@@ -156,7 +156,7 @@ public:
if
(
_sps
.
empty
()
||
_pps
.
empty
()){
return
TrackInvalid
;
}
return
Track
Audi
o
;
return
Track
Vide
o
;
}
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtpParser.cpp
查看文件 @
4858dc74
...
...
@@ -73,28 +73,21 @@ RtpParser::RtpParser(const string& sdp) {
bool
RtpParser
::
inputRtp
(
const
RtpPacket
::
Ptr
&
rtp
)
{
switch
(
rtp
->
getTrackType
())
{
case
TrackVideo
:
return
inputVideo
(
rtp
);
case
TrackAudio
:
return
inputAudio
(
rtp
);
case
TrackVideo
:{
if
(
_videoRtpDecoder
){
return
_videoRtpDecoder
->
inputRtp
(
rtp
,
true
);
}
return
false
;
}
case
TrackAudio
:{
_audioRtpDecoder
->
inputRtp
(
rtp
,
false
);
return
false
;
}
default
:
return
false
;
}
}
inline
bool
RtpParser
::
inputVideo
(
const
RtpPacket
::
Ptr
&
rtp
)
{
if
(
_videoRtpDecoder
){
return
_videoRtpDecoder
->
inputRtp
(
rtp
,
true
);
}
return
false
;
}
inline
bool
RtpParser
::
inputAudio
(
const
RtpPacket
::
Ptr
&
rtp
)
{
if
(
_audioRtpDecoder
){
return
_audioRtpDecoder
->
inputRtp
(
rtp
,
false
);
}
return
false
;
}
inline
void
RtpParser
::
onGetAudioTrack
(
const
RtspTrack
&
audio
)
{
//生成Track对象
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtpParser.h
查看文件 @
4858dc74
...
...
@@ -54,17 +54,27 @@ public:
return
m_fDuration
;
}
/**
* 返回是否完成初始化完毕
* 由于有些rtsp的sdp不包含sps pps信息
* 所以要等待接收到到sps的rtp包后才能完成
* @return
*/
bool
isInited
()
const
override
{
return
true
;
bool
ret
=
true
;
if
(
ret
&&
_audioTrack
){
ret
=
_audioTrack
->
getTrackType
()
!=
TrackInvalid
;
}
if
(
ret
&&
_videoTrack
){
ret
=
_videoTrack
->
getTrackType
()
!=
TrackInvalid
;
}
return
ret
;
}
vector
<
Track
::
Ptr
>
getTracks
()
const
override
;
private
:
inline
void
onGetAudioTrack
(
const
RtspTrack
&
audio
);
inline
void
onGetVideoTrack
(
const
RtspTrack
&
video
);
//返回值:true 代表是i帧第一个rtp包
inline
bool
inputVideo
(
const
RtpPacket
::
Ptr
&
rtp
);
inline
bool
inputAudio
(
const
RtpPacket
::
Ptr
&
rtp
);
private
:
float
m_fDuration
=
0
;
AudioTrack
::
Ptr
_audioTrack
;
...
...
This diff is collapsed.
Click to expand it.
src/Rtsp/RtspSdp.h
查看文件 @
4858dc74
...
...
@@ -166,13 +166,13 @@ public:
/**
*
* @param sps 264 sps,带0x00000001头
* @param pps 264 pps,带0x00000001头
* @param sps 264 sps,
不
带0x00000001头
* @param pps 264 pps,
不
带0x00000001头
* @param playload_type rtp playload type 默认96
* @param bitrate 比特率
*/
H264Sdp
(
const
string
&
s
ps
,
const
string
&
pps
,
H264Sdp
(
const
string
&
s
trSPS
,
const
string
&
strPPS
,
int
playload_type
=
96
,
int
bitrate
=
4000
)
:
Sdp
(
90000
,
playload_type
)
{
//视频通道
...
...
@@ -183,8 +183,6 @@ public:
char
strTemp
[
100
];
int
profile_level_id
=
0
;
string
strSPS
=
sps
.
substr
(
4
);
string
strPPS
=
pps
.
substr
(
4
);
if
(
strSPS
.
length
()
>=
4
)
{
// sanity check
profile_level_id
=
(
strSPS
[
1
]
<<
16
)
|
(
strSPS
[
2
]
<<
8
)
|
strSPS
[
3
];
// profile_idc|constraint_setN_flag|level_idc
}
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论