diff --git a/trunk/src/app/srs_app_gb28181.cpp b/trunk/src/app/srs_app_gb28181.cpp index 541365e3e..d1229ff09 100644 --- a/trunk/src/app/srs_app_gb28181.cpp +++ b/trunk/src/app/srs_app_gb28181.cpp @@ -306,8 +306,8 @@ srs_error_t SrsGb28181PsRtpProcessor::on_rtp_packet(const sockaddr* from, const if(key != cache_ps_rtp_packet.end()) { SrsGb28181RtmpMuxer* muxer = NULL; - //First, search according to the channel_id. Otherwise, search according to the SSRC. - //Some channel_id are created by RTP pool, which are different ports. + //First, search according to the channel_id. Otherwise, search according to the SSRC. + //Some channel_id are created by RTP pool, which are different ports. //No channel_id are created by multiplexing ports, which are the same port if (!channel_id.empty()){ muxer = _srs_gb28181->fetch_rtmpmuxer(channel_id); @@ -551,7 +551,6 @@ srs_error_t SrsGb28181TcpPsRtpProcessor::on_rtp_packet(char* buf, int nb_buf, st }*/ //itoa(port, port_string, 10); - int peer_port = port;// atoi(port_string); if (true) { @@ -697,8 +696,8 @@ SrsGb28181RtmpMuxer* SrsGb28181TcpPsRtpProcessor::create_rtmpmuxer(std::string c { if (true) { SrsGb28181RtmpMuxer* muxer = NULL; - //First, search according to the channel_id. Otherwise, search according to the SSRC. - //Some channel_id are created by RTP pool, which are different ports. + //First, search according to the channel_id. Otherwise, search according to the SSRC. + //Some channel_id are created by RTP pool, which are different ports. //No channel_id are created by multiplexing ports, which are the same port if (!channel_id.empty()) { muxer = _srs_gb28181->fetch_rtmpmuxer(channel_id); @@ -776,7 +775,6 @@ srs_error_t SrsGb28181TcpPsRtpProcessor::on_rtp_packet_jitter(char* buf, int nb_ }*/ //itoa(port, port_string, 10); - int peer_port = port;// atoi(port_string); if (true) { @@ -2411,20 +2409,20 @@ void SrsGb28181Manger::rtmpmuxer_unmap_by_ssrc(uint32_t ssrc) void SrsGb28181Manger::destroy() { - if (!config->rtp_mux_tcp_enable) { - //destory ps rtp listen - std::map::iterator it; - for (it = rtp_pool.begin(); it != rtp_pool.end(); ++it) { - SrsPsRtpListener* listener = it->second; - srs_freep(listener); - } - rtp_pool.clear(); - } + if (!config->rtp_mux_tcp_enable) { + //destory ps rtp listen + std::map::iterator it; + for (it = rtp_pool.begin(); it != rtp_pool.end(); ++it) { + SrsPsRtpListener* listener = it->second; + srs_freep(listener); + } + rtp_pool.clear(); + } //destory gb28181 muxer - std::map::iterator it2; - for (it2 = rtmpmuxers.begin(); it2 != rtmpmuxers.end(); ++it2) { - SrsGb28181RtmpMuxer* muxer = it2->second; + std::map::iterator it; + for (it = rtmpmuxers.begin(); it != rtmpmuxers.end(); ++it) { + SrsGb28181RtmpMuxer* muxer = it->second; SrsGb28181StreamChannel sess = muxer->get_channel(); rtmpmuxer_unmap_by_ssrc(sess.get_ssrc()); manager->remove(muxer); @@ -2463,19 +2461,19 @@ srs_error_t SrsGb28181Manger::start_ps_rtp_listen(std::string id, int port) return srs_error_wrap(err, "start rtp listen port rtmp muxer is null"); } - if (!config->rtp_mux_tcp_enable) { - if (rtp_pool.find(port) == rtp_pool.end()) - { - SrsPsRtpListener* rtp = new SrsPsRtpListener(this->config, port, id); - rtp_pool[port] = rtp; - if ((err = rtp_pool[port]->listen()) != srs_success) { - stop_rtp_listen(id); - return srs_error_wrap(err, "rtp listen"); - } + if (!config->rtp_mux_tcp_enable) { + if (rtp_pool.find(port) == rtp_pool.end()) + { + SrsPsRtpListener* rtp = new SrsPsRtpListener(this->config, port, id); + rtp_pool[port] = rtp; + if ((err = rtp_pool[port]->listen()) != srs_success) { + stop_rtp_listen(id); + return srs_error_wrap(err, "rtp listen"); + } - srs_trace("gb28181: start rtp ps stream over server-port=%d", port); - } - } + srs_trace("gb28181: start rtp ps stream over server-port=%d", port); + } + } return err; } @@ -2495,13 +2493,13 @@ void SrsGb28181Manger::stop_rtp_listen(std::string id) return; } - if (!config->rtp_mux_tcp_enable) { - map::iterator it2 = rtp_pool.find(port); - if (it2 != rtp_pool.end()) { - srs_freep(it2->second); - rtp_pool.erase(it2); - } - } + if (!config->rtp_mux_tcp_enable) { + map::iterator it2 = rtp_pool.find(port); + if (it2 != rtp_pool.end()) { + srs_freep(it2->second); + rtp_pool.erase(it2); + } + } free_port(port, port+1); } diff --git a/trunk/src/protocol/srs_sip_stack.cpp b/trunk/src/protocol/srs_sip_stack.cpp index 022dd3903..c6364b249 100644 --- a/trunk/src/protocol/srs_sip_stack.cpp +++ b/trunk/src/protocol/srs_sip_stack.cpp @@ -68,37 +68,36 @@ public: } static bool IsUTF8(const char *pInBuf, int InLen) { - if (InLen < 0) + if (InLen < 0) { return false; + } + int i = 0; - int nBytes = 0; //UTF8可用1-6个字节编码 + int nBytes = 0; unsigned char chr = 0; - while (i < InLen) - { + while (i < InLen) { chr = *(pInBuf + i); - if (nBytes == 0) //计算字节数 - { - if ((chr & 0x80) != 0) - { - while ((chr & 0x80) != 0) - { + if (nBytes == 0) { + if ((chr & 0x80) != 0) { + while ((chr & 0x80) != 0) { chr <<= 1; nBytes++; } - if (nBytes < 2 || nBytes > 6) - return false; //第一个字节最少为110x xxxx - nBytes--; //减去自身占的一个字节 + if (nBytes < 2 || nBytes > 6) { + return false; + } + nBytes--; + } + } else { + if ((chr & 0xc0) != 0x80) { + return false; } - } - else //多字节除了第一个字节外剩下的字节 - { - if ((chr & 0xc0) != 0x80) - return false; //剩下的字节都是10xx xxxx的形式 nBytes--; } ++i; } + return nBytes == 0; } }; @@ -491,11 +490,6 @@ srs_error_t SrsSipStack::parse_xml(std::string xml_msg, std::map::iterator it2; - // for (it2 = one_item.begin(); it2 != one_item.end(); ++it2) { - // srs_trace("========one_item========%s:%s", it2->first.c_str(), it2->second.c_str()); - // } - // srs_trace("========one_item end========"); in_item_tag = 0; // all items (DeviceList, Alarmstatus, RecordList) have "DeviceID" if (one_item.find("DeviceID") != one_item.end())