mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Merge branch '2.0release' into develop
This commit is contained in:
commit
31a1b7bed2
2 changed files with 43 additions and 17 deletions
|
@ -54,6 +54,9 @@ using namespace std;
|
||||||
ISrsLog* _srs_log = new ISrsLog();
|
ISrsLog* _srs_log = new ISrsLog();
|
||||||
ISrsThreadContext* _srs_context = new ISrsThreadContext();
|
ISrsThreadContext* _srs_context = new ISrsThreadContext();
|
||||||
|
|
||||||
|
// use this default timeout in us, if user not set.
|
||||||
|
#define SRS_SOCKET_DEFAULT_TIMEOUT 30 * 1000 * 1000LL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* export runtime context.
|
* export runtime context.
|
||||||
*/
|
*/
|
||||||
|
@ -105,6 +108,10 @@ struct Context
|
||||||
// the aac sequence header.
|
// the aac sequence header.
|
||||||
std::string aac_specific_config;
|
std::string aac_specific_config;
|
||||||
|
|
||||||
|
// user set timeout, in us.
|
||||||
|
int64_t stimeout;
|
||||||
|
int64_t rtimeout;
|
||||||
|
|
||||||
Context() {
|
Context() {
|
||||||
rtmp = NULL;
|
rtmp = NULL;
|
||||||
skt = NULL;
|
skt = NULL;
|
||||||
|
@ -113,6 +120,7 @@ struct Context
|
||||||
h264_sps_pps_sent = false;
|
h264_sps_pps_sent = false;
|
||||||
h264_sps_changed = false;
|
h264_sps_changed = false;
|
||||||
h264_pps_changed = false;
|
h264_pps_changed = false;
|
||||||
|
rtimeout = stimeout = -1;
|
||||||
}
|
}
|
||||||
virtual ~Context() {
|
virtual ~Context() {
|
||||||
srs_freep(req);
|
srs_freep(req);
|
||||||
|
@ -572,8 +580,11 @@ int srs_rtmp_set_timeout(srs_rtmp_t rtmp, int recv_timeout_ms, int send_timeout_
|
||||||
|
|
||||||
Context* context = (Context*)rtmp;
|
Context* context = (Context*)rtmp;
|
||||||
|
|
||||||
context->skt->set_recv_timeout(recv_timeout_ms * 1000LL);
|
context->stimeout = send_timeout_ms * 1000;
|
||||||
context->skt->set_send_timeout(send_timeout_ms * 1000LL);
|
context->rtimeout = recv_timeout_ms * 1000;
|
||||||
|
|
||||||
|
context->skt->set_recv_timeout(context->rtimeout);
|
||||||
|
context->skt->set_send_timeout(context->stimeout);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -634,6 +645,16 @@ int srs_rtmp_connect_server(srs_rtmp_t rtmp)
|
||||||
srs_assert(rtmp != NULL);
|
srs_assert(rtmp != NULL);
|
||||||
Context* context = (Context*)rtmp;
|
Context* context = (Context*)rtmp;
|
||||||
|
|
||||||
|
// set timeout if user not set.
|
||||||
|
if (context->stimeout == -1) {
|
||||||
|
context->stimeout = SRS_SOCKET_DEFAULT_TIMEOUT;
|
||||||
|
context->skt->set_send_timeout(context->stimeout);
|
||||||
|
}
|
||||||
|
if (context->rtimeout == -1) {
|
||||||
|
context->rtimeout = SRS_SOCKET_DEFAULT_TIMEOUT;
|
||||||
|
context->skt->set_recv_timeout(context->rtimeout);
|
||||||
|
}
|
||||||
|
|
||||||
if ((ret = srs_librtmp_context_connect(context)) != ERROR_SUCCESS) {
|
if ((ret = srs_librtmp_context_connect(context)) != ERROR_SUCCESS) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,6 +107,7 @@ typedef void* srs_amf0_t;
|
||||||
* create/destroy a rtmp protocol stack.
|
* create/destroy a rtmp protocol stack.
|
||||||
* @url rtmp url, for example:
|
* @url rtmp url, for example:
|
||||||
* rtmp://localhost/live/livestream
|
* rtmp://localhost/live/livestream
|
||||||
|
* @remark default timeout to 30s if not set by srs_rtmp_set_timeout.
|
||||||
*
|
*
|
||||||
* @return a rtmp handler, or NULL if error occured.
|
* @return a rtmp handler, or NULL if error occured.
|
||||||
*/
|
*/
|
||||||
|
@ -117,6 +118,7 @@ extern srs_rtmp_t srs_rtmp_create(const char* url);
|
||||||
* rtmp://localhost/live
|
* rtmp://localhost/live
|
||||||
* @remark this is used to create application connection-oriented,
|
* @remark this is used to create application connection-oriented,
|
||||||
* for example, the bandwidth client used this, no stream specified.
|
* for example, the bandwidth client used this, no stream specified.
|
||||||
|
* @remark default timeout to 30s if not set by srs_rtmp_set_timeout.
|
||||||
*
|
*
|
||||||
* @return a rtmp handler, or NULL if error occured.
|
* @return a rtmp handler, or NULL if error occured.
|
||||||
*/
|
*/
|
||||||
|
@ -125,6 +127,9 @@ extern srs_rtmp_t srs_rtmp_create2(const char* url);
|
||||||
* set socket timeout
|
* set socket timeout
|
||||||
* @param recv_timeout_ms the timeout for receiving messages in ms.
|
* @param recv_timeout_ms the timeout for receiving messages in ms.
|
||||||
* @param send_timeout_ms the timeout for sending message in ms.
|
* @param send_timeout_ms the timeout for sending message in ms.
|
||||||
|
* @remark user can set timeout once srs_rtmp_create/srs_rtmp_create2,
|
||||||
|
* or before srs_rtmp_handshake or srs_rtmp_dns_resolve to connect to server.
|
||||||
|
* @remark default timeout to 30s if not set by srs_rtmp_set_timeout.
|
||||||
*
|
*
|
||||||
* @return 0, success; otherswise, failed.
|
* @return 0, success; otherswise, failed.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue