wenjiegit

merge upstream

正在显示 50 个修改的文件 包含 11 行增加467 行删除
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -104,8 +103,8 @@ void srs_vhost_resolve(std::string& vhost, std::string& app) @@ -104,8 +103,8 @@ void srs_vhost_resolve(std::string& vhost, std::string& app)
104 if ((pos = query.find("vhost?")) != std::string::npos 103 if ((pos = query.find("vhost?")) != std::string::npos
105 || (pos = query.find("vhost=")) != std::string::npos 104 || (pos = query.find("vhost=")) != std::string::npos
106 || (pos = query.find("Vhost?")) != std::string::npos 105 || (pos = query.find("Vhost?")) != std::string::npos
107 - || (pos = query.find("Vhost=")) != std::string::npos)  
108 - { 106 + || (pos = query.find("Vhost=")) != std::string::npos
  107 + ) {
109 query = query.substr(pos + 6); 108 query = query.substr(pos + 6);
110 if (!query.empty()) { 109 if (!query.empty()) {
111 vhost = query; 110 vhost = query;
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -179,7 +178,6 @@ int SrsClient::service_cycle() @@ -179,7 +178,6 @@ int SrsClient::service_cycle()
179 srs_error("identify client failed. ret=%d", ret); 178 srs_error("identify client failed. ret=%d", ret);
180 return ret; 179 return ret;
181 } 180 }
182 -  
183 req->strip(); 181 req->strip();
184 srs_trace("identify client success. type=%d, stream_name=%s", type, req->stream.c_str()); 182 srs_trace("identify client success. type=%d, stream_name=%s", type, req->stream.c_str());
185 183
@@ -541,40 +539,6 @@ int SrsClient::get_peer_ip() @@ -541,40 +539,6 @@ int SrsClient::get_peer_ip()
541 return ret; 539 return ret;
542 } 540 }
543 541
544 -int SrsClient::get_local_ip(char *&local_ip)  
545 -{  
546 - int ret = ERROR_SUCCESS;  
547 -  
548 - int fd = st_netfd_fileno(stfd);  
549 -  
550 - // discovery client information  
551 - sockaddr_in addr;  
552 - socklen_t addrlen = sizeof(addr);  
553 - if (getsockname(fd, (sockaddr*)&addr, &addrlen) == -1) {  
554 - ret = ERROR_SOCKET_GET_LOCAL_IP;  
555 - srs_error("discovery local ip information failed. ret=%d", ret);  
556 - return ret;  
557 - }  
558 - srs_verbose("get local ip success.");  
559 -  
560 - // ip v4 or v6  
561 - char buf[INET6_ADDRSTRLEN];  
562 - memset(buf, 0, sizeof(buf));  
563 -  
564 - if ((inet_ntop(addr.sin_family, &addr.sin_addr, buf, sizeof(buf))) == NULL) {  
565 - ret = ERROR_SOCKET_GET_LOCAL_IP;  
566 - srs_error("convert local ip information failed. ret=%d", ret);  
567 - return ret;  
568 - }  
569 -  
570 - local_ip = new char[strlen(buf) + 1];  
571 - strcpy(local_ip, buf);  
572 -  
573 - srs_verbose("get local ip of client ip=%s, fd=%d", buf, fd);  
574 -  
575 - return ret;  
576 -}  
577 -  
578 int SrsClient::process_play_control_msg(SrsConsumer* consumer, SrsCommonMessage* msg) 542 int SrsClient::process_play_control_msg(SrsConsumer* consumer, SrsCommonMessage* msg)
579 { 543 {
580 int ret = ERROR_SUCCESS; 544 int ret = ERROR_SUCCESS;
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -77,7 +76,6 @@ private: @@ -77,7 +76,6 @@ private:
77 virtual int publish(SrsSource* source, bool is_fmle); 76 virtual int publish(SrsSource* source, bool is_fmle);
78 virtual int process_publish_message(SrsSource* source, SrsCommonMessage* msg, bool is_fmle); 77 virtual int process_publish_message(SrsSource* source, SrsCommonMessage* msg, bool is_fmle);
79 virtual int get_peer_ip(); 78 virtual int get_peer_ip();
80 - virtual int get_local_ip(char *&local_ip);  
81 virtual int process_play_control_msg(SrsConsumer* consumer, SrsCommonMessage* msg); 79 virtual int process_play_control_msg(SrsConsumer* consumer, SrsCommonMessage* msg);
82 private: 80 private:
83 virtual int on_connect(); 81 virtual int on_connect();
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -1511,60 +1510,6 @@ int SrsConfig::get_pithy_print_hls() @@ -1511,60 +1510,6 @@ int SrsConfig::get_pithy_print_hls()
1511 return ::atoi(pithy->arg0().c_str()); 1510 return ::atoi(pithy->arg0().c_str());
1512 } 1511 }
1513 1512
1514 -bool SrsConfig::get_bw_check_enabled(const std::string &vhost, const std::string &key)  
1515 -{  
1516 - SrsConfDirective* conf = get_vhost(vhost);  
1517 -  
1518 - if (!conf) {  
1519 - return false;  
1520 - }  
1521 -  
1522 - SrsConfDirective* bw_test = conf->get("bandcheck");  
1523 - if(!bw_test)  
1524 - return false;  
1525 -  
1526 - SrsConfDirective* bw_enabled_conf = bw_test->get("enabled");  
1527 - if(bw_enabled_conf && bw_enabled_conf->arg0() == "on"){  
1528 - SrsConfDirective* bw_key = bw_test->get("key");  
1529 - if(!bw_key) return false;  
1530 -  
1531 - std::vector<std::string> &args = bw_key->args;  
1532 - for(unsigned int i = 0; i < args.size(); ++i){  
1533 - if(args.at(i) == key)  
1534 - return true;  
1535 - }  
1536 - }  
1537 -  
1538 - return false;  
1539 -}  
1540 -  
1541 -void SrsConfig::get_bw_check_settings(const std::string &vhost, int64_t &interval_ms, int &limit_kbps)  
1542 -{  
1543 - // set default value;  
1544 - interval_ms = 30 * 1000;  
1545 - limit_kbps = 32000;  
1546 -  
1547 - SrsConfDirective* conf = get_vhost(vhost);  
1548 - if (!conf) {  
1549 - return;  
1550 - }  
1551 -  
1552 - SrsConfDirective* bw_test = conf->get("bandcheck");  
1553 - if (!bw_test) {  
1554 - return;  
1555 - }  
1556 -  
1557 - SrsConfDirective* interval_conf = bw_test->get("interval");  
1558 - if (interval_conf) {  
1559 - interval_ms = ::atoll(interval_conf->arg0().c_str()) * 1000;  
1560 - }  
1561 -  
1562 - SrsConfDirective* limit_kbps_conf = bw_test->get("limit_kbps");  
1563 - if (limit_kbps_conf) {  
1564 - limit_kbps = ::atoi(limit_kbps_conf->arg0().c_str());  
1565 - }  
1566 -}  
1567 -  
1568 bool SrsConfig::get_bw_check_enabled(const string &vhost) 1513 bool SrsConfig::get_bw_check_enabled(const string &vhost)
1569 { 1514 {
1570 SrsConfDirective* conf = get_vhost(vhost); 1515 SrsConfDirective* conf = get_vhost(vhost);
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -116,7 +115,6 @@ public: @@ -116,7 +115,6 @@ public:
116 virtual void unsubscribe(ISrsReloadHandler* handler); 115 virtual void unsubscribe(ISrsReloadHandler* handler);
117 public: 116 public:
118 virtual int parse_options(int argc, char** argv); 117 virtual int parse_options(int argc, char** argv);
119 -  
120 private: 118 private:
121 virtual int parse_file(const char* filename); 119 virtual int parse_file(const char* filename);
122 virtual int parse_argv(int& i, char** argv); 120 virtual int parse_argv(int& i, char** argv);
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -1180,11 +1179,6 @@ bool SrsMessageHeader::is_user_control_message() @@ -1180,11 +1179,6 @@ bool SrsMessageHeader::is_user_control_message()
1180 return message_type == RTMP_MSG_UserControlMessage; 1179 return message_type == RTMP_MSG_UserControlMessage;
1181 } 1180 }
1182 1181
1183 -bool SrsMessageHeader::is_windows_ackledgement()  
1184 -{  
1185 - return message_type == RTMP_MSG_Acknowledgement;  
1186 -}  
1187 -  
1188 SrsChunkStream::SrsChunkStream(int _cid) 1182 SrsChunkStream::SrsChunkStream(int _cid)
1189 { 1183 {
1190 fmt = 0; 1184 fmt = 0;
@@ -2617,30 +2611,6 @@ SrsOnStatusCallPacket::~SrsOnStatusCallPacket() @@ -2617,30 +2611,6 @@ SrsOnStatusCallPacket::~SrsOnStatusCallPacket()
2617 srs_freep(data); 2611 srs_freep(data);
2618 } 2612 }
2619 2613
2620 -int SrsOnStatusCallPacket::decode(SrsStream *stream)  
2621 -{  
2622 - int ret = ERROR_SUCCESS;  
2623 -  
2624 - if ((ret = srs_amf0_read_string(stream, command_name)) != ERROR_SUCCESS) {  
2625 - srs_error("amf0 decode play command_name failed. ret=%d", ret);  
2626 - return ret;  
2627 - }  
2628 -  
2629 - if ((ret = srs_amf0_read_number(stream, transaction_id)) != ERROR_SUCCESS) {  
2630 - srs_error("amf0 decode play transaction_id failed. ret=%d", ret);  
2631 - return ret;  
2632 - }  
2633 -  
2634 - if ((ret = srs_amf0_read_null(stream)) != ERROR_SUCCESS) {  
2635 - srs_error("amf0 decode play command_object failed. ret=%d", ret);  
2636 - return ret;  
2637 - }  
2638 -  
2639 - srs_info("decode SrsOnStatusCallPacket success.");  
2640 -  
2641 - return ret;  
2642 -}  
2643 -  
2644 int SrsOnStatusCallPacket::get_perfer_cid() 2614 int SrsOnStatusCallPacket::get_perfer_cid()
2645 { 2615 {
2646 return RTMP_CID_OverStream; 2616 return RTMP_CID_OverStream;
@@ -3111,14 +3081,6 @@ SrsAcknowledgementPacket::~SrsAcknowledgementPacket() @@ -3111,14 +3081,6 @@ SrsAcknowledgementPacket::~SrsAcknowledgementPacket()
3111 { 3081 {
3112 } 3082 }
3113 3083
3114 -int SrsAcknowledgementPacket::decode(SrsStream *stream)  
3115 -{  
3116 - int ret = ERROR_SUCCESS;  
3117 - ret = sequence_number = stream->read_4bytes();  
3118 -  
3119 - return ret;  
3120 -}  
3121 -  
3122 int SrsAcknowledgementPacket::get_perfer_cid() 3084 int SrsAcknowledgementPacket::get_perfer_cid()
3123 { 3085 {
3124 return RTMP_CID_ProtocolControl; 3086 return RTMP_CID_ProtocolControl;
@@ -3344,3 +3306,4 @@ int SrsUserControlPacket::encode_packet(SrsStream* stream) @@ -3344,3 +3306,4 @@ int SrsUserControlPacket::encode_packet(SrsStream* stream)
3344 3306
3345 return ret; 3307 return ret;
3346 } 3308 }
  3309 +
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -68,25 +67,6 @@ class ISrsMessage; @@ -68,25 +67,6 @@ class ISrsMessage;
68 #define RTMP_MAX_FMT3_HEADER_SIZE 5 67 #define RTMP_MAX_FMT3_HEADER_SIZE 5
69 68
70 /** 69 /**
71 -* band width check method name, which will be invoked by client.  
72 -* band width check mothods use SrsOnStatusCallPacket as its internal packet type,  
73 -* so ensure you set command name when you use it.  
74 -*/  
75 -// for play  
76 -#define SRS_BW_CHECK_START_PLAY "onSrsBandCheckStartPlayBytes"  
77 -#define SRS_BW_CHECK_STARTING_PLAY "onSrsBandCheckStartingPlayBytes"  
78 -#define SRS_BW_CHECK_STOP_PLAY "onSrsBandCheckStopPlayBytes"  
79 -#define SRS_BW_CHECK_STOPPED_PLAY "onSrsBandCheckStoppedPlayBytes"  
80 -#define SRS_BW_CHECK_PLAYING "onSrsBandCheckPlaying"  
81 -  
82 -// for publish  
83 -#define SRS_BW_CHECK_START_PUBLISH "onSrsBandCheckStartPublishBytes"  
84 -#define SRS_BW_CHECK_STARTING_PUBLISH "onSrsBandCheckStartingPublishBytes"  
85 -#define SRS_BW_CHECK_STOP_PUBLISH "onSrsBandCheckStopPublishBytes"  
86 -#define SRS_BW_CHECK_FINISHED "onSrsBandCheckFinished"  
87 -#define SRS_BW_CHECK_PUBLISHING "onSrsBandCheckPublishing"  
88 -  
89 -/**  
90 * the protocol provides the rtmp-message-protocol services, 70 * the protocol provides the rtmp-message-protocol services,
91 * to recv RTMP message from RTMP chunk stream, 71 * to recv RTMP message from RTMP chunk stream,
92 * and to send out RTMP message over RTMP chunk stream. 72 * and to send out RTMP message over RTMP chunk stream.
@@ -240,7 +220,6 @@ struct SrsMessageHeader @@ -240,7 +220,6 @@ struct SrsMessageHeader
240 bool is_window_ackledgement_size(); 220 bool is_window_ackledgement_size();
241 bool is_set_chunk_size(); 221 bool is_set_chunk_size();
242 bool is_user_control_message(); 222 bool is_user_control_message();
243 - bool is_windows_ackledgement();  
244 }; 223 };
245 224
246 /** 225 /**
@@ -845,10 +824,6 @@ public: @@ -845,10 +824,6 @@ public:
845 public: 824 public:
846 SrsOnStatusCallPacket(); 825 SrsOnStatusCallPacket();
847 virtual ~SrsOnStatusCallPacket(); 826 virtual ~SrsOnStatusCallPacket();
848 -  
849 -public:  
850 - virtual int decode(SrsStream* stream);  
851 -  
852 public: 827 public:
853 virtual int get_perfer_cid(); 828 virtual int get_perfer_cid();
854 public: 829 public:
@@ -1044,10 +1019,6 @@ public: @@ -1044,10 +1019,6 @@ public:
1044 public: 1019 public:
1045 SrsAcknowledgementPacket(); 1020 SrsAcknowledgementPacket();
1046 virtual ~SrsAcknowledgementPacket(); 1021 virtual ~SrsAcknowledgementPacket();
1047 -  
1048 -public:  
1049 - virtual int decode(SrsStream *stream);  
1050 -  
1051 public: 1022 public:
1052 virtual int get_perfer_cid(); 1023 virtual int get_perfer_cid();
1053 public: 1024 public:
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiejit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -73,8 +72,8 @@ using namespace std; @@ -73,8 +72,8 @@ using namespace std;
73 #define SRS_DEFAULT_SID 1 72 #define SRS_DEFAULT_SID 1
74 73
75 SrsRequest::SrsRequest() 74 SrsRequest::SrsRequest()
76 - : objectEncoding(RTMP_SIG_AMF0_VER)  
77 { 75 {
  76 + objectEncoding = RTMP_SIG_AMF0_VER;
78 } 77 }
79 78
80 SrsRequest::~SrsRequest() 79 SrsRequest::~SrsRequest()
@@ -126,19 +125,6 @@ int SrsRequest::discovery_app() @@ -126,19 +125,6 @@ int SrsRequest::discovery_app()
126 125
127 app = url; 126 app = url;
128 srs_vhost_resolve(vhost, app); 127 srs_vhost_resolve(vhost, app);
129 -  
130 - // reslove bw check key  
131 - std::string app_str = url;  
132 - if ((pos = app_str.find("key=")) != std::string::npos){  
133 - std::string temp_key = app_str.substr(pos + strlen("key="));  
134 - for(unsigned int i = 0; i < temp_key.size(); ++i){  
135 - char c = temp_key[i];  
136 - if(c != '&')  
137 - bw_key.push_back(c);  
138 - else break;  
139 - }  
140 - }  
141 -  
142 strip(); 128 strip();
143 129
144 // resolve the vhost from config 130 // resolve the vhost from config
@@ -280,7 +266,7 @@ int SrsRtmpClient::handshake() @@ -280,7 +266,7 @@ int SrsRtmpClient::handshake()
280 return ret; 266 return ret;
281 } 267 }
282 268
283 -int SrsRtmpClient::connect_app(const std::string &app, const std::string &tc_url) 269 +int SrsRtmpClient::connect_app(string app, string tc_url)
284 { 270 {
285 int ret = ERROR_SUCCESS; 271 int ret = ERROR_SUCCESS;
286 272
@@ -366,7 +352,7 @@ int SrsRtmpClient::create_stream(int& stream_id) @@ -366,7 +352,7 @@ int SrsRtmpClient::create_stream(int& stream_id)
366 return ret; 352 return ret;
367 } 353 }
368 354
369 -int SrsRtmpClient::play(const std::string &stream, int stream_id) 355 +int SrsRtmpClient::play(string stream, int stream_id)
370 { 356 {
371 int ret = ERROR_SUCCESS; 357 int ret = ERROR_SUCCESS;
372 358
@@ -408,7 +394,7 @@ int SrsRtmpClient::play(const std::string &stream, int stream_id) @@ -408,7 +394,7 @@ int SrsRtmpClient::play(const std::string &stream, int stream_id)
408 return ret; 394 return ret;
409 } 395 }
410 396
411 -int SrsRtmpClient::publish(const std::string &stream, int stream_id) 397 +int SrsRtmpClient::publish(string stream, int stream_id)
412 { 398 {
413 int ret = ERROR_SUCCESS; 399 int ret = ERROR_SUCCESS;
414 400
@@ -1108,59 +1094,6 @@ int SrsRtmp::start_flash_publish(int stream_id) @@ -1108,59 +1094,6 @@ int SrsRtmp::start_flash_publish(int stream_id)
1108 return ret; 1094 return ret;
1109 } 1095 }
1110 1096
1111 -int SrsRtmp::start_bandwidth_check(int limit_kbps)  
1112 -{  
1113 - int ret = ERROR_SUCCESS;  
1114 -  
1115 - int play_duration_ms = 3000;  
1116 - int play_interval_ms = 0;  
1117 - int play_actual_duration_ms = 0;  
1118 - int play_bytes = 0;  
1119 -  
1120 - int publish_duration_ms = 3000;  
1121 - int publish_interval_ms = 0;  
1122 - int publish_actual_duration_ms = 0;  
1123 - int publish_bytes = 0;  
1124 -  
1125 - int64_t start_time = srs_get_system_time_ms();  
1126 - if ((ret = bandwidth_check_play(play_duration_ms, play_interval_ms,  
1127 - play_actual_duration_ms, play_bytes, limit_kbps) != ERROR_SUCCESS)  
1128 - || (ret = bandwidth_check_publish(publish_duration_ms, publish_interval_ms,  
1129 - publish_actual_duration_ms, publish_bytes, limit_kbps)) != ERROR_SUCCESS) {  
1130 -  
1131 - srs_error("band width check failed. ret = %d", ret);  
1132 -  
1133 - return ret;  
1134 - }  
1135 -  
1136 - int64_t end_time = srs_get_system_time_ms();  
1137 - int play_kbps = play_bytes * 8 / play_actual_duration_ms;  
1138 - int publish_kbps = publish_bytes * 8 / publish_actual_duration_ms;  
1139 -  
1140 - // send finished msg  
1141 - SrsCommonMessage* finish_msg = new SrsCommonMessage();  
1142 - SrsOnStatusCallPacket* finish_pkt = new SrsOnStatusCallPacket;  
1143 - finish_pkt->command_name = SRS_BW_CHECK_FINISHED;  
1144 - finish_pkt->data->set("code", new SrsAmf0Number(0));  
1145 - finish_pkt->data->set("start_time", new SrsAmf0Number(start_time));  
1146 - finish_pkt->data->set("end_time", new SrsAmf0Number(end_time));  
1147 - finish_pkt->data->set("play_kbps", new SrsAmf0Number(play_kbps));  
1148 - finish_pkt->data->set("publish_kbps", new SrsAmf0Number(publish_kbps));  
1149 - finish_pkt->data->set("play_bytes", new SrsAmf0Number(play_bytes));  
1150 - finish_pkt->data->set("play_time", new SrsAmf0Number(play_actual_duration_ms));  
1151 - finish_pkt->data->set("publish_bytes", new SrsAmf0Number(publish_bytes));  
1152 - finish_pkt->data->set("publish_time", new SrsAmf0Number(publish_actual_duration_ms));  
1153 -  
1154 - finish_msg->set_packet(finish_pkt, 0);  
1155 - if ((ret = protocol->send_message(finish_msg)) != ERROR_SUCCESS) {  
1156 - srs_error("send bandwidth check finish message failed. ret=%d", ret);  
1157 - return ret;  
1158 - }  
1159 - srs_trace("BW check finished.");  
1160 -  
1161 - return ret;  
1162 -}  
1163 -  
1164 int SrsRtmp::identify_create_stream_client(SrsCreateStreamPacket* req, int stream_id, SrsClientType& type, string& stream_name) 1097 int SrsRtmp::identify_create_stream_client(SrsCreateStreamPacket* req, int stream_id, SrsClientType& type, string& stream_name)
1165 { 1098 {
1166 int ret = ERROR_SUCCESS; 1099 int ret = ERROR_SUCCESS;
@@ -1252,213 +1185,3 @@ int SrsRtmp::identify_flash_publish_client(SrsPublishPacket* req, SrsClientType& @@ -1252,213 +1185,3 @@ int SrsRtmp::identify_flash_publish_client(SrsPublishPacket* req, SrsClientType&
1252 return ret; 1185 return ret;
1253 } 1186 }
1254 1187
1255 -int SrsRtmp::bandwidth_check_play(int duration_ms, int interval_ms, int &actual_duration_ms,  
1256 - int &play_bytes, int max_play_kbps)  
1257 -{  
1258 - int ret = ERROR_SUCCESS;  
1259 -  
1260 - // send start play command to client  
1261 - SrsCommonMessage* start_play_msg = new SrsCommonMessage();  
1262 - SrsOnStatusCallPacket* start_play_packet = new SrsOnStatusCallPacket;  
1263 - start_play_packet->command_name = SRS_BW_CHECK_START_PLAY;  
1264 - start_play_packet->data->set("duration_ms", new SrsAmf0Number(duration_ms));  
1265 - start_play_packet->data->set("interval_ms", new SrsAmf0Number(interval_ms));  
1266 -  
1267 - start_play_msg->set_packet(start_play_packet, 0);  
1268 - if ((ret = protocol->send_message(start_play_msg)) != ERROR_SUCCESS) {  
1269 - srs_error("send bandwidth check start play message failed. ret=%d", ret);  
1270 - return ret;  
1271 - }  
1272 - srs_trace("BW check begin.");  
1273 -  
1274 - // recv client's starting play response  
1275 - while (true) {  
1276 - SrsCommonMessage* msg = 0;  
1277 - if ( (ret = protocol->recv_message(&msg)) != ERROR_SUCCESS) {  
1278 - srs_error("recv client's starting play response failed. ret= %d", ret);  
1279 - return ret;  
1280 - }  
1281 -  
1282 - msg->decode_packet(protocol);  
1283 - SrsOnStatusCallPacket* pkt = dynamic_cast<SrsOnStatusCallPacket*>(msg->get_packet());  
1284 - if(pkt && (pkt->command_name == SRS_BW_CHECK_STARTING_PLAY))  
1285 - break;  
1286 - }  
1287 - srs_trace("BW check recv play begin response.");  
1288 -  
1289 - // send play data to client  
1290 - int64_t current_time = srs_get_system_time_ms();  
1291 - int size = 1024;  
1292 - char random_data[size];  
1293 - memset(random_data, 0x01, size);  
1294 -  
1295 - int interval = 0;  
1296 - while ( (srs_get_system_time_ms() - current_time) < duration_ms ) {  
1297 - st_usleep(interval);  
1298 - SrsCommonMessage* msg = new SrsCommonMessage;  
1299 - SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket;  
1300 - pkt->command_name = SRS_BW_CHECK_PLAYING;  
1301 -  
1302 - int object_num = 1;  
1303 - for (int i = 0; i < object_num; ++i) {  
1304 - char buf[32];  
1305 - sprintf(buf, "%d", i);  
1306 - pkt->data->set(buf, new SrsAmf0String(random_data));  
1307 - }  
1308 - object_num += 1;  
1309 - msg->set_packet(pkt, 0);  
1310 -  
1311 - play_bytes += pkt->get_payload_length();  
1312 -  
1313 - if ((ret = protocol->send_message(msg)) != ERROR_SUCCESS) {  
1314 - srs_error("send bandwidth check play messages failed. ret=%d", ret);  
1315 - return ret;  
1316 - }  
1317 -  
1318 - // sleep while current kbps <= max_play_kbps  
1319 - int kbps = 0;  
1320 - while (true) {  
1321 - if(srs_get_system_time_ms() - current_time != 0)  
1322 - kbps = play_bytes * 8 / (srs_get_system_time_ms() - current_time);  
1323 -  
1324 - if (kbps > max_play_kbps) {  
1325 - st_usleep(500);  
1326 - } else {  
1327 - break;  
1328 - }  
1329 - }  
1330 - }  
1331 - actual_duration_ms = srs_get_system_time_ms() - current_time;  
1332 - srs_trace("BW check send play bytes over.");  
1333 -  
1334 - // notify client to stop play  
1335 - SrsCommonMessage* stop_play_msg = new SrsCommonMessage;  
1336 - SrsOnStatusCallPacket* stop_play_pkt = new SrsOnStatusCallPacket;  
1337 - stop_play_pkt->command_name = SRS_BW_CHECK_STOP_PLAY;  
1338 - stop_play_pkt->data->set("duration_ms", new SrsAmf0Number(duration_ms));  
1339 - stop_play_pkt->data->set("interval_ms", new SrsAmf0Number(interval_ms));  
1340 - stop_play_pkt->data->set("duration_delta", new SrsAmf0Number(actual_duration_ms));  
1341 - stop_play_pkt->data->set("bytes_delta", new SrsAmf0Number(play_bytes));  
1342 -  
1343 - stop_play_msg->set_packet(stop_play_pkt, 0);  
1344 -  
1345 - if ((ret = protocol->send_message(stop_play_msg)) != ERROR_SUCCESS) {  
1346 - srs_error("send bandwidth check stop play message failed. ret=%d", ret);  
1347 - return ret;  
1348 - }  
1349 - srs_trace("BW check stop play bytes.");  
1350 -  
1351 - // recv client's stop play response.  
1352 - while (true) {  
1353 - SrsCommonMessage* msg = 0;  
1354 - if ((ret = protocol->recv_message(&msg)) != ERROR_SUCCESS) {  
1355 - srs_error("recv client's stop play response failed. ret = %d", ret);  
1356 - return ret;  
1357 - }  
1358 -  
1359 - msg->decode_packet(protocol);  
1360 - SrsOnStatusCallPacket* pkt = dynamic_cast<SrsOnStatusCallPacket*>(msg->get_packet());  
1361 - if(pkt && (pkt->command_name == SRS_BW_CHECK_STOPPED_PLAY))  
1362 - break;  
1363 - }  
1364 - srs_trace("BW check recv stop play response.");  
1365 -  
1366 - return ret;  
1367 -}  
1368 -  
1369 -int SrsRtmp::bandwidth_check_publish(int duration_ms, int interval_ms, int &actual_duration_ms,  
1370 - int &publish_bytes, int max_pub_kbps)  
1371 -{  
1372 - int ret = ERROR_SUCCESS;  
1373 -  
1374 - // notify client to start publish  
1375 - SrsCommonMessage* start_publish_msg = new SrsCommonMessage;  
1376 - SrsOnStatusCallPacket* start_publish_pkt = new SrsOnStatusCallPacket;  
1377 - start_publish_pkt->command_name = SRS_BW_CHECK_START_PUBLISH;  
1378 - start_publish_pkt->data->set("duration_ms", new SrsAmf0Number(duration_ms));  
1379 - start_publish_pkt->data->set("interval_ms", new SrsAmf0Number(interval_ms));  
1380 -  
1381 - start_publish_msg->set_packet(start_publish_pkt, 0);  
1382 - if ((ret = protocol->send_message(start_publish_msg)) != ERROR_SUCCESS) {  
1383 - srs_error("send bandwidth check start publish message failed. ret=%d", ret);  
1384 - return ret;  
1385 - }  
1386 - srs_trace("BW check publish begin.");  
1387 -  
1388 - // read client's notification of starting publish  
1389 - while (true) {  
1390 - SrsCommonMessage* msg = 0;  
1391 - if ((ret = protocol->recv_message(&msg)) != ERROR_SUCCESS) {  
1392 - srs_error("recv client's notification of starting publish failed. ret = %d", ret);  
1393 - return ret;  
1394 - }  
1395 -  
1396 - msg->decode_packet(protocol);  
1397 - SrsOnStatusCallPacket* pkt = dynamic_cast<SrsOnStatusCallPacket*>(msg->get_packet());  
1398 - if(pkt && (pkt->command_name == SRS_BW_CHECK_STARTING_PUBLISH))  
1399 - break;  
1400 - }  
1401 - srs_trace("BW check recv publish begin response.");  
1402 -  
1403 - // recv publish msgs until @duration_ms ms  
1404 - int64_t current_time = srs_get_system_time_ms();  
1405 - while ( (srs_get_system_time_ms() - current_time) < duration_ms ) {  
1406 - st_usleep(0);  
1407 - SrsCommonMessage* msg = NULL;  
1408 - if ((ret = protocol->recv_message(&msg)) != ERROR_SUCCESS) {  
1409 - srs_error("recv message failed. ret=%d", ret);  
1410 - return ret;  
1411 - }  
1412 - SrsAutoFree(SrsCommonMessage, msg, false);  
1413 -  
1414 - publish_bytes += msg->header.payload_length;  
1415 -  
1416 - int kbps = 0;  
1417 - while (true) {  
1418 - if(srs_get_system_time_ms() - current_time != 0)  
1419 - kbps = publish_bytes * 8 / (srs_get_system_time_ms() - current_time);  
1420 -  
1421 - if (kbps > max_pub_kbps) {  
1422 - st_usleep(500);  
1423 - } else {  
1424 - break;  
1425 - }  
1426 - }  
1427 - }  
1428 - actual_duration_ms = srs_get_system_time_ms() - current_time;  
1429 - srs_trace("BW check recv publish data over.");  
1430 -  
1431 - // notify client to stop publish  
1432 - SrsCommonMessage* stop_publish_msg = new SrsCommonMessage;  
1433 - SrsOnStatusCallPacket* stop_publish_pkt = new SrsOnStatusCallPacket;  
1434 - stop_publish_pkt->command_name = SRS_BW_CHECK_STOP_PUBLISH;  
1435 - stop_publish_pkt->data->set("duration_ms", new SrsAmf0Number(duration_ms));  
1436 - stop_publish_pkt->data->set("interval_ms", new SrsAmf0Number(interval_ms));  
1437 - stop_publish_pkt->data->set("duration_delta", new SrsAmf0Number(actual_duration_ms));  
1438 - stop_publish_pkt->data->set("bytes_delta", new SrsAmf0Number(publish_bytes));  
1439 -  
1440 - stop_publish_msg->set_packet(stop_publish_pkt, 0);  
1441 - if ((ret = protocol->send_message(stop_publish_msg)) != ERROR_SUCCESS) {  
1442 - srs_error("send bandwidth check stop publish message failed. ret=%d", ret);  
1443 - return ret;  
1444 - }  
1445 - srs_trace("BW check stop pulish.");  
1446 -  
1447 - // recv left msg  
1448 - while (true) {  
1449 - if((ret = st_netfd_poll(stfd, POLLIN, 1000*500)) == ERROR_SUCCESS) {  
1450 - SrsCommonMessage* msg = 0;  
1451 -  
1452 - if ((ret = protocol->recv_message(&msg)) != ERROR_SUCCESS) {  
1453 - srs_error("recv client's left msg failed, ret = %d", ret);  
1454 - return ret;  
1455 - }  
1456 - } else {  
1457 - ret = ERROR_SUCCESS;  
1458 - break;  
1459 - }  
1460 - }  
1461 -  
1462 - return ret;  
1463 -}  
1464 -  
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 The MIT License (MIT) 2 The MIT License (MIT)
3 3
4 Copyright (c) 2013 winlin 4 Copyright (c) 2013 winlin
5 -Copyright (c) 2013 wenjiegit  
6 5
7 Permission is hereby granted, free of charge, to any person obtaining a copy of 6 Permission is hereby granted, free of charge, to any person obtaining a copy of
8 this software and associated documentation files (the "Software"), to deal in 7 this software and associated documentation files (the "Software"), to deal in
@@ -63,7 +62,6 @@ struct SrsRequest @@ -63,7 +62,6 @@ struct SrsRequest
63 std::string port; 62 std::string port;
64 std::string app; 63 std::string app;
65 std::string stream; 64 std::string stream;
66 - std::string bw_key;  
67 65
68 SrsRequest(); 66 SrsRequest();
69 virtual ~SrsRequest(); 67 virtual ~SrsRequest();
@@ -104,7 +102,7 @@ enum SrsClientType @@ -104,7 +102,7 @@ enum SrsClientType
104 SrsClientUnknown, 102 SrsClientUnknown,
105 SrsClientPlay, 103 SrsClientPlay,
106 SrsClientFMLEPublish, 104 SrsClientFMLEPublish,
107 - SrsClientFlashPublish 105 + SrsClientFlashPublish,
108 }; 106 };
109 107
110 /** 108 /**
@@ -129,10 +127,10 @@ public: @@ -129,10 +127,10 @@ public:
129 virtual int send_message(ISrsMessage* msg); 127 virtual int send_message(ISrsMessage* msg);
130 public: 128 public:
131 virtual int handshake(); 129 virtual int handshake();
132 - virtual int connect_app(const std::string &app, const std::string &tc_url); 130 + virtual int connect_app(std::string app, std::string tc_url);
133 virtual int create_stream(int& stream_id); 131 virtual int create_stream(int& stream_id);
134 - virtual int play(const std::string &stream, int stream_id);  
135 - virtual int publish(const std::string &stream, int stream_id); 132 + virtual int play(std::string stream, int stream_id);
  133 + virtual int publish(std::string stream, int stream_id);
136 }; 134 };
137 135
138 /** 136 /**
@@ -169,16 +167,11 @@ public: @@ -169,16 +167,11 @@ public:
169 * using the Limit type field. 167 * using the Limit type field.
170 */ 168 */
171 virtual int set_peer_bandwidth(int bandwidth, int type); 169 virtual int set_peer_bandwidth(int bandwidth, int type);
172 -<<<<<<< HEAD  
173 - virtual int response_connect_app(SrsRequest* req, const char *ip = 0);  
174 - virtual int response_connect_reject(SrsRequest* req, const std::string& description);  
175 -=======  
176 /** 170 /**
177 * @param server_ip the ip of server. 171 * @param server_ip the ip of server.
178 */ 172 */
179 virtual int response_connect_app(SrsRequest* req, const char* server_ip = NULL); 173 virtual int response_connect_app(SrsRequest* req, const char* server_ip = NULL);
180 virtual void response_connect_reject(SrsRequest* req, const char* desc); 174 virtual void response_connect_reject(SrsRequest* req, const char* desc);
181 ->>>>>>> upstream/master  
182 virtual int on_bw_done(); 175 virtual int on_bw_done();
183 /** 176 /**
184 * recv some message to identify the client. 177 * recv some message to identify the client.
@@ -229,18 +222,10 @@ public: @@ -229,18 +222,10 @@ public:
229 * onStatus(NetStream.Publish.Start) 222 * onStatus(NetStream.Publish.Start)
230 */ 223 */
231 virtual int start_flash_publish(int stream_id); 224 virtual int start_flash_publish(int stream_id);
232 -  
233 - /**  
234 - * used to process band width check from client.  
235 - */  
236 - virtual int start_bandwidth_check(int limit_kbps);  
237 -  
238 private: 225 private:
239 virtual int identify_create_stream_client(SrsCreateStreamPacket* req, int stream_id, SrsClientType& type, std::string& stream_name); 226 virtual int identify_create_stream_client(SrsCreateStreamPacket* req, int stream_id, SrsClientType& type, std::string& stream_name);
240 virtual int identify_fmle_publish_client(SrsFMLEStartPacket* req, SrsClientType& type, std::string& stream_name); 227 virtual int identify_fmle_publish_client(SrsFMLEStartPacket* req, SrsClientType& type, std::string& stream_name);
241 virtual int identify_flash_publish_client(SrsPublishPacket* req, SrsClientType& type, std::string& stream_name); 228 virtual int identify_flash_publish_client(SrsPublishPacket* req, SrsClientType& type, std::string& stream_name);
242 - virtual int bandwidth_check_play(int duration_ms, int interval_ms, int& actual_duration_ms, int& play_bytes, int max_play_kbps);  
243 - virtual int bandwidth_check_publish(int duration_ms, int interval_ms, int& actual_duration_ms, int& publish_bytes, int max_pub_kbps);  
244 }; 229 };
245 230
246 #endif 231 #endif