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
2014-04-14 09:10:36 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
73c310cd2ee45a30b2637a9ab25598c143dbafee
73c310cd
1 parent
bc756d6a
refine the macro.
隐藏空白字符变更
内嵌
并排对比
正在显示
9 个修改的文件
包含
43 行增加
和
43 行删除
trunk/auto/depends.sh
trunk/src/app/srs_app_config.cpp
trunk/src/app/srs_app_config.hpp
trunk/src/app/srs_app_encoder.cpp
trunk/src/app/srs_app_ffmpeg.cpp
trunk/src/app/srs_app_ingest.cpp
trunk/src/app/srs_app_ingest.hpp
trunk/src/app/srs_app_server.cpp
trunk/src/app/srs_app_server.hpp
trunk/auto/depends.sh
查看文件 @
73c310c
...
...
@@ -528,9 +528,9 @@ else
fi
if
[
$SRS_INGEST
=
YES
]
;
then
echo
"#define SRS_INGEST"
>>
$SRS_AUTO_HEADERS_H
echo
"#define SRS_
RTMP_
INGEST"
>>
$SRS_AUTO_HEADERS_H
else
echo
"#undef SRS_INGEST"
>>
$SRS_AUTO_HEADERS_H
echo
"#undef SRS_
RTMP_
INGEST"
>>
$SRS_AUTO_HEADERS_H
fi
#####################################################################################
...
...
trunk/src/app/srs_app_config.cpp
查看文件 @
73c310c
...
...
@@ -2128,13 +2128,13 @@ string SrsConfig::get_ingest_input_type(SrsConfDirective* ingest)
SrsConfDirective
*
conf
=
ingest
->
get
(
"input"
);
if
(
!
conf
)
{
return
SRS_INGEST_TYPE_FILE
;
return
SRS_
RTMP_
INGEST_TYPE_FILE
;
}
conf
=
conf
->
get
(
"type"
);
if
(
!
conf
)
{
return
SRS_INGEST_TYPE_FILE
;
return
SRS_
RTMP_
INGEST_TYPE_FILE
;
}
return
conf
->
arg0
();
...
...
trunk/src/app/srs_app_config.hpp
查看文件 @
73c310c
...
...
@@ -70,8 +70,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define SRS_STAGE_INGESTER_INTERVAL_MS 2000
#define SRS_STAGE_HLS_INTERVAL_MS 2000
#define SRS_INGEST_TYPE_FILE "file"
#define SRS_INGEST_TYPE_STREAM "stream"
#define SRS_RTMP_INGEST_TYPE_FILE "file"
#define SRS_RTMP_INGEST_TYPE_STREAM "stream"
class
SrsFileBuffer
;
...
...
trunk/src/app/srs_app_encoder.cpp
查看文件 @
73c310c
...
...
@@ -37,14 +37,14 @@ using namespace std;
#ifdef SRS_RTMP_TRANSCODE
// when error, encoder sleep for a while and retry.
#define SRS_ENCODER_SLEEP_US (int64_t)(3*1000*1000LL)
#define SRS_
RTMP_
ENCODER_SLEEP_US (int64_t)(3*1000*1000LL)
// for encoder to detect the dead loop
static
std
::
vector
<
std
::
string
>
_transcoded_url
;
SrsEncoder
::
SrsEncoder
()
{
pthread
=
new
SrsThread
(
this
,
SRS_ENCODER_SLEEP_US
);
pthread
=
new
SrsThread
(
this
,
SRS_
RTMP_
ENCODER_SLEEP_US
);
pithy_print
=
new
SrsPithyPrint
(
SRS_STAGE_ENCODER
);
}
...
...
@@ -112,7 +112,7 @@ int SrsEncoder::cycle()
// pithy print
encoder
();
pithy_print
->
elapse
(
SRS_ENCODER_SLEEP_US
/
1000
);
pithy_print
->
elapse
(
SRS_
RTMP_
ENCODER_SLEEP_US
/
1000
);
return
ret
;
}
...
...
trunk/src/app/srs_app_ffmpeg.cpp
查看文件 @
73c310c
...
...
@@ -41,14 +41,14 @@ using namespace std;
#ifdef SRS_FFMPEG_STUB
#define SRS_ENCODER_COPY "copy"
#define SRS_ENCODER_NO_VIDEO "vn"
#define SRS_ENCODER_NO_AUDIO "an"
#define SRS_RTMP_ENCODER_COPY "copy"
#define SRS_RTMP_ENCODER_NO_VIDEO "vn"
#define SRS_RTMP_ENCODER_NO_AUDIO "an"
// only support libx264 encoder.
#define SRS_ENCODER_VCODEC "libx264"
#define SRS_
RTMP_
ENCODER_VCODEC "libx264"
// any aac encoder is ok which contains the aac,
// for example, libaacplus, aac, fdkaac
#define SRS_ENCODER_ACODEC "aac"
#define SRS_
RTMP_
ENCODER_ACODEC "aac"
SrsFFMPEG
::
SrsFFMPEG
(
std
::
string
ffmpeg_bin
)
{
...
...
@@ -118,17 +118,17 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
vwidth
-=
vwidth
%
2
;
vheight
-=
vheight
%
2
;
if
(
vcodec
==
SRS_
ENCODER_NO_VIDEO
&&
acodec
==
SRS
_ENCODER_NO_AUDIO
)
{
if
(
vcodec
==
SRS_
RTMP_ENCODER_NO_VIDEO
&&
acodec
==
SRS_RTMP
_ENCODER_NO_AUDIO
)
{
ret
=
ERROR_ENCODER_VCODEC
;
srs_warn
(
"video and audio disabled. ret=%d"
,
ret
);
return
ret
;
}
if
(
vcodec
!=
SRS_ENCODER_COPY
&&
vcodec
!=
SRS_ENCODER_NO_VIDEO
)
{
if
(
vcodec
!=
SRS_ENCODER_VCODEC
)
{
if
(
vcodec
!=
SRS_RTMP_ENCODER_COPY
&&
vcodec
!=
SRS_RTMP_ENCODER_NO_VIDEO
)
{
if
(
vcodec
!=
SRS_RTMP_ENCODER_VCODEC
)
{
ret
=
ERROR_ENCODER_VCODEC
;
srs_error
(
"invalid vcodec, must be %s, actual %s, ret=%d"
,
SRS_ENCODER_VCODEC
,
vcodec
.
c_str
(),
ret
);
SRS_
RTMP_
ENCODER_VCODEC
,
vcodec
.
c_str
(),
ret
);
return
ret
;
}
if
(
vbitrate
<=
0
)
{
...
...
@@ -168,11 +168,11 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
}
}
if
(
acodec
!=
SRS_ENCODER_COPY
&&
acodec
!=
SRS_ENCODER_NO_AUDIO
)
{
if
(
acodec
.
find
(
SRS_ENCODER_ACODEC
)
==
std
::
string
::
npos
)
{
if
(
acodec
!=
SRS_RTMP_ENCODER_COPY
&&
acodec
!=
SRS_RTMP_ENCODER_NO_AUDIO
)
{
if
(
acodec
.
find
(
SRS_RTMP_ENCODER_ACODEC
)
==
std
::
string
::
npos
)
{
ret
=
ERROR_ENCODER_ACODEC
;
srs_error
(
"invalid acodec, must be %s, actual %s, ret=%d"
,
SRS_ENCODER_ACODEC
,
acodec
.
c_str
(),
ret
);
SRS_
RTMP_
ENCODER_ACODEC
,
acodec
.
c_str
(),
ret
);
return
ret
;
}
if
(
abitrate
<=
0
)
{
...
...
@@ -207,8 +207,8 @@ int SrsFFMPEG::initialize_copy()
{
int
ret
=
ERROR_SUCCESS
;
vcodec
=
SRS_ENCODER_COPY
;
acodec
=
SRS_ENCODER_COPY
;
vcodec
=
SRS_RTMP_ENCODER_COPY
;
acodec
=
SRS_RTMP_ENCODER_COPY
;
if
(
_output
.
empty
())
{
ret
=
ERROR_ENCODER_OUTPUT
;
...
...
@@ -261,7 +261,7 @@ int SrsFFMPEG::start()
}
// video specified.
if
(
vcodec
!=
SRS_ENCODER_NO_VIDEO
)
{
if
(
vcodec
!=
SRS_
RTMP_
ENCODER_NO_VIDEO
)
{
params
.
push_back
(
"-vcodec"
);
params
.
push_back
(
vcodec
);
}
else
{
...
...
@@ -269,7 +269,7 @@ int SrsFFMPEG::start()
}
// the codec params is disabled when copy
if
(
vcodec
!=
SRS_
ENCODER_COPY
&&
vcodec
!=
SRS
_ENCODER_NO_VIDEO
)
{
if
(
vcodec
!=
SRS_
RTMP_ENCODER_COPY
&&
vcodec
!=
SRS_RTMP
_ENCODER_NO_VIDEO
)
{
params
.
push_back
(
"-b:v"
);
snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
vbitrate
*
1000
);
params
.
push_back
(
tmp
);
...
...
@@ -310,7 +310,7 @@ int SrsFFMPEG::start()
}
// audio specified.
if
(
acodec
!=
SRS_ENCODER_NO_AUDIO
)
{
if
(
acodec
!=
SRS_
RTMP_
ENCODER_NO_AUDIO
)
{
params
.
push_back
(
"-acodec"
);
params
.
push_back
(
acodec
);
}
else
{
...
...
@@ -318,7 +318,7 @@ int SrsFFMPEG::start()
}
// the codec params is disabled when copy
if
(
acodec
!=
SRS_
ENCODER_COPY
&&
acodec
!=
SRS
_ENCODER_NO_AUDIO
)
{
if
(
acodec
!=
SRS_
RTMP_ENCODER_COPY
&&
acodec
!=
SRS_RTMP
_ENCODER_NO_AUDIO
)
{
params
.
push_back
(
"-b:a"
);
snprintf
(
tmp
,
sizeof
(
tmp
),
"%d"
,
abitrate
*
1000
);
params
.
push_back
(
tmp
);
...
...
trunk/src/app/srs_app_ingest.cpp
查看文件 @
73c310c
...
...
@@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_ingest.hpp>
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
using
namespace
std
;
...
...
@@ -35,7 +35,7 @@ using namespace std;
// when error, ingester sleep for a while and retry.
// ingest never sleep a long time, for we must start the stream ASAP.
#define SRS_INGESTER_SLEEP_US (int64_t)(6*100*1000LL)
#define SRS_
RTMP_
INGESTER_SLEEP_US (int64_t)(6*100*1000LL)
SrsIngesterFFMPEG
::
SrsIngesterFFMPEG
(
SrsFFMPEG
*
_ffmpeg
,
string
_vhost
,
string
_id
)
{
...
...
@@ -53,7 +53,7 @@ SrsIngester::SrsIngester()
{
_srs_config
->
subscribe
(
this
);
pthread
=
new
SrsThread
(
this
,
SRS_INGESTER_SLEEP_US
);
pthread
=
new
SrsThread
(
this
,
SRS_
RTMP_
INGESTER_SLEEP_US
);
pithy_print
=
new
SrsPithyPrint
(
SRS_STAGE_INGESTER
);
}
...
...
@@ -187,7 +187,7 @@ int SrsIngester::cycle()
// pithy print
ingester
();
pithy_print
->
elapse
(
SRS_INGESTER_SLEEP_US
/
1000
);
pithy_print
->
elapse
(
SRS_
RTMP_
INGESTER_SLEEP_US
/
1000
);
return
ret
;
}
...
...
@@ -282,7 +282,7 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
return
ret
;
}
if
(
input_type
==
SRS_INGEST_TYPE_FILE
)
{
if
(
input_type
==
SRS_
RTMP_
INGEST_TYPE_FILE
)
{
std
::
string
input_url
=
_srs_config
->
get_ingest_input_url
(
ingest
);
if
(
input_url
.
empty
())
{
ret
=
ERROR_ENCODER_NO_INPUT
;
...
...
@@ -296,7 +296,7 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
if
((
ret
=
ffmpeg
->
initialize
(
input_url
,
output
,
log_file
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
}
else
if
(
input_type
==
SRS_INGEST_TYPE_STREAM
)
{
}
else
if
(
input_type
==
SRS_
RTMP_
INGEST_TYPE_STREAM
)
{
std
::
string
input_url
=
_srs_config
->
get_ingest_input_url
(
ingest
);
if
(
input_url
.
empty
())
{
ret
=
ERROR_ENCODER_NO_INPUT
;
...
...
trunk/src/app/srs_app_ingest.hpp
查看文件 @
73c310c
...
...
@@ -29,7 +29,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
#include <vector>
...
...
trunk/src/app/srs_app_server.cpp
查看文件 @
73c310c
...
...
@@ -41,12 +41,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_http_api.hpp>
#include <srs_app_http_conn.hpp>
#include <srs_app_http.hpp>
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
#include <srs_app_ingest.hpp>
#endif
#define SERVER_LISTEN_BACKLOG 512
#define SRS_TIME_RESOLUTION_MS 500
#define SRS_
SYS_
TIME_RESOLUTION_MS 500
SrsListener
::
SrsListener
(
SrsServer
*
server
,
SrsListenerType
type
)
{
...
...
@@ -175,7 +175,7 @@ SrsServer::SrsServer()
#ifdef SRS_HTTP_SERVER
http_stream_handler
=
NULL
;
#endif
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
ingester
=
NULL
;
#endif
}
...
...
@@ -209,7 +209,7 @@ SrsServer::~SrsServer()
#ifdef SRS_HTTP_SERVER
srs_freep
(
http_stream_handler
);
#endif
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
srs_freep
(
ingester
);
#endif
}
...
...
@@ -232,7 +232,7 @@ int SrsServer::initialize()
srs_assert
(
!
http_stream_handler
);
http_stream_handler
=
SrsHttpHandler
::
create_http_stream
();
#endif
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
srs_assert
(
!
ingester
);
ingester
=
new
SrsIngester
();
#endif
...
...
@@ -377,7 +377,7 @@ int SrsServer::ingest()
{
int
ret
=
ERROR_SUCCESS
;
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
if
((
ret
=
ingester
->
start
())
!=
ERROR_SUCCESS
)
{
srs_error
(
"start ingest streams failed. ret=%d"
,
ret
);
return
ret
;
...
...
@@ -393,7 +393,7 @@ int SrsServer::cycle()
// the deamon thread, update the time cache
while
(
true
)
{
st_usleep
(
SRS_TIME_RESOLUTION_MS
*
1000
);
st_usleep
(
SRS_
SYS_
TIME_RESOLUTION_MS
*
1000
);
srs_update_system_time_ms
();
// for gperf heap checker,
...
...
@@ -419,7 +419,7 @@ int SrsServer::cycle()
}
}
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
ingester
->
stop
();
#endif
...
...
trunk/src/app/srs_app_server.hpp
查看文件 @
73c310c
...
...
@@ -85,7 +85,7 @@ private:
#ifdef SRS_HTTP_SERVER
SrsHttpHandler
*
http_stream_handler
;
#endif
#ifdef SRS_INGEST
#ifdef SRS_
RTMP_
INGEST
SrsIngester
*
ingester
;
#endif
private
:
...
...
请
注册
或
登录
后发表评论