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-09 18:45:42 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b11ddc7f411171333acead75ebc43b14c920a11b
b11ddc7f
1 parent
7d1a91ca
Fix #834, crash for TS context corrupt. 2.0.235
隐藏空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
31 行增加
和
2 行删除
README.md
trunk/auto/build_ffmpeg.sh
trunk/src/app/srs_app_rtmp_conn.cpp
trunk/src/core/srs_core.hpp
trunk/src/kernel/srs_kernel_error.hpp
trunk/src/kernel/srs_kernel_ts.cpp
trunk/src/kernel/srs_kernel_ts.hpp
README.md
查看文件 @
b11ddc7
...
...
@@ -336,6 +336,7 @@ Remark:
## History
*
v2.0, 2017-04-09, Fix
[
#834
][
bug #834
]
, crash for TS context corrupt. 2.0.235
*
<strong>
v2.0, 2017-03-03,
[
2.0 release0(2.0.234)
][
r2.0r0
]
released. 86373 lines.
</strong>
*
v2.0, 2017-02-25, for
[
#730
][
bug #730
]
, remove the test code. 2.0.234
*
v2.0, 2017-02-09, fix
[
#503
][
bug #503
]
disable utilities when reload a source. 2.0.233
...
...
@@ -1279,6 +1280,7 @@ Winlin
[
bug #750
]:
https://github.com/ossrs/srs/issues/750
[
bug #752
]:
https://github.com/ossrs/srs/issues/752
[
bug #503
]:
https://github.com/ossrs/srs/issues/503
[
bug #834
]:
https://github.com/ossrs/srs/issues/834
[
bug #xxxxxxxxxx
]:
https://github.com/ossrs/srs/issues/xxxxxxxxxx
[
exo #828
]:
https://github.com/google/ExoPlayer/pull/828
...
...
trunk/auto/build_ffmpeg.sh
查看文件 @
b11ddc7
...
...
@@ -42,7 +42,7 @@ else
echo
"build fdk-aac-0.1.3"
cd
$ff_current_dir
&&
rm -rf fdk-aac-0.1.3
&&
unzip -q
${
ff_src_dir
}
/fdk-aac-0.1.3.zip
&&
cd
fdk-aac-0.1.3
&&
bash autogen.sh
&&
./configure --prefix
=
${
ff_release_dir
}
--enable-static
&&
make
${
SRS_JOBS
}
&&
make install
&&
cd
fdk-aac-0.1.3
&&
bash autogen.sh
&&
./configure --prefix
=
${
ff_release_dir
}
--enable-static
&&
make
${
SRS_JOBS
}
&&
make install
ret
=
$?
;
if
[[
0 -ne
${
ret
}
]]
;
then
echo
"build fdk-aac-0.1.3 failed"
;
exit
1;
fi
fi
...
...
trunk/src/app/srs_app_rtmp_conn.cpp
查看文件 @
b11ddc7
...
...
@@ -481,6 +481,14 @@ int SrsRtmpConn::stream_service_cycle()
return
ret
;
}
srs_info
(
"security check ok"
);
// Never allow the empty stream name, for HLS may write to a file with empty name.
// @see https://github.com/ossrs/srs/issues/834
if
(
req
->
stream
.
empty
())
{
ret
=
ERROR_RTMP_STREAM_NAME_EMPTY
;
srs_error
(
"RTMP: Empty stream name not allowed, ret=%d"
,
ret
);
return
ret
;
}
// client is identified, set the timeout to service timeout.
rtmp
->
set_recv_timeout
(
SRS_CONSTS_RTMP_RECV_TIMEOUT_US
);
...
...
trunk/src/core/srs_core.hpp
查看文件 @
b11ddc7
...
...
@@ -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 23
4
#define VERSION_REVISION 23
5
// generated by configure, only macros.
#include <srs_auto_headers.hpp>
...
...
trunk/src/kernel/srs_kernel_error.hpp
查看文件 @
b11ddc7
...
...
@@ -152,6 +152,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define ERROR_RTSP_AUDIO_CONFIG 2047
#define ERROR_RTMP_STREAM_NOT_FOUND 2048
#define ERROR_RTMP_CLIENT_NOT_FOUND 2049
#define ERROR_RTMP_STREAM_NAME_EMPTY 2050
//
// system control message,
// not an error, but special control logic.
...
...
@@ -230,6 +231,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define ERROR_RESPONSE_CODE 3064
#define ERROR_RESPONSE_DATA 3065
#define ERROR_REQUEST_DATA 3066
#define ERROR_TS_CONTEXT_NOT_READY 3067
///////////////////////////////////////////////////////
// HTTP/StreamCaster protocol error.
...
...
trunk/src/kernel/srs_kernel_ts.cpp
查看文件 @
b11ddc7
...
...
@@ -199,6 +199,7 @@ ISrsTsHandler::~ISrsTsHandler()
SrsTsContext
::
SrsTsContext
()
{
ready
=
false
;
pure_audio
=
false
;
vcodec
=
SrsCodecVideoReserved
;
acodec
=
SrsCodecAudioReserved1
;
...
...
@@ -234,6 +235,7 @@ void SrsTsContext::on_pmt_parsed()
void
SrsTsContext
::
reset
()
{
ready
=
false
;
vcodec
=
SrsCodecVideoReserved
;
acodec
=
SrsCodecAudioReserved1
;
}
...
...
@@ -432,6 +434,9 @@ int SrsTsContext::encode_pat_pmt(SrsFileWriter* writer, int16_t vpid, SrsTsStrea
return
ret
;
}
}
// When PAT and PMT are writen, the context is ready now.
ready
=
true
;
return
ret
;
}
...
...
@@ -439,6 +444,13 @@ int SrsTsContext::encode_pat_pmt(SrsFileWriter* writer, int16_t vpid, SrsTsStrea
int
SrsTsContext
::
encode_pes
(
SrsFileWriter
*
writer
,
SrsTsMessage
*
msg
,
int16_t
pid
,
SrsTsStream
sid
,
bool
pure_audio
)
{
int
ret
=
ERROR_SUCCESS
;
// Sometimes, the context is not ready(PAT/PMT write failed), error in this situation.
if
(
!
ready
)
{
ret
=
ERROR_TS_CONTEXT_NOT_READY
;
srs_error
(
"TS: context not ready, ret=%d"
,
ret
);
return
ret
;
}
if
(
msg
->
payload
->
length
()
==
0
)
{
return
ret
;
...
...
trunk/src/kernel/srs_kernel_ts.hpp
查看文件 @
b11ddc7
...
...
@@ -346,6 +346,11 @@ public:
*/
class
SrsTsContext
{
private
:
// Whether context is ready, failed if try to write data when not ready.
// When PAT and PMT writen, the context is ready.
// @see https://github.com/ossrs/srs/issues/834
bool
ready
;
// codec
private:
std
::
map
<
int
,
SrsTsChannel
*>
pids
;
...
...
请
注册
或
登录
后发表评论