From bd2a1f9d3c02d77a7ee1f8db1e6bf3229c082a3f Mon Sep 17 00:00:00 2001 From: ME_Kun_Han Date: Sat, 15 Apr 2017 16:49:02 +0800 Subject: [PATCH 1/4] fixed bug: video rendering in hls stream generates only vertical parttern (#841) --- trunk/src/kernel/srs_kernel_ts.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index 0b3580880..3aefb898d 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -3039,6 +3039,7 @@ int SrsTsCache::do_cache_avc(SrsAvcAacCodec* codec, SrsCodecSample* sample) video->payload->append((const char*)default_aud_nalu, 2); } + bool is_sps_pps_appended = false; // all sample use cont nalu header, except the sps-pps before IDR frame. for (int i = 0; i < sample->nb_sample_units; i++) { SrsCodecSampleUnit* sample_unit = &sample->sample_units[i]; @@ -3056,7 +3057,7 @@ int SrsTsCache::do_cache_avc(SrsAvcAacCodec* codec, SrsCodecSample* sample) // Insert sps/pps before IDR when there is no sps/pps in samples. // The sps/pps is parsed from sequence header(generally the first flv packet). - if (nal_unit_type == SrsAvcNaluTypeIDR && !sample->has_sps_pps) { + if (nal_unit_type == SrsAvcNaluTypeIDR && !sample->has_sps_pps && !is_sps_pps_appended) { if (codec->sequenceParameterSetLength > 0) { srs_avc_insert_aud(video->payload, aud_inserted); video->payload->append(codec->sequenceParameterSetNALUnit, codec->sequenceParameterSetLength); @@ -3065,6 +3066,7 @@ int SrsTsCache::do_cache_avc(SrsAvcAacCodec* codec, SrsCodecSample* sample) srs_avc_insert_aud(video->payload, aud_inserted); video->payload->append(codec->pictureParameterSetNALUnit, codec->pictureParameterSetLength); } + is_sps_pps_appended = true; } // Insert the NALU to video in annexb. From 8d35585c132371f96eb40e8691e691b064eb01f4 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 15 Apr 2017 16:54:42 +0800 Subject: [PATCH 2/4] Merge #841, avoid the duplicated sps/pps in ts. 2.0.236 --- README.md | 2 ++ trunk/src/core/srs_core.hpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed42b3728..da812c4b3 100755 --- a/README.md +++ b/README.md @@ -336,6 +336,7 @@ Remark: ## History +* v2.0, 2017-04-15, Merge [#841][bug #841], avoid the duplicated sps/pps in ts. 2.0.236 * v2.0, 2017-04-09, Fix [#834][bug #834], crash for TS context corrupt. 2.0.235 * v2.0, 2017-03-03, [2.0 release0(2.0.234)][r2.0r0] released. 86373 lines. * v2.0, 2017-02-25, for [#730][bug #730], remove the test code. 2.0.234 @@ -1281,6 +1282,7 @@ Winlin [bug #752]: https://github.com/ossrs/srs/issues/752 [bug #503]: https://github.com/ossrs/srs/issues/503 [bug #834]: https://github.com/ossrs/srs/issues/834 +[bug #841]: https://github.com/ossrs/srs/issues/841 [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 bbc365bdb..3883d0c24 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 235 +#define VERSION_REVISION 236 // generated by configure, only macros. #include From 52b6823a90650471cb4be995af5ce7164f564d83 Mon Sep 17 00:00:00 2001 From: haofz Date: Sat, 15 Apr 2017 16:56:28 +0800 Subject: [PATCH 3/4] fix #826, fix memory leak in streamCasterFlv (#836) --- trunk/src/app/srs_app_caster_flv.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/trunk/src/app/srs_app_caster_flv.cpp b/trunk/src/app/srs_app_caster_flv.cpp index ac2675eb3..793215465 100644 --- a/trunk/src/app/srs_app_caster_flv.cpp +++ b/trunk/src/app/srs_app_caster_flv.cpp @@ -86,6 +86,11 @@ void SrsAppCasterFlv::remove(SrsConnection* c) if ((it = std::find(conns.begin(), conns.end(), c)) != conns.end()) { conns.erase(it); } + + // fixbug: SrsHttpConn for CasterFlv is not freed, which could cause memory leak + // so, free conn which is not managed by SrsServer->conns; + // @see: https://github.com/ossrs/srs/issues/826 + srs_freep(c); } int SrsAppCasterFlv::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r) From 1c139d8fd8bf3268c46e2b78689d64159d9f3596 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 15 Apr 2017 16:59:36 +0800 Subject: [PATCH 4/4] Merge #846, fix fd leak for FLV stream caster. 2.0.237 --- README.md | 2 ++ trunk/src/core/srs_core.hpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index da812c4b3..498d42045 100755 --- a/README.md +++ b/README.md @@ -336,6 +336,7 @@ Remark: ## History +* v2.0, 2017-04-15, Merge [#846][bug #846], fix fd leak for FLV stream caster. 2.0.237 * v2.0, 2017-04-15, Merge [#841][bug #841], avoid the duplicated sps/pps in ts. 2.0.236 * v2.0, 2017-04-09, Fix [#834][bug #834], crash for TS context corrupt. 2.0.235 * v2.0, 2017-03-03, [2.0 release0(2.0.234)][r2.0r0] released. 86373 lines. @@ -1283,6 +1284,7 @@ Winlin [bug #503]: https://github.com/ossrs/srs/issues/503 [bug #834]: https://github.com/ossrs/srs/issues/834 [bug #841]: https://github.com/ossrs/srs/issues/841 +[bug #846]: https://github.com/ossrs/srs/issues/846 [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 3883d0c24..ad50f1384 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 236 +#define VERSION_REVISION 237 // generated by configure, only macros. #include