From efbf9c5bf899962aab6f1433f1c8d8f42fca5112 Mon Sep 17 00:00:00 2001 From: Dmytro Bogovych Date: Tue, 25 Feb 2025 15:11:13 +0300 Subject: [PATCH] - send silence to audio decoder if packet is lost --- src/engine/media/MT_AudioReceiver.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/engine/media/MT_AudioReceiver.cpp b/src/engine/media/MT_AudioReceiver.cpp index 00e2e219..55c23c37 100644 --- a/src/engine/media/MT_AudioReceiver.cpp +++ b/src/engine/media/MT_AudioReceiver.cpp @@ -522,7 +522,17 @@ AudioReceiver::DecodeResult AudioReceiver::getAudio(Audio::DataWindow& output, i if (options & DecodeOptions_SkipDecode) mDecodedLength = 0; else + { mDecodedLength = mCodec->plc(mFrameCount, mDecodedFrame, sizeof mDecodedFrame); + if (!mDecodedLength) + { + // PLC is not support or failed + // So substitute the silence + size_t nr_of_samples = mCodec->frameTime() * mCodec->samplerate() / 1000 * sizeof(short); + mDecodedLength = nr_of_samples * sizeof(short); + memset(mDecodedFrame, 0, mDecodedLength); + } + } } if (mDecodedLength)