diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a0bd5268..bfd05672c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The changelog for SRS. ## SRS 4.0 Changelog +* v4.0, 2021-08-13, RTC: Merge [#2526](https://github.com/ossrs/srs/pull/2526), fix codec issue for G.711 or H.263. 4.0.152 * v4.0, 2021-08-10, RTC: Merge [#2509](https://github.com/ossrs/srs/pull/2514), support http hooks n_play/stop/publish/unpublish. 4.0.151 * v4.0, 2021-08-07, Merge [#2514](https://github.com/ossrs/srs/pull/2514), Get original client ip instead of proxy ip, for rtc api #2514. 4.0.150 * v4.0, 2021-08-07, Fix [#2508](https://github.com/ossrs/srs/pull/2508), Support features query by API. 4.0.149 diff --git a/trunk/src/app/srs_app_dash.cpp b/trunk/src/app/srs_app_dash.cpp index ef9082cfa..e3ec90a14 100644 --- a/trunk/src/app/srs_app_dash.cpp +++ b/trunk/src/app/srs_app_dash.cpp @@ -540,7 +540,11 @@ srs_error_t SrsDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* form if (!enabled) { return err; } - + + if (!format->acodec) { + return err; + } + if ((err = controller->on_audio(shared_audio, format)) != srs_success) { return srs_error_wrap(err, "Consume audio failed"); } @@ -555,7 +559,11 @@ srs_error_t SrsDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* form if (!enabled) { return err; } - + + if (!format->vcodec) { + return err; + } + if ((err = controller->on_video(shared_video, format)) != srs_success) { return srs_error_wrap(err, "Consume video failed"); } diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp index e09892c51..aae228b48 100755 --- a/trunk/src/app/srs_app_source.cpp +++ b/trunk/src/app/srs_app_source.cpp @@ -931,6 +931,12 @@ srs_error_t SrsOriginHub::on_audio(SrsSharedPtrMessage* shared_audio) if ((err = format->on_audio(msg)) != srs_success) { return srs_error_wrap(err, "format consume audio"); } + + // Ignore if no format->acodec, it means the codec is not parsed, or unsupport/unknown codec + // such as G.711 codec + if (!format->acodec) { + return err; + } // cache the sequence header if aac // donot cache the sequence header to gop_cache, return here. diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index 29d64471e..c0afc04a2 100644 --- a/trunk/src/core/srs_core_version4.hpp +++ b/trunk/src/core/srs_core_version4.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 4 #define VERSION_MINOR 0 -#define VERSION_REVISION 151 +#define VERSION_REVISION 152 #endif diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index a6f0d3809..96a95c0ff 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -3064,7 +3064,11 @@ srs_error_t SrsTsTransmuxer::write_audio(int64_t timestamp, char* data, int size if ((err = format->on_audio(timestamp, data, size)) != srs_success) { return srs_error_wrap(err, "ts: format on audio"); } - + + if (!format->acodec) { + return err; + } + // ts support audio codec: aac/mp3 srs_assert(format->acodec && format->audio); if (format->acodec->id != SrsAudioCodecIdAAC && format->acodec->id != SrsAudioCodecIdMP3) { @@ -3100,7 +3104,11 @@ srs_error_t SrsTsTransmuxer::write_video(int64_t timestamp, char* data, int size if ((err = format->on_video(timestamp, data, size)) != srs_success) { return srs_error_wrap(err, "ts: on video"); } - + + if (!format->vcodec) { + return err; + } + // ignore info frame, // @see https://github.com/ossrs/srs/issues/288#issuecomment-69863909 srs_assert(format->video && format->vcodec);