Skip to content

Commit

Permalink
Make audioLevelUpdated parameter optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
john-preston committed Jan 25, 2024
1 parent df78cf0 commit b9fa8b8
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions tgcalls/v2/InstanceV2Impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -259,15 +259,15 @@ class AudioSinkImpl: public webrtc::AudioSinkInterface {
AudioSinkImpl(std::function<void(float)> update) :
_update(update) {
}

virtual ~AudioSinkImpl() {
}

virtual void OnData(const Data& audio) override {
if (_update && audio.channels == 1) {
const int16_t *samples = (const int16_t *)audio.data;
int numberOfSamplesInFrame = (int)audio.samples_per_channel;

int16_t currentPeak = 0;
for (int i = 0; i < numberOfSamplesInFrame; i++) {
int16_t sample = samples[i];
Expand All @@ -282,7 +282,7 @@ class AudioSinkImpl: public webrtc::AudioSinkInterface {
}
_peakCount += 1;
}

if (_peakCount >= 4400) {
float level = ((float)(_peak)) / 8000.0f;
_peak = 0;
Expand All @@ -291,10 +291,10 @@ class AudioSinkImpl: public webrtc::AudioSinkInterface {
}
}
}

private:
std::function<void(float)> _update;

int _peakCount = 0;
uint16_t _peak = 0;
};
Expand All @@ -309,7 +309,7 @@ class IncomingV2AudioChannel : public sigslot::has_slots<> {
webrtc::RtpTransport *rtpTransport,
rtc::UniqueRandomIdGenerator *randomIdGenerator,
signaling::MediaContent const &mediaContent,
std::function<void(float)> &&onAudioLevelUpdated,
std::function<void(float)> onAudioLevelUpdated,
std::shared_ptr<Threads> threads) :
_threads(threads),
_ssrc(mediaContent.ssrc),
Expand All @@ -327,7 +327,7 @@ class IncomingV2AudioChannel : public sigslot::has_slots<> {
_threads->getNetworkThread()->BlockingCall([&]() {
_audioChannel->SetRtpTransport(rtpTransport);
});

std::vector<cricket::AudioCodec> codecs;
for (const auto &payloadType : mediaContent.payloadTypes) {
cricket::AudioCodec codec(payloadType.id, payloadType.name, payloadType.clockrate, 0, payloadType.channels);
Expand Down Expand Up @@ -369,7 +369,7 @@ class IncomingV2AudioChannel : public sigslot::has_slots<> {
std::string errorDesc;
_audioChannel->SetLocalContent(outgoingAudioDescription.get(), webrtc::SdpType::kOffer, errorDesc);
_audioChannel->SetRemoteContent(incomingAudioDescription.get(), webrtc::SdpType::kAnswer, errorDesc);

std::unique_ptr<AudioSinkImpl> audioLevelSink(new AudioSinkImpl(std::move(onAudioLevelUpdated)));
_audioChannel->media_channel()->SetRawAudioSink(ssrc, std::move(audioLevelSink));
});
Expand Down Expand Up @@ -1517,9 +1517,7 @@ class InstanceV2ImplInternal : public std::enable_shared_from_this<InstanceV2Imp
_rtpTransport,
_uniqueRandomIdGenerator.get(),
content,
[audioLevelUpdated = _audioLevelUpdated](float level) {
audioLevelUpdated(level);
},
_audioLevelUpdated,
_threads
));
}
Expand Down

0 comments on commit b9fa8b8

Please sign in to comment.