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
2015-03-26 19:58:27 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
75ca70c619f1940f2177dff84d41a49d2d47c38c
75ca70c6
2 parents
12d5431f
0faaa61b
Merge branch '2.0release' into develop
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
17 行增加
和
21 行删除
trunk/src/app/srs_app_mpegts_udp.cpp
trunk/src/app/srs_app_thread.cpp
trunk/src/kernel/srs_kernel_codec.cpp
trunk/src/kernel/srs_kernel_codec.hpp
trunk/src/kernel/srs_kernel_flv.cpp
trunk/src/app/srs_app_mpegts_udp.cpp
查看文件 @
75ca70c
...
...
@@ -388,6 +388,8 @@ int SrsMpegtsOverUdp::on_ts_video(SrsTsMessage* msg, SrsStream* avs)
// for pps
if
(
avc
->
is_pps
(
frame
,
frame_size
))
{
got_sps_pps
=
true
;
std
::
string
pps
;
if
((
ret
=
avc
->
pps_demux
(
frame
,
frame_size
,
pps
))
!=
ERROR_SUCCESS
)
{
return
ret
;
...
...
@@ -405,21 +407,14 @@ int SrsMpegtsOverUdp::on_ts_video(SrsTsMessage* msg, SrsStream* avs)
continue
;
}
// regenerat the ibp frame.
if
(
!
avs
->
empty
())
{
ibpframe
=
avs
->
data
()
+
avs
->
pos
();
ibpframe_size
=
avs
->
size
()
-
avs
->
pos
();
}
else
{
srs_info
(
"mpegts: sps/pps frame consumed."
);
// ibp frame.
srs_info
(
"mpegts: demux avc ibp frame size=%d, dts=%d"
,
ibpframe_size
,
dts
);
if
((
ret
=
write_h264_ipb_frame
(
frame
,
frame_size
,
dts
,
pts
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
break
;
}
// ibp frame.
srs_info
(
"mpegts: demux avc ibp frame size=%d, dts=%d"
,
ibpframe_size
,
dts
);
return
write_h264_ipb_frame
(
ibpframe
,
ibpframe_size
,
dts
,
pts
);
return
ret
;
}
int
SrsMpegtsOverUdp
::
write_h264_sps_pps
(
u_int32_t
dts
,
u_int32_t
pts
)
...
...
trunk/src/app/srs_app_thread.cpp
查看文件 @
75ca70c
...
...
@@ -210,11 +210,11 @@ failed:
}
}
handler
->
on_thread_stop
();
srs_info
(
"thread %s cycle finished"
,
_name
);
// readly terminated now.
really_terminated
=
true
;
handler
->
on_thread_stop
();
srs_info
(
"thread %s cycle finished"
,
_name
);
}
void
*
SrsThread
::
thread_fun
(
void
*
arg
)
...
...
trunk/src/kernel/srs_kernel_codec.cpp
查看文件 @
75ca70c
...
...
@@ -91,8 +91,8 @@ string srs_codec_aac_object2str(SrsAacObjectType aac_object)
{
switch
(
aac_object
)
{
case
SrsAacObjectTypeAacMain
:
return
"Main"
;
case
SrsAacObjectTypeHE
:
return
"HE"
;
case
SrsAacObjectTypeHEV2
:
return
"HEv2"
;
case
SrsAacObjectTypeAacHE
:
return
"HE"
;
case
SrsAacObjectTypeAacHEV2
:
return
"HEv2"
;
case
SrsAacObjectTypeAacLC
:
return
"LC"
;
case
SrsAacObjectTypeAacSSR
:
return
"SSR"
;
default:
return
"Other"
;
...
...
@@ -113,8 +113,8 @@ SrsAacProfile srs_codec_aac_rtmp2ts(SrsAacObjectType object_type)
{
switch
(
object_type
)
{
case
SrsAacObjectTypeAacMain
:
return
SrsAacProfileMain
;
case
SrsAacObjectTypeHE
:
case
SrsAacObjectTypeHEV2
:
case
SrsAacObjectTypeAacHE
:
case
SrsAacObjectTypeAacHEV2
:
case
SrsAacObjectTypeAacLC
:
return
SrsAacProfileLC
;
case
SrsAacObjectTypeAacSSR
:
return
SrsAacProfileSSR
;
default:
return
SrsAacProfileReserved
;
...
...
trunk/src/kernel/srs_kernel_codec.hpp
查看文件 @
75ca70c
...
...
@@ -406,9 +406,9 @@ enum SrsAacObjectType
SrsAacObjectTypeAacSSR
=
3
,
// AAC HE = LC+SBR
SrsAacObjectTypeHE
=
5
,
SrsAacObjectType
Aac
HE
=
5
,
// AAC HEv2 = LC+SBR+PS
SrsAacObjectTypeHEV2
=
29
,
SrsAacObjectType
Aac
HEV2
=
29
,
};
std
::
string
srs_codec_aac_object2str
(
SrsAacObjectType
aac_object
);
// ts/hls/adts audio header profile to RTMP sequence header object type.
...
...
trunk/src/kernel/srs_kernel_flv.cpp
查看文件 @
75ca70c
...
...
@@ -103,6 +103,7 @@ int SrsFlvEncoder::write_header(char flv_header[9])
return
ret
;
}
// previous tag size.
char
pts
[]
=
{
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
0x00
,
(
char
)
0x00
};
if
((
ret
=
_fs
->
write
(
pts
,
4
,
NULL
))
!=
ERROR_SUCCESS
)
{
return
ret
;
...
...
请
注册
或
登录
后发表评论