正在显示
16 个修改的文件
包含
69 行增加
和
65 行删除
| @@ -207,7 +207,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec) | @@ -207,7 +207,7 @@ int SrsDynamicHttpConn::do_proxy(ISrsHttpResponseReader* rr, SrsFlvDecoder* dec) | ||
| 207 | 207 | ||
| 208 | char* data = new char[size]; | 208 | char* data = new char[size]; |
| 209 | if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) { | 209 | if ((ret = dec->read_tag_data(data, size)) != ERROR_SUCCESS) { |
| 210 | - srs_freep(data); | 210 | + srs_freepa(data); |
| 211 | if (!srs_is_client_gracefully_close(ret)) { | 211 | if (!srs_is_client_gracefully_close(ret)) { |
| 212 | srs_error("flv: proxy tag data failed. ret=%d", ret); | 212 | srs_error("flv: proxy tag data failed. ret=%d", ret); |
| 213 | } | 213 | } |
| @@ -127,7 +127,7 @@ namespace _srs_internal | @@ -127,7 +127,7 @@ namespace _srs_internal | ||
| 127 | 127 | ||
| 128 | SrsConfigBuffer::~SrsConfigBuffer() | 128 | SrsConfigBuffer::~SrsConfigBuffer() |
| 129 | { | 129 | { |
| 130 | - srs_freep(start); | 130 | + srs_freepa(start); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | int SrsConfigBuffer::fullfill(const char* filename) | 133 | int SrsConfigBuffer::fullfill(const char* filename) |
| @@ -146,7 +146,7 @@ namespace _srs_internal | @@ -146,7 +146,7 @@ namespace _srs_internal | ||
| 146 | int filesize = (int)reader.filesize(); | 146 | int filesize = (int)reader.filesize(); |
| 147 | 147 | ||
| 148 | // create buffer | 148 | // create buffer |
| 149 | - srs_freep(start); | 149 | + srs_freepa(start); |
| 150 | pos = last = start = new char[filesize]; | 150 | pos = last = start = new char[filesize]; |
| 151 | end = start + filesize; | 151 | end = start + filesize; |
| 152 | 152 | ||
| @@ -1091,7 +1091,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args, | @@ -1091,7 +1091,7 @@ int SrsConfDirective::read_token(SrsConfigBuffer* buffer, vector<string>& args, | ||
| 1091 | if (!word_str.empty()) { | 1091 | if (!word_str.empty()) { |
| 1092 | args.push_back(word_str); | 1092 | args.push_back(word_str); |
| 1093 | } | 1093 | } |
| 1094 | - srs_freep(aword); | 1094 | + srs_freepa(aword); |
| 1095 | 1095 | ||
| 1096 | if (ch == ';') { | 1096 | if (ch == ';') { |
| 1097 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; | 1097 | return ERROR_SYSTEM_CONFIG_DIRECTIVE; |
| @@ -6833,4 +6833,3 @@ SrsConfDirective* SrsConfig::get_stats_disk_device() | @@ -6833,4 +6833,3 @@ SrsConfDirective* SrsConfig::get_stats_disk_device() | ||
| 6833 | 6833 | ||
| 6834 | return conf; | 6834 | return conf; |
| 6835 | } | 6835 | } |
| 6836 | - |
| @@ -79,7 +79,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io) | @@ -79,7 +79,7 @@ SrsHttpResponseWriter::SrsHttpResponseWriter(SrsStSocket* io) | ||
| 79 | SrsHttpResponseWriter::~SrsHttpResponseWriter() | 79 | SrsHttpResponseWriter::~SrsHttpResponseWriter() |
| 80 | { | 80 | { |
| 81 | srs_freep(hdr); | 81 | srs_freep(hdr); |
| 82 | - srs_freep(iovss_cache); | 82 | + srs_freepa(iovss_cache); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | int SrsHttpResponseWriter::final_request() | 85 | int SrsHttpResponseWriter::final_request() |
| @@ -191,7 +191,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | @@ -191,7 +191,7 @@ int SrsHttpResponseWriter::writev(iovec* iov, int iovcnt, ssize_t* pnwrite) | ||
| 191 | int nb_iovss = 3 + iovcnt; | 191 | int nb_iovss = 3 + iovcnt; |
| 192 | iovec* iovss = iovss_cache; | 192 | iovec* iovss = iovss_cache; |
| 193 | if (nb_iovss_cache < nb_iovss) { | 193 | if (nb_iovss_cache < nb_iovss) { |
| 194 | - srs_freep(iovss_cache); | 194 | + srs_freepa(iovss_cache); |
| 195 | nb_iovss_cache = nb_iovss; | 195 | nb_iovss_cache = nb_iovss; |
| 196 | iovss = iovss_cache = new iovec[nb_iovss]; | 196 | iovss = iovss_cache = new iovec[nb_iovss]; |
| 197 | } | 197 | } |
| @@ -509,7 +509,7 @@ SrsHttpMessage::~SrsHttpMessage() | @@ -509,7 +509,7 @@ SrsHttpMessage::~SrsHttpMessage() | ||
| 509 | { | 509 | { |
| 510 | srs_freep(_body); | 510 | srs_freep(_body); |
| 511 | srs_freep(_uri); | 511 | srs_freep(_uri); |
| 512 | - srs_freep(_http_ts_send_buffer); | 512 | + srs_freepa(_http_ts_send_buffer); |
| 513 | } | 513 | } |
| 514 | 514 | ||
| 515 | int SrsHttpMessage::update(string url, bool allow_jsonp, http_parser* header, SrsFastStream* body, vector<SrsHttpHeaderField>& headers) | 515 | int SrsHttpMessage::update(string url, bool allow_jsonp, http_parser* header, SrsFastStream* body, vector<SrsHttpHeaderField>& headers) |
| @@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener() | @@ -94,7 +94,7 @@ SrsUdpListener::~SrsUdpListener() | ||
| 94 | // close it manually. | 94 | // close it manually. |
| 95 | close(_fd); | 95 | close(_fd); |
| 96 | 96 | ||
| 97 | - srs_freep(buf); | 97 | + srs_freepa(buf); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | int SrsUdpListener::fd() | 100 | int SrsUdpListener::fd() |
| @@ -162,7 +162,7 @@ SrsFastVector::SrsFastVector() | @@ -162,7 +162,7 @@ SrsFastVector::SrsFastVector() | ||
| 162 | SrsFastVector::~SrsFastVector() | 162 | SrsFastVector::~SrsFastVector() |
| 163 | { | 163 | { |
| 164 | free(); | 164 | free(); |
| 165 | - srs_freep(msgs); | 165 | + srs_freepa(msgs); |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | int SrsFastVector::size() | 168 | int SrsFastVector::size() |
| @@ -221,7 +221,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg) | @@ -221,7 +221,7 @@ void SrsFastVector::push_back(SrsSharedPtrMessage* msg) | ||
| 221 | srs_warn("fast vector incrase %d=>%d", nb_msgs, size); | 221 | srs_warn("fast vector incrase %d=>%d", nb_msgs, size); |
| 222 | 222 | ||
| 223 | // use new array. | 223 | // use new array. |
| 224 | - srs_freep(msgs); | 224 | + srs_freepa(msgs); |
| 225 | msgs = buf; | 225 | msgs = buf; |
| 226 | nb_msgs = size; | 226 | nb_msgs = size; |
| 227 | } | 227 | } |
| @@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -103,9 +103,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 103 | p = NULL; \ | 103 | p = NULL; \ |
| 104 | } \ | 104 | } \ |
| 105 | (void)0 | 105 | (void)0 |
| 106 | -// sometimes, the freepa is useless, | ||
| 107 | -// it's recomments to free each elem explicit. | ||
| 108 | -// so we remove the srs_freepa utility. | 106 | +// please use the freepa(T[]) to free an array, |
| 107 | +// or the behavior is undefined. | ||
| 108 | +#define srs_freepa(pa) \ | ||
| 109 | + if (pa) { \ | ||
| 110 | + delete[] pa; \ | ||
| 111 | + pa = NULL; \ | ||
| 112 | + } \ | ||
| 113 | + (void)0 | ||
| 109 | 114 | ||
| 110 | /** | 115 | /** |
| 111 | * disable copy constructor of class, | 116 | * disable copy constructor of class, |
| @@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec() | @@ -419,12 +419,12 @@ SrsAvcAacCodec::SrsAvcAacCodec() | ||
| 419 | 419 | ||
| 420 | SrsAvcAacCodec::~SrsAvcAacCodec() | 420 | SrsAvcAacCodec::~SrsAvcAacCodec() |
| 421 | { | 421 | { |
| 422 | - srs_freep(avc_extra_data); | ||
| 423 | - srs_freep(aac_extra_data); | 422 | + srs_freepa(avc_extra_data); |
| 423 | + srs_freepa(aac_extra_data); | ||
| 424 | 424 | ||
| 425 | srs_freep(stream); | 425 | srs_freep(stream); |
| 426 | - srs_freep(sequenceParameterSetNALUnit); | ||
| 427 | - srs_freep(pictureParameterSetNALUnit); | 426 | + srs_freepa(sequenceParameterSetNALUnit); |
| 427 | + srs_freepa(pictureParameterSetNALUnit); | ||
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | bool SrsAvcAacCodec::is_avc_codec_ok() | 430 | bool SrsAvcAacCodec::is_avc_codec_ok() |
| @@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample | @@ -500,7 +500,7 @@ int SrsAvcAacCodec::audio_aac_demux(char* data, int size, SrsCodecSample* sample | ||
| 500 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. | 500 | // 1.6.2.1 AudioSpecificConfig, in aac-mp4a-format-ISO_IEC_14496-3+2001.pdf, page 33. |
| 501 | aac_extra_size = stream->size() - stream->pos(); | 501 | aac_extra_size = stream->size() - stream->pos(); |
| 502 | if (aac_extra_size > 0) { | 502 | if (aac_extra_size > 0) { |
| 503 | - srs_freep(aac_extra_data); | 503 | + srs_freepa(aac_extra_data); |
| 504 | aac_extra_data = new char[aac_extra_size]; | 504 | aac_extra_data = new char[aac_extra_size]; |
| 505 | memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size); | 505 | memcpy(aac_extra_data, stream->data() + stream->pos(), aac_extra_size); |
| 506 | 506 | ||
| @@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | @@ -764,7 +764,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | ||
| 764 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 | 764 | // 5.2.4.1.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 16 |
| 765 | avc_extra_size = stream->size() - stream->pos(); | 765 | avc_extra_size = stream->size() - stream->pos(); |
| 766 | if (avc_extra_size > 0) { | 766 | if (avc_extra_size > 0) { |
| 767 | - srs_freep(avc_extra_data); | 767 | + srs_freepa(avc_extra_data); |
| 768 | avc_extra_data = new char[avc_extra_size]; | 768 | avc_extra_data = new char[avc_extra_size]; |
| 769 | memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size); | 769 | memcpy(avc_extra_data, stream->data() + stream->pos(), avc_extra_size); |
| 770 | } | 770 | } |
| @@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | @@ -825,7 +825,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | ||
| 825 | return ret; | 825 | return ret; |
| 826 | } | 826 | } |
| 827 | if (sequenceParameterSetLength > 0) { | 827 | if (sequenceParameterSetLength > 0) { |
| 828 | - srs_freep(sequenceParameterSetNALUnit); | 828 | + srs_freepa(sequenceParameterSetNALUnit); |
| 829 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; | 829 | sequenceParameterSetNALUnit = new char[sequenceParameterSetLength]; |
| 830 | stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength); | 830 | stream->read_bytes(sequenceParameterSetNALUnit, sequenceParameterSetLength); |
| 831 | } | 831 | } |
| @@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | @@ -854,7 +854,7 @@ int SrsAvcAacCodec::avc_demux_sps_pps(SrsBuffer* stream) | ||
| 854 | return ret; | 854 | return ret; |
| 855 | } | 855 | } |
| 856 | if (pictureParameterSetLength > 0) { | 856 | if (pictureParameterSetLength > 0) { |
| 857 | - srs_freep(pictureParameterSetNALUnit); | 857 | + srs_freepa(pictureParameterSetNALUnit); |
| 858 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; | 858 | pictureParameterSetNALUnit = new char[pictureParameterSetLength]; |
| 859 | stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength); | 859 | stream->read_bytes(pictureParameterSetNALUnit, pictureParameterSetLength); |
| 860 | } | 860 | } |
| @@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage() | @@ -163,12 +163,12 @@ SrsCommonMessage::~SrsCommonMessage() | ||
| 163 | #ifdef SRS_AUTO_MEM_WATCH | 163 | #ifdef SRS_AUTO_MEM_WATCH |
| 164 | srs_memory_unwatch(payload); | 164 | srs_memory_unwatch(payload); |
| 165 | #endif | 165 | #endif |
| 166 | - srs_freep(payload); | 166 | + srs_freepa(payload); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | void SrsCommonMessage::create_payload(int size) | 169 | void SrsCommonMessage::create_payload(int size) |
| 170 | { | 170 | { |
| 171 | - srs_freep(payload); | 171 | + srs_freepa(payload); |
| 172 | 172 | ||
| 173 | payload = new char[size]; | 173 | payload = new char[size]; |
| 174 | srs_verbose("create payload for RTMP message. size=%d", size); | 174 | srs_verbose("create payload for RTMP message. size=%d", size); |
| @@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() | @@ -190,7 +190,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() | ||
| 190 | #ifdef SRS_AUTO_MEM_WATCH | 190 | #ifdef SRS_AUTO_MEM_WATCH |
| 191 | srs_memory_unwatch(payload); | 191 | srs_memory_unwatch(payload); |
| 192 | #endif | 192 | #endif |
| 193 | - srs_freep(payload); | 193 | + srs_freepa(payload); |
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | SrsSharedPtrMessage::SrsSharedPtrMessage() | 196 | SrsSharedPtrMessage::SrsSharedPtrMessage() |
| @@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder() | @@ -350,9 +350,9 @@ SrsFlvEncoder::~SrsFlvEncoder() | ||
| 350 | srs_freep(tag_stream); | 350 | srs_freep(tag_stream); |
| 351 | 351 | ||
| 352 | #ifdef SRS_PERF_FAST_FLV_ENCODER | 352 | #ifdef SRS_PERF_FAST_FLV_ENCODER |
| 353 | - srs_freep(tag_headers); | ||
| 354 | - srs_freep(iovss_cache); | ||
| 355 | - srs_freep(ppts); | 353 | + srs_freepa(tag_headers); |
| 354 | + srs_freepa(iovss_cache); | ||
| 355 | + srs_freepa(ppts); | ||
| 356 | #endif | 356 | #endif |
| 357 | } | 357 | } |
| 358 | 358 | ||
| @@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -489,7 +489,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 489 | int nb_iovss = 3 * count; | 489 | int nb_iovss = 3 * count; |
| 490 | iovec* iovss = iovss_cache; | 490 | iovec* iovss = iovss_cache; |
| 491 | if (nb_iovss_cache < nb_iovss) { | 491 | if (nb_iovss_cache < nb_iovss) { |
| 492 | - srs_freep(iovss_cache); | 492 | + srs_freepa(iovss_cache); |
| 493 | 493 | ||
| 494 | nb_iovss_cache = nb_iovss; | 494 | nb_iovss_cache = nb_iovss; |
| 495 | iovss = iovss_cache = new iovec[nb_iovss]; | 495 | iovss = iovss_cache = new iovec[nb_iovss]; |
| @@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -498,7 +498,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 498 | // realloc the tag headers. | 498 | // realloc the tag headers. |
| 499 | char* cache = tag_headers; | 499 | char* cache = tag_headers; |
| 500 | if (nb_tag_headers < count) { | 500 | if (nb_tag_headers < count) { |
| 501 | - srs_freep(tag_headers); | 501 | + srs_freepa(tag_headers); |
| 502 | 502 | ||
| 503 | nb_tag_headers = count; | 503 | nb_tag_headers = count; |
| 504 | cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count]; | 504 | cache = tag_headers = new char[SRS_FLV_TAG_HEADER_SIZE * count]; |
| @@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | @@ -507,7 +507,7 @@ int SrsFlvEncoder::write_tags(SrsSharedPtrMessage** msgs, int count) | ||
| 507 | // realloc the pts. | 507 | // realloc the pts. |
| 508 | char* pts = ppts; | 508 | char* pts = ppts; |
| 509 | if (nb_ppts < count) { | 509 | if (nb_ppts < count) { |
| 510 | - srs_freep(ppts); | 510 | + srs_freepa(ppts); |
| 511 | 511 | ||
| 512 | nb_ppts = count; | 512 | nb_ppts = count; |
| 513 | pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count]; | 513 | pts = ppts = new char[SRS_FLV_PREVIOUS_TAG_SIZE * count]; |
| @@ -927,7 +927,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt) | @@ -927,7 +927,7 @@ SrsTsAdaptationField::SrsTsAdaptationField(SrsTsPacket* pkt) | ||
| 927 | 927 | ||
| 928 | SrsTsAdaptationField::~SrsTsAdaptationField() | 928 | SrsTsAdaptationField::~SrsTsAdaptationField() |
| 929 | { | 929 | { |
| 930 | - srs_freep(transport_private_data); | 930 | + srs_freepa(transport_private_data); |
| 931 | } | 931 | } |
| 932 | 932 | ||
| 933 | int SrsTsAdaptationField::decode(SrsBuffer* stream) | 933 | int SrsTsAdaptationField::decode(SrsBuffer* stream) |
| @@ -1052,7 +1052,7 @@ int SrsTsAdaptationField::decode(SrsBuffer* stream) | @@ -1052,7 +1052,7 @@ int SrsTsAdaptationField::decode(SrsBuffer* stream) | ||
| 1052 | srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret); | 1052 | srs_error("ts: demux af transport_private_data_flag failed. ret=%d", ret); |
| 1053 | return ret; | 1053 | return ret; |
| 1054 | } | 1054 | } |
| 1055 | - srs_freep(transport_private_data); | 1055 | + srs_freepa(transport_private_data); |
| 1056 | transport_private_data = new char[transport_private_data_length]; | 1056 | transport_private_data = new char[transport_private_data_length]; |
| 1057 | stream->read_bytes(transport_private_data, transport_private_data_length); | 1057 | stream->read_bytes(transport_private_data, transport_private_data_length); |
| 1058 | } | 1058 | } |
| @@ -1337,9 +1337,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p) | @@ -1337,9 +1337,9 @@ SrsTsPayloadPES::SrsTsPayloadPES(SrsTsPacket* p) : SrsTsPayload(p) | ||
| 1337 | 1337 | ||
| 1338 | SrsTsPayloadPES::~SrsTsPayloadPES() | 1338 | SrsTsPayloadPES::~SrsTsPayloadPES() |
| 1339 | { | 1339 | { |
| 1340 | - srs_freep(PES_private_data); | ||
| 1341 | - srs_freep(pack_field); | ||
| 1342 | - srs_freep(PES_extension_field); | 1340 | + srs_freepa(PES_private_data); |
| 1341 | + srs_freepa(pack_field); | ||
| 1342 | + srs_freepa(PES_extension_field); | ||
| 1343 | } | 1343 | } |
| 1344 | 1344 | ||
| 1345 | int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | 1345 | int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) |
| @@ -1616,7 +1616,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | @@ -1616,7 +1616,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | ||
| 1616 | 1616 | ||
| 1617 | // 16B | 1617 | // 16B |
| 1618 | if (PES_private_data_flag) { | 1618 | if (PES_private_data_flag) { |
| 1619 | - srs_freep(PES_private_data); | 1619 | + srs_freepa(PES_private_data); |
| 1620 | PES_private_data = new char[16]; | 1620 | PES_private_data = new char[16]; |
| 1621 | stream->read_bytes(PES_private_data, 16); | 1621 | stream->read_bytes(PES_private_data, 16); |
| 1622 | } | 1622 | } |
| @@ -1632,7 +1632,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | @@ -1632,7 +1632,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | ||
| 1632 | srs_error("ts: demux PSE ext pack failed. ret=%d", ret); | 1632 | srs_error("ts: demux PSE ext pack failed. ret=%d", ret); |
| 1633 | return ret; | 1633 | return ret; |
| 1634 | } | 1634 | } |
| 1635 | - srs_freep(pack_field); | 1635 | + srs_freepa(pack_field); |
| 1636 | pack_field = new char[pack_field_length]; | 1636 | pack_field = new char[pack_field_length]; |
| 1637 | stream->read_bytes(pack_field, pack_field_length); | 1637 | stream->read_bytes(pack_field, pack_field_length); |
| 1638 | } | 1638 | } |
| @@ -1670,7 +1670,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | @@ -1670,7 +1670,7 @@ int SrsTsPayloadPES::decode(SrsBuffer* stream, SrsTsMessage** ppmsg) | ||
| 1670 | srs_error("ts: demux PSE ext field failed. ret=%d", ret); | 1670 | srs_error("ts: demux PSE ext field failed. ret=%d", ret); |
| 1671 | return ret; | 1671 | return ret; |
| 1672 | } | 1672 | } |
| 1673 | - srs_freep(PES_extension_field); | 1673 | + srs_freepa(PES_extension_field); |
| 1674 | PES_extension_field = new char[PES_extension_field_length]; | 1674 | PES_extension_field = new char[PES_extension_field_length]; |
| 1675 | stream->read_bytes(PES_extension_field, PES_extension_field_length); | 1675 | stream->read_bytes(PES_extension_field, PES_extension_field_length); |
| 1676 | } | 1676 | } |
| @@ -2433,7 +2433,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid) | @@ -2433,7 +2433,7 @@ SrsTsPayloadPMTESInfo::SrsTsPayloadPMTESInfo(SrsTsStream st, int16_t epid) | ||
| 2433 | 2433 | ||
| 2434 | SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo() | 2434 | SrsTsPayloadPMTESInfo::~SrsTsPayloadPMTESInfo() |
| 2435 | { | 2435 | { |
| 2436 | - srs_freep(ES_info); | 2436 | + srs_freepa(ES_info); |
| 2437 | } | 2437 | } |
| 2438 | 2438 | ||
| 2439 | int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream) | 2439 | int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream) |
| @@ -2463,7 +2463,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream) | @@ -2463,7 +2463,7 @@ int SrsTsPayloadPMTESInfo::decode(SrsBuffer* stream) | ||
| 2463 | srs_error("ts: demux PMT es info data failed. ret=%d", ret); | 2463 | srs_error("ts: demux PMT es info data failed. ret=%d", ret); |
| 2464 | return ret; | 2464 | return ret; |
| 2465 | } | 2465 | } |
| 2466 | - srs_freep(ES_info); | 2466 | + srs_freepa(ES_info); |
| 2467 | ES_info = new char[ES_info_length]; | 2467 | ES_info = new char[ES_info_length]; |
| 2468 | stream->read_bytes(ES_info, ES_info_length); | 2468 | stream->read_bytes(ES_info, ES_info_length); |
| 2469 | } | 2469 | } |
| @@ -2520,7 +2520,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p) | @@ -2520,7 +2520,7 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p) | ||
| 2520 | 2520 | ||
| 2521 | SrsTsPayloadPMT::~SrsTsPayloadPMT() | 2521 | SrsTsPayloadPMT::~SrsTsPayloadPMT() |
| 2522 | { | 2522 | { |
| 2523 | - srs_freep(program_info_desc); | 2523 | + srs_freepa(program_info_desc); |
| 2524 | 2524 | ||
| 2525 | std::vector<SrsTsPayloadPMTESInfo*>::iterator it; | 2525 | std::vector<SrsTsPayloadPMTESInfo*>::iterator it; |
| 2526 | for (it = infos.begin(); it != infos.end(); ++it) { | 2526 | for (it = infos.begin(); it != infos.end(); ++it) { |
| @@ -2574,7 +2574,7 @@ int SrsTsPayloadPMT::psi_decode(SrsBuffer* stream) | @@ -2574,7 +2574,7 @@ int SrsTsPayloadPMT::psi_decode(SrsBuffer* stream) | ||
| 2574 | return ret; | 2574 | return ret; |
| 2575 | } | 2575 | } |
| 2576 | 2576 | ||
| 2577 | - srs_freep(program_info_desc); | 2577 | + srs_freepa(program_info_desc); |
| 2578 | program_info_desc = new char[program_info_length]; | 2578 | program_info_desc = new char[program_info_length]; |
| 2579 | stream->read_bytes(program_info_desc, program_info_length); | 2579 | stream->read_bytes(program_info_desc, program_info_length); |
| 2580 | } | 2580 | } |
| @@ -2390,7 +2390,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int | @@ -2390,7 +2390,7 @@ int srs_human_print_rtmp_packet4(char type, u_int32_t timestamp, char* data, int | ||
| 2390 | 2390 | ||
| 2391 | char* amf0_str = NULL; | 2391 | char* amf0_str = NULL; |
| 2392 | srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL)); | 2392 | srs_human_raw("%s", srs_human_amf0_print(amf0, &amf0_str, NULL)); |
| 2393 | - srs_freep(amf0_str); | 2393 | + srs_freepa(amf0_str); |
| 2394 | } | 2394 | } |
| 2395 | } else { | 2395 | } else { |
| 2396 | srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d", | 2396 | srs_human_trace("Rtmp packet id=%"PRId64"/%.1f/%.1f, type=%#x, dts=%d, pts=%d, ndiff=%d, diff=%d, size=%d", |
| @@ -768,7 +768,7 @@ ISrsHttpMessage::ISrsHttpMessage() | @@ -768,7 +768,7 @@ ISrsHttpMessage::ISrsHttpMessage() | ||
| 768 | 768 | ||
| 769 | ISrsHttpMessage::~ISrsHttpMessage() | 769 | ISrsHttpMessage::~ISrsHttpMessage() |
| 770 | { | 770 | { |
| 771 | - srs_freep(_http_ts_send_buffer); | 771 | + srs_freepa(_http_ts_send_buffer); |
| 772 | } | 772 | } |
| 773 | 773 | ||
| 774 | char* ISrsHttpMessage::http_ts_send_buffer() | 774 | char* ISrsHttpMessage::http_ts_send_buffer() |
| @@ -222,7 +222,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in | @@ -222,7 +222,7 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in | ||
| 222 | 222 | ||
| 223 | // only when failed, we must free the data. | 223 | // only when failed, we must free the data. |
| 224 | if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) { | 224 | if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) { |
| 225 | - srs_freep(data); | 225 | + srs_freepa(data); |
| 226 | return ret; | 226 | return ret; |
| 227 | } | 227 | } |
| 228 | 228 |
| @@ -319,8 +319,8 @@ namespace _srs_internal | @@ -319,8 +319,8 @@ namespace _srs_internal | ||
| 319 | 319 | ||
| 320 | key_block::~key_block() | 320 | key_block::~key_block() |
| 321 | { | 321 | { |
| 322 | - srs_freep(random0); | ||
| 323 | - srs_freep(random1); | 322 | + srs_freepa(random0); |
| 323 | + srs_freepa(random1); | ||
| 324 | } | 324 | } |
| 325 | 325 | ||
| 326 | int key_block::parse(SrsBuffer* stream) | 326 | int key_block::parse(SrsBuffer* stream) |
| @@ -342,7 +342,7 @@ namespace _srs_internal | @@ -342,7 +342,7 @@ namespace _srs_internal | ||
| 342 | 342 | ||
| 343 | random0_size = valid_offset; | 343 | random0_size = valid_offset; |
| 344 | if (random0_size > 0) { | 344 | if (random0_size > 0) { |
| 345 | - srs_freep(random0); | 345 | + srs_freepa(random0); |
| 346 | random0 = new char[random0_size]; | 346 | random0 = new char[random0_size]; |
| 347 | stream->read_bytes(random0, random0_size); | 347 | stream->read_bytes(random0, random0_size); |
| 348 | } | 348 | } |
| @@ -351,7 +351,7 @@ namespace _srs_internal | @@ -351,7 +351,7 @@ namespace _srs_internal | ||
| 351 | 351 | ||
| 352 | random1_size = 764 - valid_offset - 128 - 4; | 352 | random1_size = 764 - valid_offset - 128 - 4; |
| 353 | if (random1_size > 0) { | 353 | if (random1_size > 0) { |
| 354 | - srs_freep(random1); | 354 | + srs_freepa(random1); |
| 355 | random1 = new char[random1_size]; | 355 | random1 = new char[random1_size]; |
| 356 | stream->read_bytes(random1, random1_size); | 356 | stream->read_bytes(random1, random1_size); |
| 357 | } | 357 | } |
| @@ -401,8 +401,8 @@ namespace _srs_internal | @@ -401,8 +401,8 @@ namespace _srs_internal | ||
| 401 | 401 | ||
| 402 | digest_block::~digest_block() | 402 | digest_block::~digest_block() |
| 403 | { | 403 | { |
| 404 | - srs_freep(random0); | ||
| 405 | - srs_freep(random1); | 404 | + srs_freepa(random0); |
| 405 | + srs_freepa(random1); | ||
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | int digest_block::parse(SrsBuffer* stream) | 408 | int digest_block::parse(SrsBuffer* stream) |
| @@ -419,7 +419,7 @@ namespace _srs_internal | @@ -419,7 +419,7 @@ namespace _srs_internal | ||
| 419 | 419 | ||
| 420 | random0_size = valid_offset; | 420 | random0_size = valid_offset; |
| 421 | if (random0_size > 0) { | 421 | if (random0_size > 0) { |
| 422 | - srs_freep(random0); | 422 | + srs_freepa(random0); |
| 423 | random0 = new char[random0_size]; | 423 | random0 = new char[random0_size]; |
| 424 | stream->read_bytes(random0, random0_size); | 424 | stream->read_bytes(random0, random0_size); |
| 425 | } | 425 | } |
| @@ -428,7 +428,7 @@ namespace _srs_internal | @@ -428,7 +428,7 @@ namespace _srs_internal | ||
| 428 | 428 | ||
| 429 | random1_size = 764 - 4 - valid_offset - 32; | 429 | random1_size = 764 - 4 - valid_offset - 32; |
| 430 | if (random1_size > 0) { | 430 | if (random1_size > 0) { |
| 431 | - srs_freep(random1); | 431 | + srs_freepa(random1); |
| 432 | random1 = new char[random1_size]; | 432 | random1 = new char[random1_size]; |
| 433 | stream->read_bytes(random1, random1_size); | 433 | stream->read_bytes(random1, random1_size); |
| 434 | } | 434 | } |
| @@ -592,7 +592,7 @@ namespace _srs_internal | @@ -592,7 +592,7 @@ namespace _srs_internal | ||
| 592 | 592 | ||
| 593 | c1_digest = new char[SRS_OpensslHashSize]; | 593 | c1_digest = new char[SRS_OpensslHashSize]; |
| 594 | if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) { | 594 | if ((ret = openssl_HMACsha256(SrsGenuineFPKey, 30, c1s1_joined_bytes, 1536 - 32, c1_digest)) != ERROR_SUCCESS) { |
| 595 | - srs_freep(c1_digest); | 595 | + srs_freepa(c1_digest); |
| 596 | srs_error("calc digest for c1 failed. ret=%d", ret); | 596 | srs_error("calc digest for c1 failed. ret=%d", ret); |
| 597 | return ret; | 597 | return ret; |
| 598 | } | 598 | } |
| @@ -620,7 +620,7 @@ namespace _srs_internal | @@ -620,7 +620,7 @@ namespace _srs_internal | ||
| 620 | 620 | ||
| 621 | s1_digest = new char[SRS_OpensslHashSize]; | 621 | s1_digest = new char[SRS_OpensslHashSize]; |
| 622 | if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) { | 622 | if ((ret = openssl_HMACsha256(SrsGenuineFMSKey, 36, c1s1_joined_bytes, 1536 - 32, s1_digest)) != ERROR_SUCCESS) { |
| 623 | - srs_freep(s1_digest); | 623 | + srs_freepa(s1_digest); |
| 624 | srs_error("calc digest for s1 failed. ret=%d", ret); | 624 | srs_error("calc digest for s1 failed. ret=%d", ret); |
| 625 | return ret; | 625 | return ret; |
| 626 | } | 626 | } |
| @@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray() | @@ -40,7 +40,7 @@ SrsMessageArray::~SrsMessageArray() | ||
| 40 | // we just free the msgs itself, | 40 | // we just free the msgs itself, |
| 41 | // both delete and delete[] is ok, | 41 | // both delete and delete[] is ok, |
| 42 | // for each msg in msgs is already freed by send_and_free_messages. | 42 | // for each msg in msgs is already freed by send_and_free_messages. |
| 43 | - srs_freep(msgs); | 43 | + srs_freepa(msgs); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | void SrsMessageArray::free(int count) | 46 | void SrsMessageArray::free(int count) |
| @@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | @@ -151,14 +151,14 @@ int SrsPacket::encode(int& psize, char*& ppayload) | ||
| 151 | 151 | ||
| 152 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { | 152 | if ((ret = stream.initialize(payload, size)) != ERROR_SUCCESS) { |
| 153 | srs_error("initialize the stream failed. ret=%d", ret); | 153 | srs_error("initialize the stream failed. ret=%d", ret); |
| 154 | - srs_freep(payload); | 154 | + srs_freepa(payload); |
| 155 | return ret; | 155 | return ret; |
| 156 | } | 156 | } |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { | 159 | if ((ret = encode_packet(&stream)) != ERROR_SUCCESS) { |
| 160 | srs_error("encode the packet failed. ret=%d", ret); | 160 | srs_error("encode the packet failed. ret=%d", ret); |
| 161 | - srs_freep(payload); | 161 | + srs_freepa(payload); |
| 162 | return ret; | 162 | return ret; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| @@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol() | @@ -279,7 +279,7 @@ SrsProtocol::~SrsProtocol() | ||
| 279 | SrsChunkStream* cs = cs_cache[i]; | 279 | SrsChunkStream* cs = cs_cache[i]; |
| 280 | srs_freep(cs); | 280 | srs_freep(cs); |
| 281 | } | 281 | } |
| 282 | - srs_freep(cs_cache); | 282 | + srs_freepa(cs_cache); |
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | void SrsProtocol::set_auto_response(bool v) | 285 | void SrsProtocol::set_auto_response(bool v) |
| @@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id) | @@ -632,7 +632,7 @@ int SrsProtocol::do_send_and_free_packet(SrsPacket* packet, int stream_id) | ||
| 632 | header.perfer_cid = packet->get_prefer_cid(); | 632 | header.perfer_cid = packet->get_prefer_cid(); |
| 633 | 633 | ||
| 634 | ret = do_simple_send(&header, payload, size); | 634 | ret = do_simple_send(&header, payload, size); |
| 635 | - srs_freep(payload); | 635 | + srs_freepa(payload); |
| 636 | if (ret == ERROR_SUCCESS) { | 636 | if (ret == ERROR_SUCCESS) { |
| 637 | ret = on_send_packet(&header, packet); | 637 | ret = on_send_packet(&header, packet); |
| 638 | } | 638 | } |
| @@ -1776,9 +1776,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | @@ -1776,9 +1776,9 @@ SrsHandshakeBytes::SrsHandshakeBytes() | ||
| 1776 | 1776 | ||
| 1777 | SrsHandshakeBytes::~SrsHandshakeBytes() | 1777 | SrsHandshakeBytes::~SrsHandshakeBytes() |
| 1778 | { | 1778 | { |
| 1779 | - srs_freep(c0c1); | ||
| 1780 | - srs_freep(s0s1s2); | ||
| 1781 | - srs_freep(c2); | 1779 | + srs_freepa(c0c1); |
| 1780 | + srs_freepa(s0s1s2); | ||
| 1781 | + srs_freepa(c2); | ||
| 1782 | } | 1782 | } |
| 1783 | 1783 | ||
| 1784 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) | 1784 | int SrsHandshakeBytes::read_c0c1(ISrsProtocolReaderWriter* io) |
-
请 注册 或 登录 后发表评论