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
653667ba
Commit
653667ba
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提高对无Metadata的rtmp流的兼容性
parent
928f642a
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
12 行增加
和
3 行删除
+12
-3
src/Rtmp/RtmpPlayer.cpp
+9
-1
src/Rtmp/RtmpPlayer.h
+2
-1
src/Rtmp/RtmpPlayerImp.h
+1
-1
没有找到文件。
src/Rtmp/RtmpPlayer.cpp
查看文件 @
653667ba
...
@@ -108,6 +108,7 @@ void RtmpPlayer::play(const string &strUrl) {
...
@@ -108,6 +108,7 @@ void RtmpPlayer::play(const string &strUrl) {
return
false
;
return
false
;
},
getPoller
()));
},
getPoller
()));
_metadata_got
=
false
;
startConnect
(
strHost
,
iPort
,
playTimeOutSec
);
startConnect
(
strHost
,
iPort
,
playTimeOutSec
);
}
}
void
RtmpPlayer
::
onErr
(
const
SockException
&
ex
){
void
RtmpPlayer
::
onErr
(
const
SockException
&
ex
){
...
@@ -319,8 +320,9 @@ void RtmpPlayer::onCmd_onMetaData(AMFDecoder &dec) {
...
@@ -319,8 +320,9 @@ void RtmpPlayer::onCmd_onMetaData(AMFDecoder &dec) {
//TraceL;
//TraceL;
auto
val
=
dec
.
load
<
AMFValue
>
();
auto
val
=
dec
.
load
<
AMFValue
>
();
if
(
!
onCheckMeta
(
val
)){
if
(
!
onCheckMeta
(
val
)){
throw
std
::
runtime_error
(
"onCheckMeta faied"
);
throw
std
::
runtime_error
(
"onCheckMeta fai
l
ed"
);
}
}
_metadata_got
=
true
;
}
}
void
RtmpPlayer
::
onStreamDry
(
uint32_t
ui32StreamId
)
{
void
RtmpPlayer
::
onStreamDry
(
uint32_t
ui32StreamId
)
{
...
@@ -372,6 +374,12 @@ void RtmpPlayer::onRtmpChunk(RtmpPacket &chunkData) {
...
@@ -372,6 +374,12 @@ void RtmpPlayer::onRtmpChunk(RtmpPacket &chunkData) {
//计算播放进度时间轴用
//计算播放进度时间轴用
_aiNowStamp
[
idx
]
=
chunkData
.
timeStamp
;
_aiNowStamp
[
idx
]
=
chunkData
.
timeStamp
;
}
}
if
(
!
_metadata_got
){
_metadata_got
=
true
;
if
(
!
onCheckMeta
(
TitleMeta
().
getMetadata
())){
throw
std
::
runtime_error
(
"onCheckMeta failed"
);
}
}
onMediaData_l
(
std
::
make_shared
<
RtmpPacket
>
(
std
::
move
(
chunkData
)));
onMediaData_l
(
std
::
make_shared
<
RtmpPacket
>
(
std
::
move
(
chunkData
)));
}
}
break
;
break
;
...
...
This diff is collapsed.
Click to expand it.
src/Rtmp/RtmpPlayer.h
查看文件 @
653667ba
...
@@ -55,7 +55,7 @@ public:
...
@@ -55,7 +55,7 @@ public:
void
pause
(
bool
bPause
)
override
;
void
pause
(
bool
bPause
)
override
;
void
teardown
()
override
;
void
teardown
()
override
;
protected
:
protected
:
virtual
bool
onCheckMeta
(
AMFValue
&
val
)
=
0
;
virtual
bool
onCheckMeta
(
const
AMFValue
&
val
)
=
0
;
virtual
void
onMediaData
(
const
RtmpPacket
::
Ptr
&
chunkData
)
=
0
;
virtual
void
onMediaData
(
const
RtmpPacket
::
Ptr
&
chunkData
)
=
0
;
uint32_t
getProgressMilliSecond
()
const
;
uint32_t
getProgressMilliSecond
()
const
;
void
seekToMilliSecond
(
uint32_t
ms
);
void
seekToMilliSecond
(
uint32_t
ms
);
...
@@ -119,6 +119,7 @@ private:
...
@@ -119,6 +119,7 @@ private:
uint32_t
_aiFistStamp
[
2
]
=
{
0
,
0
};
uint32_t
_aiFistStamp
[
2
]
=
{
0
,
0
};
uint32_t
_aiNowStamp
[
2
]
=
{
0
,
0
};
uint32_t
_aiNowStamp
[
2
]
=
{
0
,
0
};
Ticker
_aNowStampTicker
[
2
];
Ticker
_aNowStampTicker
[
2
];
bool
_metadata_got
=
false
;
};
};
}
/* namespace mediakit */
}
/* namespace mediakit */
...
...
This diff is collapsed.
Click to expand it.
src/Rtmp/RtmpPlayerImp.h
查看文件 @
653667ba
...
@@ -62,7 +62,7 @@ public:
...
@@ -62,7 +62,7 @@ public:
}
}
private
:
private
:
//派生类回调函数
//派生类回调函数
bool
onCheckMeta
(
AMFValue
&
val
)
override
{
bool
onCheckMeta
(
const
AMFValue
&
val
)
override
{
_pRtmpMediaSrc
=
dynamic_pointer_cast
<
RtmpMediaSource
>
(
_pMediaSrc
);
_pRtmpMediaSrc
=
dynamic_pointer_cast
<
RtmpMediaSource
>
(
_pMediaSrc
);
if
(
_pRtmpMediaSrc
){
if
(
_pRtmpMediaSrc
){
_pRtmpMediaSrc
->
onGetMetaData
(
val
);
_pRtmpMediaSrc
->
onGetMetaData
(
val
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论