mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-02 23:01:56 +00:00
Support for Signal calls.
Merge in RedPhone // FREEBIE
This commit is contained in:
38
jni/redphone/RtpAudioReceiver.cpp
Normal file
38
jni/redphone/RtpAudioReceiver.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "RtpAudioReceiver.h"
|
||||
|
||||
#include <android/log.h>
|
||||
|
||||
#define TAG "RtpAudioReceiver"
|
||||
|
||||
RtpAudioReceiver::RtpAudioReceiver(int socketFd, SrtpStreamParameters *parameters) :
|
||||
socketFd(socketFd), sequenceCounter(), srtpStream(parameters)
|
||||
{
|
||||
}
|
||||
|
||||
int RtpAudioReceiver::init() {
|
||||
if (srtpStream.init() != 0) {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "SRTP stream failed to initialize!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
RtpPacket* RtpAudioReceiver::receive(char* encodedData, int encodedDataLen) {
|
||||
int received = recv(socketFd, encodedData, encodedDataLen, 0);
|
||||
|
||||
if (received == -1) {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "recv() failed!");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
RtpPacket *packet = new RtpPacket(encodedData, received);
|
||||
|
||||
if (srtpStream.decrypt(*packet, sequenceCounter.convertNext(packet->getSequenceNumber())) != 0) {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "SRTP decrypt failed!");
|
||||
delete packet;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return packet;
|
||||
}
|
||||
Reference in New Issue
Block a user