From 0c861d63e2cb31c0efc203907afa769a1ce21c07 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 6 Mar 2018 23:16:50 +0100 Subject: [PATCH] qrtplib: use it for the audio net sink --- qrtplib/rtpudptransmitter.cpp | 11 +++++++++++ qrtplib/rtpudptransmitter.h | 2 ++ sdrbase/audio/audionetsink.cpp | 4 ++++ sdrbase/util/rtpsink.h | 4 ++++ 4 files changed, 21 insertions(+) diff --git a/qrtplib/rtpudptransmitter.cpp b/qrtplib/rtpudptransmitter.cpp index f4fef5a76..cc2ee3a3e 100644 --- a/qrtplib/rtpudptransmitter.cpp +++ b/qrtplib/rtpudptransmitter.cpp @@ -174,6 +174,17 @@ int RTPUDPTransmitter::BindSockets() return 0; } +void RTPUDPTransmitter::moveToThread(QThread *thread) +{ + if (m_rtpsock) { + m_rtpsock->moveToThread(thread); + } + + if (m_rtpsock != m_rtcpsock) { + m_rtcpsock->moveToThread(thread); + } +} + void RTPUDPTransmitter::Destroy() { if (!m_init) { diff --git a/qrtplib/rtpudptransmitter.h b/qrtplib/rtpudptransmitter.h index 7b1719d61..add4561ee 100644 --- a/qrtplib/rtpudptransmitter.h +++ b/qrtplib/rtpudptransmitter.h @@ -282,6 +282,7 @@ public: virtual int Init(); virtual int Create(std::size_t maxpacksize, const RTPTransmissionParams *transparams); virtual int BindSockets(); + void moveToThread(QThread *thread); virtual void Destroy(); virtual RTPTransmissionInfo *GetTransmissionInfo(); virtual void DeleteTransmissionInfo(RTPTransmissionInfo *inf); @@ -314,6 +315,7 @@ public: virtual RTPRawPacket *GetNextPacket(); + private: bool m_init; bool m_created; diff --git a/sdrbase/audio/audionetsink.cpp b/sdrbase/audio/audionetsink.cpp index 6444410e7..c8775662c 100644 --- a/sdrbase/audio/audionetsink.cpp +++ b/sdrbase/audio/audionetsink.cpp @@ -135,5 +135,9 @@ void AudioNetSink::moveToThread(QThread *thread) if (m_udpBufferAudioStereo) { m_udpBufferAudioMono->moveToThread(thread); } + + if (m_rtpBufferAudio) { + m_rtpBufferAudio->moveToThread(thread); + } } diff --git a/sdrbase/util/rtpsink.h b/sdrbase/util/rtpsink.h index 9b56c19be..051316d65 100644 --- a/sdrbase/util/rtpsink.h +++ b/sdrbase/util/rtpsink.h @@ -55,6 +55,10 @@ public: void write(const uint8_t *sampleByte); void write(const uint8_t *sampleByte, int nbSamples); + void moveToThread(QThread *thread) { + m_rtpTransmitter.moveToThread(thread); + } + protected: /** Reverse endianess in destination buffer */ static void writeNetBuf(uint8_t *dest, const uint8_t *src, unsigned int elemLen, unsigned int bytesLen, bool endianReverse);