From 4e64c66e02ff93f35927cfb88399fd573734d530 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 4 Dec 2021 10:56:37 +0800 Subject: [PATCH] RTC: Ignore empty audio packet when transcoding (#2757). v4.0.202 --- trunk/doc/CHANGELOG.md | 1 + trunk/src/app/srs_app_rtc_codec.cpp | 12 ++++-------- trunk/src/core/srs_core_version4.hpp | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index b7d0cbd6a..07138b7c7 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -8,6 +8,7 @@ The changelog for SRS. ## SRS 4.0 Changelog +* v4.0, 2021-12-04, Merge [#2757](https://github.com/ossrs/srs/pull/2757): RTC: Ignore empty audio packet when transcoding (#2757). v4.0.202 * v4.0, 2021-12-01, Fix [#2762](https://github.com/ossrs/srs/pull/2762): RTC: Refine publish security error message (#2762). v4.0.200 * v4.0, 2021-11-25, Merge [#2751](https://github.com/ossrs/srs/pull/2751): RTC: Fix crash when pkt->payload() if pkt is nullptr (#2751). v4.0.199 * v4.0, 2021-11-15, For [#1708](https://github.com/ossrs/srs/pull/1708): ST: Print log when multiple thread stop one coroutine. (#1708). v4.0.198 diff --git a/trunk/src/app/srs_app_rtc_codec.cpp b/trunk/src/app/srs_app_rtc_codec.cpp index 6eabb1048..979bae9d2 100644 --- a/trunk/src/app/srs_app_rtc_codec.cpp +++ b/trunk/src/app/srs_app_rtc_codec.cpp @@ -322,16 +322,12 @@ srs_error_t SrsAudioTranscoder::decode_and_resample(SrsAudioFrame *pkt) dec_packet_->data = (uint8_t *)pkt->samples[0].bytes; dec_packet_->size = pkt->samples[0].size; - char err_buf[AV_ERROR_MAX_STRING_SIZE] = {0}; - - - if (dec_packet_->data == NULL || dec_packet_->size == 0){ - return srs_error_new(ERROR_RTC_INVALID_PARAMS, - "dec_pakcet is invalide(dec_packet_->data: %p, dec_packet_->size: %d)", - dec_packet_->data, (int) dec_packet_->size); + // Ignore empty packet, see https://github.com/ossrs/srs/pull/2757#discussion_r759797651 + if (!dec_packet_->data || !dec_packet_->size){ + return err; } - + char err_buf[AV_ERROR_MAX_STRING_SIZE] = {0}; int error = avcodec_send_packet(dec_, dec_packet_); if (error < 0) { return srs_error_new(ERROR_RTC_RTP_MUXER, "submit to dec(%d,%s)", error, diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index fccc7f189..0635885ce 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 201 +#define VERSION_REVISION 202 #endif