Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2017-04-23 20:55:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
ff87318b95ec8282ed17e2782724c5fa51f1b61f
ff87318b
1 parent
41677151
Fix #851, HTTP API support number of video frames for FPS. 2.0.240
隐藏空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
45 行增加
和
1 行删除
README.md
trunk/src/app/srs_app_recv_thread.cpp
trunk/src/app/srs_app_recv_thread.hpp
trunk/src/app/srs_app_rtmp_conn.cpp
trunk/src/app/srs_app_statistic.cpp
trunk/src/app/srs_app_statistic.hpp
trunk/src/core/srs_core.hpp
README.md
查看文件 @
ff87318
...
...
@@ -337,6 +337,7 @@ Remark:
## History
*
v2.0, 2017-04-23, Fix
[
#851
][
bug #851
]
, HTTP API support number of video frames for FPS. 2.0.240
*
<strong>
v2.0, 2017-04-18,
[
2.0 release1(2.0.239)
][
r2.0r1
]
released. 86515 lines.
</strong>
*
v2.0, 2017-04-18, Fix
[
#848
][
bug #848
]
, crash at HTTP fast buffer grow. 2.0.239
*
v2.0, 2017-04-15, Fix
[
#844
][
bug #844
]
, support Haivision encoder. 2.0.238
...
...
@@ -1291,6 +1292,7 @@ Winlin
[
bug #846
]:
https://github.com/ossrs/srs/issues/846
[
bug #844
]:
https://github.com/ossrs/srs/issues/844
[
bug #848
]:
https://github.com/ossrs/srs/issues/848
[
bug #851
]:
https://github.com/ossrs/srs/issues/851
[
bug #xxxxxxxxxx
]:
https://github.com/ossrs/srs/issues/xxxxxxxxxx
[
exo #828
]:
https://github.com/google/ExoPlayer/pull/828
...
...
trunk/src/app/srs_app_recv_thread.cpp
查看文件 @
ff87318
...
...
@@ -257,6 +257,7 @@ SrsPublishRecvThread::SrsPublishRecvThread(
recv_error_code
=
ERROR_SUCCESS
;
_nb_msgs
=
0
;
video_frames
=
0
;
error
=
st_cond_new
();
ncid
=
cid
=
0
;
...
...
@@ -298,6 +299,11 @@ int64_t SrsPublishRecvThread::nb_msgs()
return
_nb_msgs
;
}
uint64_t
SrsPublishRecvThread
::
nb_video_frames
()
{
return
video_frames
;
}
int
SrsPublishRecvThread
::
error_code
()
{
return
recv_error_code
;
...
...
@@ -378,6 +384,10 @@ int SrsPublishRecvThread::handle(SrsCommonMessage* msg)
_nb_msgs
++
;
if
(
msg
->
header
.
is_video
())
{
video_frames
++
;
}
// log to show the time of recv thread.
srs_verbose
(
"recv thread now=%"
PRId64
"us, got msg time=%"
PRId64
"ms, size=%d"
,
srs_update_system_time_ms
(),
msg
->
header
.
timestamp
,
msg
->
size
);
...
...
trunk/src/app/srs_app_recv_thread.hpp
查看文件 @
ff87318
...
...
@@ -154,6 +154,8 @@ private:
SrsRequest
*
req
;
// the msgs already got.
int64_t
_nb_msgs
;
// The video frames we got.
uint64_t
video_frames
;
// for mr(merged read),
// @see https://github.com/ossrs/srs/issues/241
bool
mr
;
...
...
@@ -186,6 +188,7 @@ public:
*/
virtual
int
wait
(
int
timeout_ms
);
virtual
int64_t
nb_msgs
();
virtual
uint64_t
nb_video_frames
();
virtual
int
error_code
();
virtual
void
set_cid
(
int
v
);
virtual
int
get_cid
();
...
...
trunk/src/app/srs_app_rtmp_conn.cpp
查看文件 @
ff87318
...
...
@@ -906,6 +906,7 @@ int SrsRtmpConn::do_publishing(SrsSource* source, SrsPublishRecvThread* trd)
}
int64_t
nb_msgs
=
0
;
uint64_t
nb_frames
=
0
;
while
(
!
disposed
)
{
pprint
->
elapse
();
...
...
@@ -941,6 +942,14 @@ int SrsRtmpConn::do_publishing(SrsSource* source, SrsPublishRecvThread* trd)
break
;
}
nb_msgs
=
trd
->
nb_msgs
();
// Update the stat for video fps.
// @remark https://github.com/ossrs/srs/issues/851
SrsStatistic
*
stat
=
SrsStatistic
::
instance
();
if
((
ret
=
stat
->
on_video_frames
(
req
,
(
int
)(
trd
->
nb_video_frames
()
-
nb_frames
)))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
nb_frames
=
trd
->
nb_video_frames
();
// reportable
if
(
pprint
->
can_print
())
{
...
...
trunk/src/app/srs_app_statistic.cpp
查看文件 @
ff87318
...
...
@@ -111,6 +111,7 @@ SrsStatisticStream::SrsStatisticStream()
kbps
->
set_io
(
NULL
,
NULL
);
nb_clients
=
0
;
nb_frames
=
0
;
}
SrsStatisticStream
::~
SrsStatisticStream
()
...
...
@@ -129,6 +130,7 @@ int SrsStatisticStream::dumps(stringstream& ss)
<<
SRS_JFIELD_STR
(
"app"
,
app
)
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_ORG
(
"live_ms"
,
srs_get_system_time_ms
())
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_ORG
(
"clients"
,
nb_clients
)
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_ORG
(
"frames"
,
nb_frames
)
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_ORG
(
"send_bytes"
,
kbps
->
get_send_bytes
())
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_ORG
(
"recv_bytes"
,
kbps
->
get_recv_bytes
())
<<
SRS_JFIELD_CONT
<<
SRS_JFIELD_OBJ
(
"kbps"
)
...
...
@@ -327,6 +329,18 @@ int SrsStatistic::on_audio_info(SrsRequest* req,
return
ret
;
}
int
SrsStatistic
::
on_video_frames
(
SrsRequest
*
req
,
int
nb_frames
)
{
int
ret
=
ERROR_SUCCESS
;
SrsStatisticVhost
*
vhost
=
create_vhost
(
req
);
SrsStatisticStream
*
stream
=
create_stream
(
vhost
,
req
);
stream
->
nb_frames
+=
nb_frames
;
return
ret
;
}
void
SrsStatistic
::
on_stream_publish
(
SrsRequest
*
req
,
int
cid
)
{
SrsStatisticVhost
*
vhost
=
create_vhost
(
req
);
...
...
trunk/src/app/srs_app_statistic.hpp
查看文件 @
ff87318
...
...
@@ -70,6 +70,7 @@ public:
bool
active
;
int
connection_cid
;
int
nb_clients
;
uint64_t
nb_frames
;
public
:
/**
* stream total kbps.
...
...
@@ -173,6 +174,11 @@ public:
SrsAacObjectType
aac_object
);
/**
* When got videos, update the frames.
* We only stat the total number of video frames.
*/
virtual
int
on_video_frames
(
SrsRequest
*
req
,
int
nb_frames
);
/**
* when publish stream.
* @param req the request object of publish connection.
* @param cid the cid of publish connection.
...
...
trunk/src/core/srs_core.hpp
查看文件 @
ff87318
...
...
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR 2
#define VERSION_MINOR 0
#define VERSION_REVISION 2
39
#define VERSION_REVISION 2
40
// generated by configure, only macros.
#include <srs_auto_headers.hpp>
...
...
请
注册
或
登录
后发表评论