winlin

Merge branch 'srs.master'

@@ -242,6 +242,7 @@ Supported operating systems and hardware: @@ -242,6 +242,7 @@ Supported operating systems and hardware:
242 * 2013-10-17, Created.<br/> 242 * 2013-10-17, Created.<br/>
243 243
244 ## History 244 ## History
  245 +* v2.0, 2014-11-08, fix [#195](https://github.com/winlinvip/simple-rtmp-server/issues/195), remove the confuse code st_usleep(0). 2.0.13.
245 * v2.0, 2014-11-08, fix [#191](https://github.com/winlinvip/simple-rtmp-server/issues/191), configure --export-librtmp-project and --export-librtmp-single. 2.0.11. 246 * v2.0, 2014-11-08, fix [#191](https://github.com/winlinvip/simple-rtmp-server/issues/191), configure --export-librtmp-project and --export-librtmp-single. 2.0.11.
246 * v2.0, 2014-11-08, fix [#66](https://github.com/winlinvip/simple-rtmp-server/issues/66), srs-librtmp support write h264 raw packet. 2.0.9. 247 * v2.0, 2014-11-08, fix [#66](https://github.com/winlinvip/simple-rtmp-server/issues/66), srs-librtmp support write h264 raw packet. 2.0.9.
247 * v2.0, 2014-10-25, fix [#185](https://github.com/winlinvip/simple-rtmp-server/issues/185), AMF0 support 0x0B the date type codec. 2.0.7. 248 * v2.0, 2014-10-25, fix [#185](https://github.com/winlinvip/simple-rtmp-server/issues/185), AMF0 support 0x0B the date type codec. 2.0.7.
@@ -170,9 +170,6 @@ int SrsEdgeIngester::ingest() @@ -170,9 +170,6 @@ int SrsEdgeIngester::ingest()
170 SrsPithyPrint pithy_print(SRS_CONSTS_STAGE_EDGE); 170 SrsPithyPrint pithy_print(SRS_CONSTS_STAGE_EDGE);
171 171
172 while (pthread->can_loop()) { 172 while (pthread->can_loop()) {
173 - // switch to other st-threads.  
174 - st_usleep(0);  
175 -  
176 pithy_print.elapse(); 173 pithy_print.elapse();
177 174
178 // pithy print 175 // pithy print
@@ -480,9 +477,6 @@ int SrsEdgeForwarder::cycle() @@ -480,9 +477,6 @@ int SrsEdgeForwarder::cycle()
480 SrsSharedPtrMessageArray msgs(SYS_MAX_EDGE_SEND_MSGS); 477 SrsSharedPtrMessageArray msgs(SYS_MAX_EDGE_SEND_MSGS);
481 478
482 while (pthread->can_loop()) { 479 while (pthread->can_loop()) {
483 - // switch to other st-threads.  
484 - st_usleep(0);  
485 -  
486 if (send_error_code != ERROR_SUCCESS) { 480 if (send_error_code != ERROR_SUCCESS) {
487 st_usleep(SRS_EDGE_FORWARDER_ERROR_US); 481 st_usleep(SRS_EDGE_FORWARDER_ERROR_US);
488 continue; 482 continue;
@@ -399,9 +399,6 @@ int SrsForwarder::forward() @@ -399,9 +399,6 @@ int SrsForwarder::forward()
399 } 399 }
400 400
401 while (pthread->can_loop()) { 401 while (pthread->can_loop()) {
402 - // switch to other st-threads.  
403 - st_usleep(0);  
404 -  
405 pithy_print.elapse(); 402 pithy_print.elapse();
406 403
407 // read from client. 404 // read from client.
@@ -608,9 +608,6 @@ int SrsRtmpConn::playing(SrsSource* source) @@ -608,9 +608,6 @@ int SrsRtmpConn::playing(SrsSource* source)
608 return ret; 608 return ret;
609 } 609 }
610 } 610 }
611 -  
612 - // switch to other threads, to anti dead loop.  
613 - st_usleep(0);  
614 } 611 }
615 612
616 return ret; 613 return ret;
@@ -668,9 +665,6 @@ int SrsRtmpConn::do_fmle_publishing(SrsSource* source) @@ -668,9 +665,6 @@ int SrsRtmpConn::do_fmle_publishing(SrsSource* source)
668 } 665 }
669 666
670 while (true) { 667 while (true) {
671 - // switch to other st-threads.  
672 - st_usleep(0);  
673 -  
674 SrsMessage* msg = NULL; 668 SrsMessage* msg = NULL;
675 if ((ret = rtmp->recv_message(&msg)) != ERROR_SUCCESS) { 669 if ((ret = rtmp->recv_message(&msg)) != ERROR_SUCCESS) {
676 srs_error("fmle recv identify client message failed. ret=%d", ret); 670 srs_error("fmle recv identify client message failed. ret=%d", ret);
@@ -774,9 +768,6 @@ int SrsRtmpConn::do_flash_publishing(SrsSource* source) @@ -774,9 +768,6 @@ int SrsRtmpConn::do_flash_publishing(SrsSource* source)
774 } 768 }
775 769
776 while (true) { 770 while (true) {
777 - // switch to other st-threads.  
778 - st_usleep(0);  
779 -  
780 SrsMessage* msg = NULL; 771 SrsMessage* msg = NULL;
781 if ((ret = rtmp->recv_message(&msg)) != ERROR_SUCCESS) { 772 if ((ret = rtmp->recv_message(&msg)) != ERROR_SUCCESS) {
782 if (!srs_is_client_gracefully_close(ret)) { 773 if (!srs_is_client_gracefully_close(ret)) {
@@ -50,14 +50,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -50,14 +50,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
50 * espectially on st_usleep(), so the cycle must check the loop, 50 * espectially on st_usleep(), so the cycle must check the loop,
51 * when handler->cycle() has loop itself, for example: 51 * when handler->cycle() has loop itself, for example:
52 * while (true): 52 * while (true):
53 -* st_usleep(0);  
54 * if (read_from_socket(skt) < 0) break; 53 * if (read_from_socket(skt) < 0) break;
55 * if thread stop when read_from_socket, it's ok, the loop will break, 54 * if thread stop when read_from_socket, it's ok, the loop will break,
56 * but when thread stop interrupt the s_usleep(0), then the loop is 55 * but when thread stop interrupt the s_usleep(0), then the loop is
57 * death loop. 56 * death loop.
58 * in a word, the handler->cycle() must: 57 * in a word, the handler->cycle() must:
59 * while (pthread->can_loop()): 58 * while (pthread->can_loop()):
60 -* st_usleep(0);  
61 * if (read_from_socket(skt) < 0) break; 59 * if (read_from_socket(skt) < 0) break;
62 * check the loop, then it works. 60 * check the loop, then it works.
63 * 61 *
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR 2 32 #define VERSION_MAJOR 2
33 #define VERSION_MINOR 0 33 #define VERSION_MINOR 0
34 -#define VERSION_REVISION 12 34 +#define VERSION_REVISION 13
35 // server info. 35 // server info.
36 #define RTMP_SIG_SRS_KEY "SRS" 36 #define RTMP_SIG_SRS_KEY "SRS"
37 #define RTMP_SIG_SRS_ROLE "origin/edge server" 37 #define RTMP_SIG_SRS_ROLE "origin/edge server"