diff --git a/README.md b/README.md index 15d643d28..334308ca7 100755 --- a/README.md +++ b/README.md @@ -333,6 +333,7 @@ Remark: ## History +* v2.0, 2018-07-21, Merge [#1119][bug #1119], fix memory leak. 2.0.249 * v2.0, 2018-07-18, [2.0 release3(2.0.248)][r2.0r3] released. 86775 lines. * v2.0, 2018-07-17, Merge [#1176][bug #1176], fix scaned issues. 2.0.248 * v2.0, 2018-02-28, Merge [#1077][bug #1077], fix crash for edge HLS. 2.0.247 @@ -1311,6 +1312,7 @@ Winlin [bug #1059]: https://github.com/ossrs/srs/issues/1059 [bug #1077]: https://github.com/ossrs/srs/issues/1077 [bug #1176]: https://github.com/ossrs/srs/issues/1176 +[bug #1119]: https://github.com/ossrs/srs/issues/1119 [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx [exo #828]: https://github.com/google/ExoPlayer/pull/828 diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index ad068719a..2da22b8f7 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 2 #define VERSION_MINOR 0 -#define VERSION_REVISION 248 +#define VERSION_REVISION 249 // generated by configure, only macros. #include diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index fad50ea2b..eebc44a2d 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -184,8 +184,11 @@ SrsTsMessage* SrsTsMessage::detach() cp->sid = sid; cp->PES_packet_length = PES_packet_length; cp->continuity_counter = continuity_counter; + + srs_freep(cp->payload); cp->payload = payload; payload = NULL; + return cp; } diff --git a/trunk/src/main/srs_main_ingest_hls.cpp b/trunk/src/main/srs_main_ingest_hls.cpp index 7480fb0db..5b2435c95 100644 --- a/trunk/src/main/srs_main_ingest_hls.cpp +++ b/trunk/src/main/srs_main_ingest_hls.cpp @@ -898,10 +898,12 @@ int SrsIngestSrsOutput::parse_message_queue() std::multimap::iterator it = queue.begin(); SrsTsMessage* msg = it->second; + SrsAutoFree(SrsTsMessage, msg); + queue.erase(it); + if (msg->channel->stream == SrsTsStreamVideoH264) { nb_videos--; } - queue.erase(it); // parse the stream. SrsStream avs; @@ -935,6 +937,7 @@ int SrsIngestSrsOutput::flush_message_queue() std::multimap::iterator it = queue.begin(); SrsTsMessage* msg = it->second; + SrsAutoFree(SrsTsMessage, msg); queue.erase(it); // parse the stream.