1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

migarate from winlinvip to srs org

This commit is contained in:
winlin 2015-04-29 17:06:32 +08:00
parent b3bd007f0d
commit 115daa3cc1
117 changed files with 323 additions and 323 deletions

View file

@ -49,7 +49,7 @@ using namespace std;
using namespace _srs_internal;
#define SRS_WIKI_URL_LOG "https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_SrsLog"
#define SRS_WIKI_URL_LOG "https://github.com/simple-rtmp-server/srs/wiki/v1_CN_SrsLog"
// when user config an invalid value, macros to perfer true or false.
#define SRS_CONF_PERFER_FALSE(conf_arg) conf_arg == "on"
@ -1650,7 +1650,7 @@ int SrsConfig::check_config()
int nb_canbe = max_open_files - nb_consumed_fds - 1;
// for each play connections, we open a pipe(2fds) to convert SrsConsumver to io,
// refine performance, @see: https://github.com/winlinvip/simple-rtmp-server/issues/194
// refine performance, @see: https://github.com/simple-rtmp-server/srs/issues/194
if (nb_total >= max_open_files) {
ret = ERROR_SYSTEM_CONFIG_INVALID;
srs_error("invalid max_connections=%d, required=%d, system limit to %d, "

View file

@ -508,7 +508,7 @@ public:
* whether debug_srs_upnode is enabled of vhost.
* debug_srs_upnode is very important feature for tracable log,
* but some server, for instance, flussonic donot support it.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/160
* @see https://github.com/simple-rtmp-server/srs/issues/160
* @return true when debug_srs_upnode is ok; otherwise, false.
* @remark, default true.
*/
@ -713,7 +713,7 @@ public:
virtual bool get_vhost_edge_token_traverse(std::string vhost);
/**
* get the transformed vhost for edge,
* @see https://github.com/winlinvip/simple-rtmp-server/issues/372
* @see https://github.com/simple-rtmp-server/srs/issues/372
*/
virtual std::string get_vhost_edge_transform_vhost(std::string vhost);
// vhost security section
@ -945,7 +945,7 @@ public:
* get the hls hls_on_error config.
* the ignore will ignore error and disable hls.
* the disconnect will disconnect publish connection.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/264
* @see https://github.com/simple-rtmp-server/srs/issues/264
*/
virtual std::string get_hls_on_error(std::string vhost);
/**

View file

@ -37,7 +37,7 @@ SrsConnection::SrsConnection(SrsServer* srs_server, st_netfd_t client_stfd)
// the client thread should reap itself,
// so we never use joinable.
// TODO: FIXME: maybe other thread need to stop it.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/78
// @see: https://github.com/simple-rtmp-server/srs/issues/78
pthread = new SrsThread("conn", this, 0, false);
}

View file

@ -916,7 +916,7 @@ int SrsDvrSegmentPlan::update_duration(SrsSharedPtrMessage* msg)
}
// when wait keyframe, ignore if no frame arrived.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/177
// @see https://github.com/simple-rtmp-server/srs/issues/177
if (_srs_config->get_dvr_wait_keyframe(req->vhost)) {
if (!msg->is_video()) {
return ret;

View file

@ -218,7 +218,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
@ -242,7 +242,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port)
data->set("srs_server_ip", SrsAmf0Any::str(local_ip.c_str()));
// support vhost tranform for edge,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/372
// @see https://github.com/simple-rtmp-server/srs/issues/372
std::string vhost = _srs_config->get_vhost_edge_transform_vhost(req->vhost);
vhost = srs_string_replace(vhost, "[vhost]", req->vhost);
// generate the tcUrl
@ -255,7 +255,7 @@ int SrsEdgeIngester::connect_app(string ep_server, string ep_port)
req->tcUrl = tc_url;
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
@ -338,7 +338,7 @@ int SrsEdgeIngester::connect_server(string& ep_server, string& ep_port)
SrsConfDirective* conf = _srs_config->get_vhost_edge_origin(_req->vhost);
// @see https://github.com/winlinvip/simple-rtmp-server/issues/79
// @see https://github.com/simple-rtmp-server/srs/issues/79
// when origin is error, for instance, server is shutdown,
// then user remove the vhost then reload, the conf is empty.
if (!conf) {
@ -649,7 +649,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
@ -673,7 +673,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port)
data->set("srs_server_ip", SrsAmf0Any::str(local_ip.c_str()));
// support vhost tranform for edge,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/372
// @see https://github.com/simple-rtmp-server/srs/issues/372
std::string vhost = _srs_config->get_vhost_edge_transform_vhost(req->vhost);
vhost = srs_string_replace(vhost, "[vhost]", req->vhost);
// generate the tcUrl
@ -686,7 +686,7 @@ int SrsEdgeForwarder::connect_app(string ep_server, string ep_port)
req->tcUrl = tc_url;
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {
@ -823,7 +823,7 @@ int SrsPublishEdge::on_client_publish()
return ret;
}
// @see https://github.com/winlinvip/simple-rtmp-server/issues/180
// @see https://github.com/simple-rtmp-server/srs/issues/180
// to avoid multiple publish the same stream on the same edge,
// directly enter the publish stage.
if (true) {
@ -835,7 +835,7 @@ int SrsPublishEdge::on_client_publish()
// start to forward stream to origin.
ret = forwarder->start();
// @see https://github.com/winlinvip/simple-rtmp-server/issues/180
// @see https://github.com/simple-rtmp-server/srs/issues/180
// when failed, revert to init
if (ret != ERROR_SUCCESS) {
SrsEdgeState pstate = state;

View file

@ -171,7 +171,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
}
}
// @see, https://github.com/winlinvip/simple-rtmp-server/issues/145
// @see, https://github.com/simple-rtmp-server/srs/issues/145
if (acodec == SRS_RTMP_ENCODER_LIBAACPLUS) {
if (abitrate < 16 || abitrate > 72) {
ret = ERROR_ENCODER_ABITRATE;
@ -205,7 +205,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine)
// for not rtmp input, donot append the iformat,
// for example, "-f flv" before "-i udp://192.168.1.252:2222"
// @see https://github.com/winlinvip/simple-rtmp-server/issues/290
// @see https://github.com/simple-rtmp-server/srs/issues/290
if (input.find("rtmp://") != 0) {
iformat = "";
}

View file

@ -340,7 +340,7 @@ int SrsForwarder::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_SERVER));
@ -368,7 +368,7 @@ int SrsForwarder::connect_app(string ep_server, string ep_port)
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {

View file

@ -67,7 +67,7 @@ private:
SrsMessageQueue* queue;
/**
* cache the sequence header for retry when slave is failed.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/150
* @see https://github.com/simple-rtmp-server/srs/issues/150
*/
SrsSharedPtrMessage* sh_audio;
SrsSharedPtrMessage* sh_video;

View file

@ -565,7 +565,7 @@ bool SrsHlsMuxer::wait_keyframe()
bool SrsHlsMuxer::is_segment_absolutely_overflow()
{
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-83553950
// @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-83553950
srs_assert(current);
// to prevent very small segment.
@ -822,7 +822,7 @@ int SrsHlsMuxer::_refresh_m3u8(string m3u8_file)
* rounded to the nearest integer. Its value MUST NOT change. A
* typical target duration is 10 seconds.
*/
// @see https://github.com/winlinvip/simple-rtmp-server/issues/304#issuecomment-74000081
// @see https://github.com/simple-rtmp-server/srs/issues/304#issuecomment-74000081
std::vector<SrsHlsSegment*>::iterator it;
for (it = segments.begin(); it != segments.end(); ++it) {
SrsHlsSegment* segment = *it;
@ -986,9 +986,9 @@ int SrsHlsCache::write_audio(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t
// for example, pure audio when start, audio/video when publishing,
// pure audio again for audio disabled.
// so we reap event when the audio incoming when segment overflow.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151
// @see https://github.com/simple-rtmp-server/srs/issues/151
// we use absolutely overflow of segment to make jwplayer/ffplay happy
// @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184
// @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71155184
if (cache->audio && muxer->is_segment_absolutely_overflow()) {
srs_info("hls: absolute audio reap segment.");
if ((ret = reap_segment("audio", muxer, cache->audio->pts)) != ERROR_SUCCESS) {
@ -1264,7 +1264,7 @@ int SrsHls::on_video(SrsSharedPtrMessage* shared_video)
sample->frame_type, codec->video_codec_id, sample->avc_packet_type, sample->cts, video->size, video->timestamp);
// ignore info frame,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
// @see https://github.com/simple-rtmp-server/srs/issues/288#issuecomment-69863909
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
return ret;
}
@ -1304,7 +1304,7 @@ void SrsHls::hls_show_mux_log()
// reportable
if (pprint->can_print()) {
// the run time is not equals to stream time,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/81#issuecomment-48100994
// @see: https://github.com/simple-rtmp-server/srs/issues/81#issuecomment-48100994
// it's ok.
srs_trace("-> "SRS_CONSTS_LOG_HLS" time=%"PRId64", stream dts=%"PRId64"(%"PRId64"ms), sno=%d, ts=%s, dur=%.2f, dva=%dp",
pprint->age(), stream_dts, stream_dts / 90, muxer->sequence_no(), muxer->ts_url().c_str(),

View file

@ -248,12 +248,12 @@ private:
/**
* the current audio codec, when open new muxer,
* set the muxer audio codec.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/301
* @see https://github.com/simple-rtmp-server/srs/issues/301
*/
SrsCodecAudio acodec;
/**
* the ts context, to keep cc continous between ts.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/375
* @see https://github.com/simple-rtmp-server/srs/issues/375
*/
SrsTsContext* context;
public:
@ -295,7 +295,7 @@ public:
/**
* whether segment absolutely overflow, for pure audio to reap segment,
* that is whether the current segment duration>=2*(the segment in config)
* @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184
* @see https://github.com/simple-rtmp-server/srs/issues/151#issuecomment-71155184
*/
virtual bool is_segment_absolutely_overflow();
public:

View file

@ -428,7 +428,7 @@ int SrsHttpHooks::do_post(std::string url, std::string req, int& code, string& r
}
// ensure the http status is ok.
// https://github.com/winlinvip/simple-rtmp-server/issues/158
// https://github.com/simple-rtmp-server/srs/issues/158
if (code != SRS_CONSTS_HTTP_OK) {
return ERROR_HTTP_STATUS_INVLIAD;
}

View file

@ -461,7 +461,7 @@ int SrsMpegtsOverUdp::write_h264_ipb_frame(char* frame, int frame_size, u_int32_
int ret = ERROR_SUCCESS;
// when sps or pps not sent, ignore the packet.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/203
// @see https://github.com/simple-rtmp-server/srs/issues/203
if (!h264_sps_pps_sent) {
return ERROR_H264_DROP_BEFORE_SPS_PPS;
}
@ -672,7 +672,7 @@ int SrsMpegtsOverUdp::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
@ -700,7 +700,7 @@ int SrsMpegtsOverUdp::connect_app(string ep_server, string ep_port)
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {

View file

@ -119,8 +119,8 @@ void SrsRecvThread::on_thread_start()
// the multiple messages writev improve performance large,
// but the timeout recv will cause 33% sys call performance,
// to use isolate thread to recv, can improve about 33% performance.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/194
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
// @see https://github.com/simple-rtmp-server/srs/issues/194
// @see: https://github.com/simple-rtmp-server/srs/issues/217
rtmp->set_recv_timeout(ST_UTIME_NO_TIMEOUT);
handler->on_thread_start();
@ -258,7 +258,7 @@ SrsPublishRecvThread::SrsPublishRecvThread(
mr_fd = mr_sock_fd;
// the mr settings,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
mr = _srs_config->get_mr_enabled(req->vhost);
mr_sleep = _srs_config->get_mr_sleep_ms(req->vhost);
@ -318,7 +318,7 @@ void SrsPublishRecvThread::on_thread_start()
set_socket_buffer(mr_sleep);
// disable the merge read
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
rtmp->set_merge_read(true, this);
}
#endif
@ -330,13 +330,13 @@ void SrsPublishRecvThread::on_thread_stop()
// for we donot set to false yet.
// when thread stop, signal the conn thread which wait.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/244
// @see https://github.com/simple-rtmp-server/srs/issues/244
st_cond_signal(error);
#ifdef SRS_PERF_MERGED_READ
if (mr) {
// disable the merge read
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
rtmp->set_merge_read(false, NULL);
}
#endif
@ -373,7 +373,7 @@ void SrsPublishRecvThread::on_recv_error(int ret)
recv_error_code = ret;
// when recv thread error, signal the conn thread to process it.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/244
// @see https://github.com/simple-rtmp-server/srs/issues/244
st_cond_signal(error);
}
@ -392,7 +392,7 @@ void SrsPublishRecvThread::on_read(ssize_t nread)
* to improve read performance, merge some packets then read,
* when it on and read small bytes, we sleep to wait more data.,
* that is, we merge some data to read together.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
if (nread < SRS_MR_SMALL_BYTES) {
st_usleep(mr_sleep * 1000);
@ -409,7 +409,7 @@ int SrsPublishRecvThread::on_reload_vhost_mr(string vhost)
}
// the mr settings,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
bool mr_enabled = _srs_config->get_mr_enabled(req->vhost);
int sleep_ms = _srs_config->get_mr_sleep_ms(req->vhost);
@ -422,13 +422,13 @@ int SrsPublishRecvThread::on_reload_vhost_mr(string vhost)
// mr enabled=>disabled
if (mr && !mr_enabled) {
// disable the merge read
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
rtmp->set_merge_read(false, NULL);
}
// mr disabled=>enabled
if (!mr && mr_enabled) {
// enable the merge read
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
rtmp->set_merge_read(true, this);
}
#endif

View file

@ -103,7 +103,7 @@ public:
* the recv thread used to replace the timeout recv,
* which hurt performance for the epoll_ctrl is frequently used.
* @see: SrsRtmpConn::playing
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
* @see: https://github.com/simple-rtmp-server/srs/issues/217
*/
class SrsQueueRecvThread : public ISrsMessageHandler
{
@ -136,7 +136,7 @@ public:
/**
* the publish recv thread got message and callback the source method to process message.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/237
* @see: https://github.com/simple-rtmp-server/srs/issues/237
*/
class SrsPublishRecvThread : virtual public ISrsMessageHandler
#ifdef SRS_PERF_MERGED_READ
@ -151,12 +151,12 @@ private:
// the msgs already got.
int64_t _nb_msgs;
// for mr(merged read),
// @see https://github.com/winlinvip/simple-rtmp-server/issues/241
// @see https://github.com/simple-rtmp-server/srs/issues/241
bool mr;
int mr_fd;
int mr_sleep;
// for realtime
// @see https://github.com/winlinvip/simple-rtmp-server/issues/257
// @see https://github.com/simple-rtmp-server/srs/issues/257
bool realtime;
// the recv thread error code.
int recv_error_code;
@ -166,7 +166,7 @@ private:
bool _is_fmle;
bool _is_edge;
// the error timeout cond
// @see https://github.com/winlinvip/simple-rtmp-server/issues/244
// @see https://github.com/simple-rtmp-server/srs/issues/244
st_cond_t error;
public:
SrsPublishRecvThread(SrsRtmpServer* rtmp_sdk,

View file

@ -36,7 +36,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* when reload callback, the config is updated yet.
*
* features not support reload,
* @see: https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Reload#notsupportedfeatures
* @see: https://github.com/simple-rtmp-server/srs/wiki/v1_CN_Reload#notsupportedfeatures
*/
class ISrsReloadHandler
{

View file

@ -295,7 +295,7 @@ int SrsRtmpConn::service_cycle()
}
// do token traverse before serve it.
// @see https://github.com/winlinvip/simple-rtmp-server/pull/239
// @see https://github.com/simple-rtmp-server/srs/pull/239
if (true) {
bool vhost_is_edge = _srs_config->get_vhost_is_edge(req->vhost);
bool edge_traverse = _srs_config->get_vhost_edge_token_traverse(req->vhost);
@ -348,7 +348,7 @@ int SrsRtmpConn::service_cycle()
// logical accept and retry stream service.
if (ret == ERROR_CONTROL_RTMP_CLOSE) {
// TODO: FIXME: use ping message to anti-death of socket.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/39
// @see: https://github.com/simple-rtmp-server/srs/issues/39
// set timeout to a larger value, for user paused.
rtmp->set_recv_timeout(SRS_PAUSED_RECV_TIMEOUT_US);
rtmp->set_send_timeout(SRS_PAUSED_SEND_TIMEOUT_US);
@ -582,7 +582,7 @@ int SrsRtmpConn::playing(SrsSource* source)
srs_verbose("consumer created success.");
// use isolate thread to recv,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
// @see: https://github.com/simple-rtmp-server/srs/issues/217
SrsQueueRecvThread trd(consumer, rtmp, SRS_PERF_MW_SLEEP);
// start isolate recv thread.
@ -640,8 +640,8 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
pprint->elapse();
// to use isolate thread to recv, can improve about 33% performance.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/196
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
// @see: https://github.com/simple-rtmp-server/srs/issues/196
// @see: https://github.com/simple-rtmp-server/srs/issues/217
while (!trd->empty()) {
SrsCommonMessage* msg = trd->pump();
srs_verbose("pump client message to process.");
@ -667,8 +667,8 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
srs_verbose("send thread now=%"PRId64"us, wait %dms", srs_update_system_time_ms(), mw_sleep);
// wait for message to incoming.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/251
// @see https://github.com/winlinvip/simple-rtmp-server/issues/257
// @see https://github.com/simple-rtmp-server/srs/issues/251
// @see https://github.com/simple-rtmp-server/srs/issues/257
if (realtime) {
// for realtime, min required msgs is 0, send when got one+ msgs.
consumer->wait(0, mw_sleep);
@ -750,7 +750,7 @@ int SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRe
}
// if duration specified, and exceed it, stop play live.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/45
// @see: https://github.com/simple-rtmp-server/srs/issues/45
if (user_specified_duration_to_stop) {
if (duration >= (int64_t)req->duration) {
ret = ERROR_RTMP_DURATION_EXCEED;
@ -775,7 +775,7 @@ int SrsRtmpConn::fmle_publishing(SrsSource* source)
}
// use isolate thread to recv,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/237
// @see: https://github.com/simple-rtmp-server/srs/issues/237
SrsPublishRecvThread trd(rtmp, req,
st_netfd_fileno(stfd), 0, this, source, true, vhost_is_edge);
@ -810,7 +810,7 @@ int SrsRtmpConn::flash_publishing(SrsSource* source)
}
// use isolate thread to recv,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/237
// @see: https://github.com/simple-rtmp-server/srs/issues/237
SrsPublishRecvThread trd(rtmp, req,
st_netfd_fileno(stfd), 0, this, source, true, vhost_is_edge);
@ -1039,7 +1039,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsCommonMessag
SrsAutoFree(SrsPacket, pkt);
// for jwplayer/flowplayer, which send close as pause message.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/6
// @see https://github.com/simple-rtmp-server/srs/issues/6
SrsCloseStreamPacket* close = dynamic_cast<SrsCloseStreamPacket*>(pkt);
if (close) {
ret = ERROR_CONTROL_RTMP_CLOSE;
@ -1049,7 +1049,7 @@ int SrsRtmpConn::process_play_control_msg(SrsConsumer* consumer, SrsCommonMessag
// call msg,
// support response null first,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/106
// @see https://github.com/simple-rtmp-server/srs/issues/106
// TODO: FIXME: response in right way, or forward in edge mode.
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
if (call) {

View file

@ -70,7 +70,7 @@ private:
SrsSecurity* security;
// elapse duration in ms
// for live play duration, for instance, rtmpdump to record.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/47
// @see https://github.com/simple-rtmp-server/srs/issues/47
int64_t duration;
SrsKbps* kbps;
// the MR(merged-write) sleep time in ms.
@ -78,7 +78,7 @@ private:
// the MR(merged-write) only enabled for play.
int mw_enabled;
// for realtime
// @see https://github.com/winlinvip/simple-rtmp-server/issues/257
// @see https://github.com/simple-rtmp-server/srs/issues/257
bool realtime;
public:
SrsRtmpConn(SrsServer* srs_server, st_netfd_t client_stfd);

View file

@ -723,7 +723,7 @@ int SrsRtspConn::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
@ -751,7 +751,7 @@ int SrsRtspConn::connect_app(string ep_server, string ep_port)
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost);
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {

View file

@ -38,7 +38,7 @@ class SrsConfDirective;
/**
* the security apply on vhost.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/211
* @see https://github.com/simple-rtmp-server/srs/issues/211
*/
class SrsSecurity
{

View file

@ -55,7 +55,7 @@ using namespace std;
// for example, system-interval is x=1s(1000ms),
// then rusage can be 3*x, for instance, 3*1=3s,
// the meminfo canbe 6*x, for instance, 6*1=6s,
// for performance refine, @see: https://github.com/winlinvip/simple-rtmp-server/issues/194
// for performance refine, @see: https://github.com/simple-rtmp-server/srs/issues/194
// @remark, recomment to 1000ms.
#define SRS_SYS_CYCLE_INTERVAL 1000

View file

@ -382,7 +382,7 @@ void SrsMessageQueue::shrink()
// it is ok to clear for audio, for the shrink tell us the queue is full.
// for video, we clear util the I-Frame, for the decoding must start from I-frame,
// for audio, it's ok to clear any data, also we can clear the whole queue.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/134
// @see: https://github.com/simple-rtmp-server/srs/issues/134
if (iframe_index < 0) {
clear();
return;
@ -1422,7 +1422,7 @@ int SrsSource::on_audio_imp(SrsSharedPtrMessage* msg)
#ifdef SRS_AUTO_HLS
if ((ret = hls->on_audio(msg)) != ERROR_SUCCESS) {
// apply the error strategy for hls.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/264
// @see https://github.com/simple-rtmp-server/srs/issues/264
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
srs_warn("hls process audio message failed, ignore and disable hls. ret=%d", ret);
@ -1586,7 +1586,7 @@ int SrsSource::on_video_imp(SrsSharedPtrMessage* msg)
#ifdef SRS_AUTO_HLS
if ((ret = hls->on_video(msg)) != ERROR_SUCCESS) {
// apply the error strategy for hls.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/264
// @see https://github.com/simple-rtmp-server/srs/issues/264
std::string hls_error_strategy = _srs_config->get_hls_on_error(_req->vhost);
if (hls_error_strategy == SRS_CONF_DEFAULT_HLS_ON_ERROR_IGNORE) {
srs_warn("hls process video message failed, ignore and disable hls. ret=%d", ret);
@ -1997,7 +1997,7 @@ int SrsSource::create_consumer(SrsConsumer*& consumer, bool ds, bool dm, bool dg
// copy sequence header
// copy audio sequence first, for hls to fast parse the "right" audio codec.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/301
// @see https://github.com/simple-rtmp-server/srs/issues/301
if (ds && cache_sh_audio && (ret = consumer->enqueue(cache_sh_audio, atc, tba, tbv, ag)) != ERROR_SUCCESS) {
srs_error("dispatch audio sequence header failed. ret=%d", ret);
return ret;

View file

@ -111,7 +111,7 @@ public:
/**
* to alloc and increase fixed space,
* fast remove and insert for msgs sender.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/251
* @see https://github.com/simple-rtmp-server/srs/issues/251
*/
class SrsFastVector
{
@ -210,7 +210,7 @@ private:
bool should_update_source_id;
#ifdef SRS_PERF_QUEUE_COND_WAIT
// the cond wait for mw.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/251
// @see https://github.com/simple-rtmp-server/srs/issues/251
st_cond_t mw_wait;
bool mw_waiting;
int mw_min_msgs;
@ -298,7 +298,7 @@ private:
*
* @remark, it is ok for performance, for when we clear the gop cache,
* gop cache is disabled for pure audio stream.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/124
* @see: https://github.com/simple-rtmp-server/srs/issues/124
*/
int audio_after_last_video_count;
/**

View file

@ -48,7 +48,7 @@ int srs_init_st()
#ifdef __linux__
// check epoll, some old linux donot support epoll.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/162
// @see https://github.com/simple-rtmp-server/srs/issues/162
if (!srs_st_epoll_is_supported()) {
ret = ERROR_ST_SET_EPOLL;
srs_error("epoll required on Linux. ret=%d", ret);

View file

@ -84,7 +84,7 @@ int SrsStSocket::read(void* buf, size_t size, ssize_t* nread)
// (a value of 0 means the network connection is closed or end of file is reached).
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
if (nb_read <= 0) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_read < 0 && errno == ETIME) {
return ERROR_SOCKET_TIMEOUT;
}
@ -114,7 +114,7 @@ int SrsStSocket::read_fully(void* buf, size_t size, ssize_t* nread)
// (a value less than nbyte means the network connection is closed or end of file is reached)
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
if (nb_read != (ssize_t)size) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_read < 0 && errno == ETIME) {
return ERROR_SOCKET_TIMEOUT;
}
@ -143,7 +143,7 @@ int SrsStSocket::write(void* buf, size_t size, ssize_t* nwrite)
// On success a non-negative integer equal to nbyte is returned.
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
if (nb_write <= 0) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_write < 0 && errno == ETIME) {
return ERROR_SOCKET_TIMEOUT;
}
@ -168,7 +168,7 @@ int SrsStSocket::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
// On success a non-negative integer equal to nbyte is returned.
// Otherwise, a value of -1 is returned and errno is set to indicate the error.
if (nb_write <= 0) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_write < 0 && errno == ETIME) {
return ERROR_SOCKET_TIMEOUT;
}

View file

@ -68,7 +68,7 @@ SrsThread::SrsThread(const char* name, ISrsThreadHandler* thread_handler, int64_
// in start(), the thread cycle method maybe stop and remove the thread itself,
// and the thread start() is waiting for the _cid, and segment fault then.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/110
// @see https://github.com/simple-rtmp-server/srs/issues/110
// thread will set _cid, callback on_thread_start(), then wait for the can_run signal.
can_run = false;
}
@ -204,7 +204,7 @@ failed:
}
// to improve performance, donot sleep when interval is zero.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/237
// @see: https://github.com/simple-rtmp-server/srs/issues/237
if (cycle_interval_us != 0) {
st_usleep(cycle_interval_us);
}

View file

@ -157,12 +157,12 @@ public:
* @param interval_us, the sleep interval when cycle finished.
* @param joinable, if joinable, other thread must stop the thread.
* @remark if joinable, thread never quit itself, or memory leak.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/78
* @see: https://github.com/simple-rtmp-server/srs/issues/78
* @remark about st debug, see st-1.9/README, _st_iterate_threads_flag
*/
/**
* TODO: FIXME: maybe all thread must be reap by others threads,
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/77
* @see: https://github.com/simple-rtmp-server/srs/issues/77
*/
SrsThread(const char* name, ISrsThreadHandler* thread_handler, int64_t interval_us, bool joinable);
virtual ~SrsThread();

View file

@ -1132,7 +1132,7 @@ void retrieve_local_ipv4_ips()
// retrieve ipv4 addr
// ignore the tun0 network device,
// which addr is NULL.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/141
// @see: https://github.com/simple-rtmp-server/srs/issues/141
if (addr && addr->sa_family == AF_INET) {
in_addr* inaddr = &((sockaddr_in*)addr)->sin_addr;

View file

@ -79,7 +79,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define __STDC_FORMAT_MACROS
#endif
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <inttypes.h>
#endif

View file

@ -40,12 +40,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* that is, we merge some data to read together.
* @see SrsConfig::get_mr_enabled()
* @see SrsConfig::get_mr_sleep_ms()
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
* @example, for the default settings, this algorithm will use:
* that is, when got nread bytes smaller than 4KB, sleep(780ms).
*/
/**
* https://github.com/winlinvip/simple-rtmp-server/issues/241#issuecomment-65554690
* https://github.com/simple-rtmp-server/srs/issues/241#issuecomment-65554690
* The merged read algorithm is ok and can be simplified for:
* 1. Suppose the client network is ok. All algorithm go wrong when netowrk is not ok.
* 2. Suppose the client send each packet one by one. Although send some together, it's same.
@ -71,7 +71,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* @remark this largely improve performance, from 3.5k+ to 7.5k+.
* the latency+ when cache+.
* @remark the socket send buffer default to 185KB, it large enough.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/194
* @see https://github.com/simple-rtmp-server/srs/issues/194
* @see SrsConfig::get_mw_sleep_ms()
* @remark the mw sleep and msgs to send, maybe:
* mw_sleep msgs iovs
@ -106,24 +106,24 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/**
* whether set the socket send buffer size.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/251
* @see https://github.com/simple-rtmp-server/srs/issues/251
*/
#define SRS_PERF_MW_SO_SNDBUF
/**
* whether set the socket recv buffer size.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/251
* @see https://github.com/simple-rtmp-server/srs/issues/251
*/
#undef SRS_PERF_MW_SO_RCVBUF
/**
* whether enable the fast vector for qeueue.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/251
* @see https://github.com/simple-rtmp-server/srs/issues/251
*/
#define SRS_PERF_QUEUE_FAST_VECTOR
/**
* whether use cond wait to send messages.
* @remark this improve performance for large connectios.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/251
* @see https://github.com/simple-rtmp-server/srs/issues/251
*/
#define SRS_PERF_QUEUE_COND_WAIT
#ifdef SRS_PERF_QUEUE_COND_WAIT
@ -135,14 +135,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* for min latence mode:
* 1. disable the mr for vhost.
* 2. use timeout for cond wait for consumer queue.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/257
* @see https://github.com/simple-rtmp-server/srs/issues/257
*/
#define SRS_PERF_MIN_LATENCY_ENABLED false
/**
* how many chunk stream to cache, [0, N].
* to imporove about 10% performance when chunk size small, and 5% for large chunk.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/249
* @see https://github.com/simple-rtmp-server/srs/issues/249
* @remark 0 to disable the chunk stream cache.
*/
#define SRS_PERF_CHUNK_STREAM_CACHE 16
@ -158,21 +158,21 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/**
* whether always use complex send algorithm.
* for some network does not support the complex send,
* @see https://github.com/winlinvip/simple-rtmp-server/issues/320
* @see https://github.com/simple-rtmp-server/srs/issues/320
*/
//#undef SRS_PERF_COMPLEX_SEND
#define SRS_PERF_COMPLEX_SEND
/**
* whether enable the TCP_NODELAY
* user maybe need send small tcp packet for some network.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/320
* @see https://github.com/simple-rtmp-server/srs/issues/320
*/
//#define SRS_PERF_TCP_NODELAY
#undef SRS_PERF_TCP_NODELAY
/**
* set the socket send buffer,
* to force the server to send smaller tcp packet.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/320
* @see https://github.com/simple-rtmp-server/srs/issues/320
* @remark undef it to auto calc it by merged write sleep ms.
* @remark only apply it when SRS_PERF_MW_SO_RCVBUF is defined.
*/

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_aac.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif
@ -150,7 +150,7 @@ int SrsAacEncoder::write_audio(int64_t timestamp, char* data, int size)
// write the ADTS header.
// @see aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 75,
// 1.A.2.2 Audio_Data_Transport_Stream frame, ADTS
// @see https://github.com/winlinvip/simple-rtmp-server/issues/212#issuecomment-64145885
// @see https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64145885
// byte_alignment()
// adts_fixed_header:

View file

@ -584,7 +584,7 @@ int SrsAvcAacCodec::audio_aac_sequence_header_demux(char* data, int size)
// TODO: FIXME: to support aac he/he-v2, see: ngx_rtmp_codec_parse_aac_header
// @see: https://github.com/winlinvip/nginx-rtmp-module/commit/3a5f9eea78fc8d11e8be922aea9ac349b9dcbfc2
//
// donot force to LC, @see: https://github.com/winlinvip/simple-rtmp-server/issues/81
// donot force to LC, @see: https://github.com/simple-rtmp-server/srs/issues/81
// the source will print the sequence header info.
//if (aac_profile > 3) {
// Mark all extended profiles as LC
@ -626,7 +626,7 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample
sample->frame_type = (SrsCodecVideoAVCFrame)frame_type;
// ignore info frame without error,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
// @see https://github.com/simple-rtmp-server/srs/issues/288#issuecomment-69863909
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
srs_warn("video codec igone the info frame, ret=%d", ret);
return ret;
@ -1152,7 +1152,7 @@ int SrsAvcAacCodec::avc_demux_ibmf_format(SrsStream* stream, SrsCodecSample* sam
}
// maybe stream is invalid format.
// see: https://github.com/winlinvip/simple-rtmp-server/issues/183
// see: https://github.com/simple-rtmp-server/srs/issues/183
if (NALUnitLength < 0) {
ret = ERROR_HLS_DECODE_ERROR;
srs_error("maybe stream is AnnexB format. ret=%d", ret);

View file

@ -426,7 +426,7 @@ enum SrsAvcPayloadFormat
/**
* the aac profile, for ADTS(HLS/TS)
* @see https://github.com/winlinvip/simple-rtmp-server/issues/310
* @see https://github.com/simple-rtmp-server/srs/issues/310
*/
enum SrsAacProfile
{

View file

@ -100,7 +100,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/**
* for performance issue,
* the iovs cache, @see https://github.com/winlinvip/simple-rtmp-server/issues/194
* the iovs cache, @see https://github.com/simple-rtmp-server/srs/issues/194
* iovs cache for multiple messages for each connections.
* suppose the chunk size is 64k, each message send in a chunk which needs only 2 iovec,
* so the iovs max should be (SRS_PERF_MW_MSGS * 2)
@ -110,7 +110,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define SRS_CONSTS_IOVS_MAX (SRS_PERF_MW_MSGS * 2)
/**
* for performance issue,
* the c0c3 cache, @see https://github.com/winlinvip/simple-rtmp-server/issues/194
* the c0c3 cache, @see https://github.com/simple-rtmp-server/srs/issues/194
* c0c3 cache for multiple messages for each connections.
* each c0 <= 16byes, suppose the chunk size is 64k,
* each message send in a chunk which needs only a c0 header,

View file

@ -30,7 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_core.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#define ERROR_SUCCESS 0
#endif

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_file.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_flv.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_mp3.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_ts.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif
@ -447,7 +447,7 @@ int SrsTsContext::encode_pes(SrsFileWriter* writer, SrsTsMessage* msg, int16_t p
}
// it's ok to set pcr equals to dts,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/311
// @see https://github.com/simple-rtmp-server/srs/issues/311
int64_t pcr = write_pcr? msg->dts : -1;
// TODO: FIXME: finger it why use discontinuity of msg.
@ -956,7 +956,7 @@ int SrsTsAdaptationField::decode(SrsStream* stream)
pp[0] = *p++;
// @remark, use pcr base and ignore the extension
// @see https://github.com/winlinvip/simple-rtmp-server/issues/250#issuecomment-71349370
// @see https://github.com/simple-rtmp-server/srs/issues/250#issuecomment-71349370
program_clock_reference_extension = pcrv & 0x1ff;
const1_value0 = (pcrv >> 9) & 0x3F;
program_clock_reference_base = (pcrv >> 15) & 0x1ffffffffLL;
@ -983,7 +983,7 @@ int SrsTsAdaptationField::decode(SrsStream* stream)
pp[0] = *p++;
// @remark, use pcr base and ignore the extension
// @see https://github.com/winlinvip/simple-rtmp-server/issues/250#issuecomment-71349370
// @see https://github.com/simple-rtmp-server/srs/issues/250#issuecomment-71349370
original_program_clock_reference_extension = opcrv & 0x1ff;
const1_value2 = (opcrv >> 9) & 0x3F;
original_program_clock_reference_base = (opcrv >> 15) & 0x1ffffffffLL;
@ -1163,7 +1163,7 @@ int SrsTsAdaptationField::encode(SrsStream* stream)
stream->skip(6);
// @remark, use pcr base and ignore the extension
// @see https://github.com/winlinvip/simple-rtmp-server/issues/250#issuecomment-71349370
// @see https://github.com/simple-rtmp-server/srs/issues/250#issuecomment-71349370
int64_t pcrv = program_clock_reference_extension & 0x1ff;
pcrv |= (const1_value0 << 9) & 0x7E00;
pcrv |= (program_clock_reference_base << 15) & 0x1FFFFFFFF000000LL;
@ -3136,7 +3136,7 @@ int SrsTsEncoder::write_video(int64_t timestamp, char* data, int size)
}
// ignore info frame,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
// @see https://github.com/simple-rtmp-server/srs/issues/288#issuecomment-69863909
if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
return ret;
}

View file

@ -1568,7 +1568,7 @@ public:
* for user may need to update the acodec to mp3 or others,
* so we use delay write PSI, when write audio or video.
* @remark for audio aac codec, for example, SRS1, it's ok to write PSI when open ts.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/301
* @see https://github.com/simple-rtmp-server/srs/issues/301
*/
virtual int update_acodec(SrsCodecAudio ac);
/**

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_utility.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#include <netdb.h>
@ -121,7 +121,7 @@ int64_t srs_update_system_time_ms()
return -1;
}
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/35
// @see: https://github.com/simple-rtmp-server/srs/issues/35
// we must convert the tv_sec/tv_usec to int64_t.
int64_t now_us = ((int64_t)now.tv_sec) * 1000 * 1000 + (int64_t)now.tv_usec;
@ -143,7 +143,7 @@ int64_t srs_update_system_time_ms()
if (diff < 0 || diff > 1000 * SYS_TIME_RESOLUTION_US) {
srs_warn("system time jump, history=%"PRId64"us, now=%"PRId64"us, diff=%"PRId64"us",
_srs_system_time_us_cache, now_us, diff);
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/109
// @see: https://github.com/simple-rtmp-server/srs/issues/109
_srs_system_time_startup_time += diff;
}

View file

@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_lib_bandwidth.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif

View file

@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_error.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#define SOCKET_ETIME ETIME
#define SOCKET_ECONNRESET ECONNRESET
@ -53,7 +53,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define SOCKET_CLEANUP() socket_cleanup()
#endif
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#include <sys/socket.h>
@ -206,7 +206,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// the writev() function returns the number of bytes written. On error, -1 is
// returned, and errno is set appropriately.
if (nb_write <= 0) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_write < 0 && SOCKET_ERRNO() == SOCKET_ETIME) {
return ERROR_SOCKET_TIMEOUT;
}
@ -263,7 +263,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
}
if (nb_write <= 0) {
// @see https://github.com/winlinvip/simple-rtmp-server/issues/200
// @see https://github.com/simple-rtmp-server/srs/issues/200
if (nb_write < 0 && SOCKET_ERRNO() == SOCKET_ETIME) {
return ERROR_SOCKET_TIMEOUT;
}

View file

@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_rtmp_io.hpp>
#include <srs_librtmp.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#define SOCKET int
#endif

View file

@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <stdlib.h>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <sys/time.h>
#endif
@ -86,20 +86,20 @@ struct Context
SrsRawAacStream aac_raw;
// for h264 raw stream,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/66#issuecomment-62240521
// @see: https://github.com/simple-rtmp-server/srs/issues/66#issuecomment-62240521
SrsStream h264_raw_stream;
// about SPS, @see: 7.3.2.1.1, H.264-AVC-ISO_IEC_14496-10-2012.pdf, page 62
std::string h264_sps;
std::string h264_pps;
// whether the sps and pps sent,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/203
// @see https://github.com/simple-rtmp-server/srs/issues/203
bool h264_sps_pps_sent;
// only send the ssp and pps when both changed.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/204
// @see https://github.com/simple-rtmp-server/srs/issues/204
bool h264_sps_changed;
bool h264_pps_changed;
// for aac raw stream,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/212#issuecomment-64146250
// @see: https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64146250
SrsStream aac_raw_stream;
// the aac sequence header.
std::string aac_specific_config;
@ -127,7 +127,7 @@ struct Context
}
};
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifdef _WIN32
int gettimeofday(struct timeval* tv, struct timezone* tz)
{
@ -1239,7 +1239,7 @@ int srs_write_h264_ipb_frame(Context* context,
int ret = ERROR_SUCCESS;
// when sps or pps not sent, ignore the packet.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/203
// @see https://github.com/simple-rtmp-server/srs/issues/203
if (!context->h264_sps_pps_sent) {
return ERROR_H264_DROP_BEFORE_SPS_PPS;
}
@ -1372,8 +1372,8 @@ int srs_h264_write_raw_frames(srs_rtmp_t rtmp,
}
// use the last error
// @see https://github.com/winlinvip/simple-rtmp-server/issues/203
// @see https://github.com/winlinvip/simple-rtmp-server/issues/204
// @see https://github.com/simple-rtmp-server/srs/issues/203
// @see https://github.com/simple-rtmp-server/srs/issues/204
int error_code_return = ret;
// send each frame.
@ -2391,7 +2391,7 @@ const char* srs_human_format_time()
tm->tm_hour, tm->tm_min, tm->tm_sec,
(int)(tv.tv_usec / 1000));
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
buf[sizeof(buf) - 1] = 0;
return buf;

View file

@ -41,7 +41,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Windows SRS-LIBRTMP pre-declare
**************************************************************
*************************************************************/
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifdef _WIN32
// include windows first.
#include <windows.h>
@ -320,7 +320,7 @@ extern srs_bool srs_rtmp_is_onMetaData(char type, char* data, int size);
* @remark for aac, only support profile 1-4, AAC main/LC/SSR/LTP,
* @see aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 23, 1.5.1.1 Audio object type
*
* @see https://github.com/winlinvip/simple-rtmp-server/issues/212
* @see https://github.com/simple-rtmp-server/srs/issues/212
* @see E.4.2.1 AUDIODATA of video_file_format_spec_v10_1.pdf
*
* @return 0, success; otherswise, failed.
@ -376,7 +376,7 @@ extern int srs_aac_adts_frame_size(char* aac_raw_data, int ac_raw_size);
* @remark, cts = pts - dts
* @remark, use srs_h264_startswith_annexb to check whether frame is annexb format.
* @example /trunk/research/librtmp/srs_h264_raw_publish.c
* @see https://github.com/winlinvip/simple-rtmp-server/issues/66
* @see https://github.com/simple-rtmp-server/srs/issues/66
*
* @return 0, success; otherswise, failed.
* for dvbsp error, @see srs_h264_is_dvbsp_error().
@ -418,7 +418,7 @@ extern int srs_h264_write_raw_frames(srs_rtmp_t rtmp,
/**
* whether error_code is dvbsp(drop video before sps/pps/sequence-header) error.
*
* @see https://github.com/winlinvip/simple-rtmp-server/issues/203
* @see https://github.com/simple-rtmp-server/srs/issues/203
* @example /trunk/research/librtmp/srs_h264_raw_publish.c
* @remark why drop video?
* some encoder, for example, ipcamera, will send sps/pps before each IFrame,
@ -429,14 +429,14 @@ extern srs_bool srs_h264_is_dvbsp_error(int error_code);
/**
* whether error_code is duplicated sps error.
*
* @see https://github.com/winlinvip/simple-rtmp-server/issues/204
* @see https://github.com/simple-rtmp-server/srs/issues/204
* @example /trunk/research/librtmp/srs_h264_raw_publish.c
*/
extern srs_bool srs_h264_is_duplicated_sps_error(int error_code);
/**
* whether error_code is duplicated pps error.
*
* @see https://github.com/winlinvip/simple-rtmp-server/issues/204
* @see https://github.com/simple-rtmp-server/srs/issues/204
* @example /trunk/research/librtmp/srs_h264_raw_publish.c
*/
extern srs_bool srs_h264_is_duplicated_pps_error(int error_code);
@ -1021,7 +1021,7 @@ typedef void* srs_hijack_io_t;
* Windows SRS-LIBRTMP solution
**************************************************************
*************************************************************/
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifdef _WIN32
#define _CRT_SECURE_NO_WARNINGS
#include <time.h>

View file

@ -1090,7 +1090,7 @@ int SrsIngestSrsOutput::write_h264_ipb_frame(string ibps, SrsCodecVideoAVCFrame
int ret = ERROR_SUCCESS;
// when sps or pps not sent, ignore the packet.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/203
// @see https://github.com/simple-rtmp-server/srs/issues/203
if (!h264_sps_pps_sent) {
return ERROR_H264_DROP_BEFORE_SPS_PPS;
}
@ -1278,7 +1278,7 @@ int SrsIngestSrsOutput::connect_app(string ep_server, string ep_port)
}
// notify server the edge identity,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/147
// @see https://github.com/simple-rtmp-server/srs/issues/147
SrsAmf0Object* data = req->args;
data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
@ -1306,7 +1306,7 @@ int SrsIngestSrsOutput::connect_app(string ep_server, string ep_port)
std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param);
// upnode server identity will show in the connect_app of client.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
bool debug_srs_upnode = true;
if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) {

View file

@ -320,7 +320,7 @@ int SrsRawAacStream::adts_demux(SrsStream* stream, char** pframe, int* pnb_frame
// decode the ADTS.
// @see aac-iso-13818-7.pdf, page 26
// 6.2 Audio Data Transport Stream, ADTS
// @see https://github.com/winlinvip/simple-rtmp-server/issues/212#issuecomment-64145885
// @see https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64145885
// byte_alignment()
// adts_fixed_header:
@ -383,7 +383,7 @@ int SrsRawAacStream::adts_demux(SrsStream* stream, char** pframe, int* pnb_frame
int8_t channel_configuration = (sfiv >> 6) & 0x07;
/*int8_t original = (sfiv >> 5) & 0x01;*/
/*int8_t home = (sfiv >> 4) & 0x01;*/
//int8_t Emphasis; @remark, Emphasis is removed, @see https://github.com/winlinvip/simple-rtmp-server/issues/212#issuecomment-64154736
//int8_t Emphasis; @remark, Emphasis is removed, @see https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64154736
// 4bits left.
// adts_variable_header(), 1.A.2.2.2 Variable Header of ADTS
// copyright_identification_bit 1 bslbf
@ -473,7 +473,7 @@ int SrsRawAacStream::mux_sequence_header(SrsRawAacStreamCodec* codec, string& sh
char samplingFrequencyIndex = codec->sampling_frequency_index;
// override the aac samplerate by user specified.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/212#issuecomment-64146899
// @see https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64146899
switch (codec->sound_rate) {
case SrsCodecAudioSampleRate11025:
samplingFrequencyIndex = 0x0a; break;

View file

@ -695,7 +695,7 @@ namespace _srs_internal
* 2.13 Date Type
* time-zone = S16 ; reserved, not supported should be set to 0x0000
* date-type = date-marker DOUBLE time-zone
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/185
* @see: https://github.com/simple-rtmp-server/srs/issues/185
*/
class SrsAmf0Date : public SrsAmf0Any
{

View file

@ -187,7 +187,7 @@ int SrsFastBuffer::grow(ISrsBufferReader* reader, int required_size)
* to improve read performance, merge some packets then read,
* when it on and read small bytes, we sleep to wait more data.,
* that is, we merge some data to read together.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
if (merged_read && _handler) {
_handler->on_read(nread);

View file

@ -39,7 +39,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* to improve read performance, merge some packets then read,
* when it on and read small bytes, we sleep to wait more data.,
* that is, we merge some data to read together.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
class IMergeReadHandler
{
@ -77,7 +77,7 @@ private:
#endif
// the user-space buffer to fill by reader,
// which use fast index and reset when chunk body read ok.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/248
// @see https://github.com/simple-rtmp-server/srs/issues/248
// ptr to the current read position.
char* p;
// ptr to the content end.
@ -106,7 +106,7 @@ public:
* @param buffer the size of buffer. ignore when smaller than SRS_MAX_SOCKET_BUFFER.
* @remark when MR(SRS_PERF_MERGED_READ) disabled, always set to 8K.
* @remark when buffer changed, the previous ptr maybe invalid.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
virtual void set_buffer(int buffer_size);
public:
@ -147,7 +147,7 @@ public:
* that is, we merge some data to read together.
* @param v true to ename merged read.
* @param handler the handler when merge read is enabled.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
* @remark the merged read is optional, ignore if not specifies.
*/
virtual void set_merge_read(bool v, IMergeReadHandler* handler);

View file

@ -200,12 +200,12 @@ namespace _srs_internal
// maybe the key_size is 127, but dh will write all 128bytes pkey,
// so, donot need to set/initialize the pkey.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
// @see https://github.com/simple-rtmp-server/srs/issues/165
key_size = BN_bn2bin(pdh->pub_key, (unsigned char*)pkey);
srs_assert(key_size > 0);
// output the size of public key.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
// @see https://github.com/simple-rtmp-server/srs/issues/165
srs_assert(key_size <= pkey_size);
pkey_size = key_size;
@ -225,7 +225,7 @@ namespace _srs_internal
// if failed, donot return, do cleanup, @see ./test/dhtest.c:168
// maybe the key_size is 127, but dh will write all 128bytes skey,
// so, donot need to set/initialize the skey.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/165
// @see https://github.com/simple-rtmp-server/srs/issues/165
int32_t key_size = DH_compute_key((unsigned char*)skey, ppk, pdh);
if (key_size < ppkey_size) {
@ -525,7 +525,7 @@ namespace _srs_internal
}
// directly generate the public key.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/148
// @see: https://github.com/simple-rtmp-server/srs/issues/148
int pkey_size = 128;
if ((ret = dh.copy_shared_key(c1->get_key(), 128, key.key, pkey_size)) != ERROR_SUCCESS) {
srs_error("calc s1 key failed. ret=%d", ret);

View file

@ -30,7 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_core.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <sys/uio.h>
#endif

View file

@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_stream.hpp>
#include <srs_kernel_utility.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif
@ -295,7 +295,7 @@ int SrsHandshakeBytes::create_s0s1s2(const char* c1)
}
// if c1 specified, copy c1 to s2.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/46
// @see: https://github.com/simple-rtmp-server/srs/issues/46
if (c1) {
memcpy(s0s1s2 + 1537, c1, 1536);
}
@ -492,7 +492,7 @@ int SrsRtmpClient::connect_app2(
}
pkt->command_object->set("objectEncoding", SrsAmf0Any::number(0));
// @see https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see https://github.com/simple-rtmp-server/srs/issues/160
// the debug_srs_upnode is config in vhost and default to true.
if (debug_srs_upnode && req && req->args) {
srs_freep(pkt->args);
@ -1049,7 +1049,7 @@ int SrsRtmpServer::identify_client(int stream_id, SrsRtmpConnType& type, string&
}
// call msg,
// support response null first,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/106
// @see https://github.com/simple-rtmp-server/srs/issues/106
// TODO: FIXME: response in right way, or forward in edge mode.
SrsCallPacket* call = dynamic_cast<SrsCallPacket*>(pkt);
if (call) {
@ -1139,7 +1139,7 @@ int SrsRtmpServer::start_play(int stream_id)
SrsSampleAccessPacket* pkt = new SrsSampleAccessPacket();
// allow audio/video sample.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
// @see: https://github.com/simple-rtmp-server/srs/issues/49
pkt->audio_sample_access = true;
pkt->video_sample_access = true;

View file

@ -85,12 +85,12 @@ public:
std::string stream;
// for play live stream,
// used to specified the stop when exceed the duration.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/45
// @see https://github.com/simple-rtmp-server/srs/issues/45
// in ms.
double duration;
// the token in the connect request,
// used for edge traverse to origin authentication,
// @see https://github.com/winlinvip/simple-rtmp-server/issues/104
// @see https://github.com/simple-rtmp-server/srs/issues/104
SrsAmf0Object* args;
public:
SrsRequest();
@ -343,7 +343,7 @@ public:
/**
* set the auto response message when recv for protocol stack.
* @param v, whether auto response message when recv message.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
* @see: https://github.com/simple-rtmp-server/srs/issues/217
*/
virtual void set_auto_response(bool v);
#ifdef SRS_PERF_MERGED_READ
@ -353,7 +353,7 @@ public:
* that is, we merge some data to read together.
* @param v true to ename merged read.
* @param handler the handler when merge read is enabled.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
virtual void set_merge_read(bool v, IMergeReadHandler* handler);
/**
@ -361,7 +361,7 @@ public:
* @param buffer the size of buffer.
* @remark when MR(SRS_PERF_MERGED_READ) disabled, always set to 8K.
* @remark when buffer changed, the previous ptr maybe invalid.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
virtual void set_recv_buffer(int buffer_size);
#endif
@ -416,7 +416,7 @@ public:
* @param stream_id, the stream id of packet to send over, 0 for control message.
*
* @remark performance issue, to support 6k+ 250kbps client,
* @see https://github.com/winlinvip/simple-rtmp-server/issues/194
* @see https://github.com/simple-rtmp-server/srs/issues/194
*/
virtual int send_and_free_messages(SrsSharedPtrMessage** msgs, int nb_msgs, int stream_id);
/**

View file

@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_rtmp_buffer.hpp>
#include <srs_rtmp_utility.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <unistd.h>
#endif
@ -1008,7 +1008,7 @@ int SrsProtocol::do_iovs_send(iovec* iovs, int size)
int ret = ERROR_SUCCESS;
// the limits of writev iovs.
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
static int limits = sysconf(_SC_IOV_MAX);
#else
@ -1375,7 +1375,7 @@ int SrsProtocol::recv_interlaced_message(SrsCommonMessage** pmsg)
SrsChunkStream* chunk = NULL;
// use chunk stream cache to get the chunk info.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/249
// @see https://github.com/simple-rtmp-server/srs/issues/249
if (cid < SRS_PERF_CHUNK_STREAM_CACHE) {
// chunk stream cache hit.
srs_verbose("cs-cache hit, cid=%d", cid);
@ -1586,7 +1586,7 @@ int SrsProtocol::read_message_header(SrsChunkStream* chunk, char fmt)
// 0x04 where: message_type=4(protocol control user-control message)
// 0x00 0x06 where: event Ping(0x06)
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/98
// @see: https://github.com/simple-rtmp-server/srs/issues/98
if (chunk->cid == RTMP_CID_ProtocolControl && fmt == RTMP_FMT_TYPE1) {
srs_warn("accept cid=2, fmt=1 to make librtmp happy.");
} else {
@ -1756,7 +1756,7 @@ int SrsProtocol::read_message_header(SrsChunkStream* chunk, char fmt)
pp[0] = *p++;
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/111
// @see https://github.com/simple-rtmp-server/srs/issues/111
timestamp &= 0x7fffffff;
/**
@ -1947,12 +1947,12 @@ int SrsProtocol::on_recv_message(SrsCommonMessage* msg)
// for some server, the actual chunk size can greater than the max value(65536),
// so we just warning the invalid chunk size, and actually use it is ok,
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/160
// @see: https://github.com/simple-rtmp-server/srs/issues/160
if (pkt->chunk_size < SRS_CONSTS_RTMP_MIN_CHUNK_SIZE
|| pkt->chunk_size > SRS_CONSTS_RTMP_MAX_CHUNK_SIZE)
{
srs_warn("accept chunk size %d, but should in [%d, %d], "
"@see: https://github.com/winlinvip/simple-rtmp-server/issues/160",
"@see: https://github.com/simple-rtmp-server/srs/issues/160",
pkt->chunk_size, SRS_CONSTS_RTMP_MIN_CHUNK_SIZE,
SRS_CONSTS_RTMP_MAX_CHUNK_SIZE);
}
@ -2150,7 +2150,7 @@ int SrsConnectAppPacket::decode(SrsStream* stream)
if (!stream->empty()) {
srs_freep(args);
// see: https://github.com/winlinvip/simple-rtmp-server/issues/186
// see: https://github.com/simple-rtmp-server/srs/issues/186
// the args maybe any amf0, for instance, a string. we should drop if not object.
SrsAmf0Any* any = NULL;
if ((ret = SrsAmf0Any::discovery(stream, &any)) != ERROR_SUCCESS) {

View file

@ -34,7 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <vector>
#include <string>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
// for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
#ifndef _WIN32
#include <sys/uio.h>
#endif
@ -220,7 +220,7 @@ class SrsSharedPtrMessage
// 4.1. Message Header
public:
// the header can shared, only set the timestamp and stream id.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/251
// @see https://github.com/simple-rtmp-server/srs/issues/251
//SrsSharedMessageHeader header;
/**
* Four-byte field that contains a timestamp of the message.
@ -255,7 +255,7 @@ private:
{
public:
// shared message header.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/251
// @see https://github.com/simple-rtmp-server/srs/issues/251
SrsSharedMessageHeader header;
// actual shared payload.
char* payload;
@ -408,7 +408,7 @@ private:
/**
* cache some frequently used chunk header.
* cs_cache, the chunk stream cache.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/249
* @see https://github.com/simple-rtmp-server/srs/issues/249
*/
SrsChunkStream** cs_cache;
/**
@ -426,7 +426,7 @@ private:
/**
* whether auto response when recv messages.
* default to true for it's very easy to use the protocol stack.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
* @see: https://github.com/simple-rtmp-server/srs/issues/217
*/
bool auto_response_when_recv;
/**
@ -464,7 +464,7 @@ public:
/**
* set the auto response message when recv for protocol stack.
* @param v, whether auto response message when recv message.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/217
* @see: https://github.com/simple-rtmp-server/srs/issues/217
*/
virtual void set_auto_response(bool v);
/**
@ -482,7 +482,7 @@ public:
* that is, we merge some data to read together.
* @param v true to ename merged read.
* @param handler the handler when merge read is enabled.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
virtual void set_merge_read(bool v, IMergeReadHandler* handler);
/**
@ -490,7 +490,7 @@ public:
* @param buffer the size of buffer.
* @remark when MR(SRS_PERF_MERGED_READ) disabled, always set to 8K.
* @remark when buffer changed, the previous ptr maybe invalid.
* @see https://github.com/winlinvip/simple-rtmp-server/issues/241
* @see https://github.com/simple-rtmp-server/srs/issues/241
*/
virtual void set_recv_buffer(int buffer_size);
#endif
@ -1454,13 +1454,13 @@ public:
std::string command_name;
/**
* whether allow access the sample of video.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
* @see: https://github.com/simple-rtmp-server/srs/issues/49
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#videoSampleAccess
*/
bool video_sample_access;
/**
* whether allow access the sample of audio.
* @see: https://github.com/winlinvip/simple-rtmp-server/issues/49
* @see: https://github.com/simple-rtmp-server/srs/issues/49
* @see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#audioSampleAccess
*/
bool audio_sample_access;

View file

@ -654,7 +654,7 @@ VOID TEST(ProtocolStackTest, ProtocolRecvMessage)
// 0x04 where: message_type=4(protocol control user-control message)
// 0x00 0x06 where: event Ping(0x06)
// 0x00 0x00 0x0d 0x0f where: event data 4bytes ping timestamp.
// @see: https://github.com/winlinvip/simple-rtmp-server/issues/98
// @see: https://github.com/simple-rtmp-server/srs/issues/98
VOID TEST(ProtocolStackTest, ProtocolRecvMessageBug98)
{
MockBufferIO bio;
@ -3751,7 +3751,7 @@ VOID TEST(ProtocolStackTest, ProtocolRecvExtTimeMessage2)
* always use 31bits timestamp.
*/
// always use 31bits timestamp, for some server may use 32bits extended timestamp.
// @see https://github.com/winlinvip/simple-rtmp-server/issues/111
// @see https://github.com/simple-rtmp-server/srs/issues/111
VOID TEST(ProtocolStackTest, ProtocolRecvExtTimeMessage3)
{
MockBufferIO bio;