From e6eafd3b978558aa93d9abacc0cd63e298a833a5 Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 11 Jan 2017 17:42:34 +0800 Subject: [PATCH 1/2] fix #740, convert ts aac audio private stream 1 to common. 2.0.229 --- README.md | 2 ++ trunk/src/app/srs_app_mpegts_udp.cpp | 6 ++++++ trunk/src/core/srs_core.hpp | 2 +- trunk/src/main/srs_main_ingest_hls.cpp | 6 ++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f9339818e..b775ca244 100755 --- a/README.md +++ b/README.md @@ -345,6 +345,7 @@ Remark: ## History +* v2.0, 2017-01-11, fix [#740][bug #740], convert ts aac audio private stream 1 to common. 2.0.229 * v2.0, 2017-01-11, fix [#588][bug #588], kbps interface error. 2.0.228 * v2.0, 2017-01-11, fix [#736][bug #736], recovery the hls dispose. 2.0.227 * v2.0, 2017-01-10, refine hls html5 video template. @@ -1275,6 +1276,7 @@ Winlin [bug #635]: https://github.com/ossrs/srs/issues/635 [bug #736]: https://github.com/ossrs/srs/issues/736 [bug #588]: https://github.com/ossrs/srs/issues/588 +[bug #740]: https://github.com/ossrs/srs/issues/740 [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx [exo #828]: https://github.com/google/ExoPlayer/pull/828 diff --git a/trunk/src/app/srs_app_mpegts_udp.cpp b/trunk/src/app/srs_app_mpegts_udp.cpp index 20a3d396a..920c52bea 100644 --- a/trunk/src/app/srs_app_mpegts_udp.cpp +++ b/trunk/src/app/srs_app_mpegts_udp.cpp @@ -300,6 +300,12 @@ int SrsMpegtsOverUdp::on_ts_message(SrsTsMessage* msg) msg->dts, msg->pts, msg->payload->length(), msg->packet->payload_unit_start_indicator, msg->continuity_counter, msg->sid, msg->is_audio()? "A":msg->is_video()? "V":"N", msg->stream_number()); } + + // When the audio SID is private stream 1, we use common audio. + // @see https://github.com/ossrs/srs/issues/740 + if (msg->channel->apply == SrsTsPidApplyAudio && msg->sid == SrsTsPESStreamIdPrivateStream1) { + msg->sid = SrsTsPESStreamIdAudioCommon; + } // when not audio/video, or not adts/annexb format, donot support. if (msg->stream_number() != 0) { diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 72561527a..cf38cfa60 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 228 +#define VERSION_REVISION 229 // generated by configure, only macros. #include diff --git a/trunk/src/main/srs_main_ingest_hls.cpp b/trunk/src/main/srs_main_ingest_hls.cpp index db3e88e4f..3321e29c8 100644 --- a/trunk/src/main/srs_main_ingest_hls.cpp +++ b/trunk/src/main/srs_main_ingest_hls.cpp @@ -759,6 +759,12 @@ int SrsIngestSrsOutput::on_ts_message(SrsTsMessage* msg) msg->dts, msg->pts, msg->payload->length(), msg->packet->payload_unit_start_indicator, msg->continuity_counter, msg->sid, msg->is_audio()? "A":msg->is_video()? "V":"N", msg->stream_number()); + // When the audio SID is private stream 1, we use common audio. + // @see https://github.com/ossrs/srs/issues/740 + if (msg->channel->apply == SrsTsPidApplyAudio && msg->sid == SrsTsPESStreamIdPrivateStream1) { + msg->sid = SrsTsPESStreamIdAudioCommon; + } + // when not audio/video, or not adts/annexb format, donot support. if (msg->stream_number() != 0) { ret = ERROR_STREAM_CASTER_TS_ES; From 142a9733b2537442cdc5ad0b41df677152e1822e Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 16 Jan 2017 12:42:25 +0800 Subject: [PATCH 2/2] refine encoder code for #536. --- trunk/src/app/srs_app_encoder.cpp | 4 ++++ trunk/src/app/srs_app_ffmpeg.cpp | 3 ++- trunk/src/app/srs_app_ffmpeg.hpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/trunk/src/app/srs_app_encoder.cpp b/trunk/src/app/srs_app_encoder.cpp index 4367b86b2..cb5a1ba2d 100644 --- a/trunk/src/app/srs_app_encoder.cpp +++ b/trunk/src/app/srs_app_encoder.cpp @@ -299,6 +299,10 @@ int SrsEncoder::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsRequest* req, SrsConfDir log_file += req->app; log_file += "-"; log_file += req->stream; + if (!engine->args.empty()) { + log_file += "-"; + log_file += engine->arg0(); + } log_file += ".log"; } diff --git a/trunk/src/app/srs_app_ffmpeg.cpp b/trunk/src/app/srs_app_ffmpeg.cpp index 98a64d064..8e694a0b5 100644 --- a/trunk/src/app/srs_app_ffmpeg.cpp +++ b/trunk/src/app/srs_app_ffmpeg.cpp @@ -102,6 +102,7 @@ int SrsFFMPEG::initialize_transcode(SrsConfDirective* engine) { int ret = ERROR_SUCCESS; + engine_name = engine->arg0(); iformat = _srs_config->get_engine_iformat(engine); vfilter = _srs_config->get_engine_vfilter(engine); vcodec = _srs_config->get_engine_vcodec(engine); @@ -487,7 +488,7 @@ int SrsFFMPEG::start() // parent. if (pid > 0) { started = true; - srs_trace("vfored ffmpeg encoder engine, pid=%d", pid); + srs_trace("fork encoder %s, pid=%d", engine_name.c_str(), pid); return ret; } diff --git a/trunk/src/app/srs_app_ffmpeg.hpp b/trunk/src/app/srs_app_ffmpeg.hpp index 1cc3540b0..54f15069d 100644 --- a/trunk/src/app/srs_app_ffmpeg.hpp +++ b/trunk/src/app/srs_app_ffmpeg.hpp @@ -49,6 +49,7 @@ private: bool fast_stopped; pid_t pid; private: + std::string engine_name; std::string log_file; private: std::string ffmpeg;