summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordknn <yoann.blein@free.fr>2012-07-11 16:06:01 (GMT)
committerdknn <yoann.blein@free.fr>2012-09-22 09:01:48 (GMT)
commit6d458439d9536be1736ba1a98c51040b64946284 (patch)
tree74894bc65dce3db5ccaf822f9769d3efd1e0dd6e /Swiften/ScreenSharing/RTPSessionImpl.h
parent79ee86a4deeb29c1be6d6838e54aae32d4c3e1ec (diff)
downloadswift-contrib-6d458439d9536be1736ba1a98c51040b64946284.zip
swift-contrib-6d458439d9536be1736ba1a98c51040b64946284.tar.bz2
Add disco for RTP + bugfix
Diffstat (limited to 'Swiften/ScreenSharing/RTPSessionImpl.h')
-rw-r--r--Swiften/ScreenSharing/RTPSessionImpl.h42
1 files changed, 17 insertions, 25 deletions
diff --git a/Swiften/ScreenSharing/RTPSessionImpl.h b/Swiften/ScreenSharing/RTPSessionImpl.h
index 657a34a..9bf08e5 100644
--- a/Swiften/ScreenSharing/RTPSessionImpl.h
+++ b/Swiften/ScreenSharing/RTPSessionImpl.h
@@ -7,6 +7,7 @@
#pragma once
#include <Swiften/ScreenSharing/RTPSession.h>
+#include <Swiften/Elements/RTPPayloadType.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
@@ -16,26 +17,19 @@
#include <rtpipv4address.h>
namespace Swift {
- // Temporary class
- class Sender : public jrtplib::RTPExternalSender
- {
- public:
- Sender() {}
+ class Sender : public jrtplib::RTPExternalSender {
+ public:
+ Sender(boost::shared_ptr<UDPSocket> udpSocket) : udpSocket(udpSocket) {}
- virtual bool SendRTP (const void* /*data*/, size_t /*len*/)
- {
- return true;
- }
+ virtual bool SendRTP(const void* data, size_t len);
+ virtual bool SendRTCP(const void* data, size_t len);
+ virtual bool ComesFromThisSender (const jrtplib::RTPAddress* address);
- virtual bool SendRTCP (const void* /*data*/, size_t /*len*/)
- {
- return true;
- }
+ private:
+ void send(const void* data, size_t len);
- virtual bool ComesFromThisSender (const jrtplib::RTPAddress* /*address*/)
- {
- return false;
- }
+ private:
+ boost::shared_ptr<UDPSocket> udpSocket;
};
class RTPSessionImpl : public RTPSession {
@@ -43,30 +37,28 @@ namespace Swift {
typedef boost::shared_ptr<RTPSession> ref;
public:
- RTPSessionImpl();
+ RTPSessionImpl(boost::shared_ptr<UDPSocket> udpSocket, const RTPPayloadType& payloadType);
virtual ~RTPSessionImpl();
- virtual void create(boost::shared_ptr<UDPSocket> udpSocket, const HostAddressPort &remotePeer, PayloadType payloadType, int frequency);
virtual void poll();
virtual void checkIncomingPackets();
virtual void sendPacket(const SafeByteArray &data, int timestampinc, bool marker = false);
virtual void injectData(const SafeByteArray &data);
virtual void stop(int maxWaitMs = 100);
- private:
- static void nativeAddressToJRTPAddress(const HostAddressPort& hostAddressPort, jrtplib::RTPIPv4Address& jRTPAddress);
+ public:
+ static jrtplib::RTPIPv4Address nativeAddressToJRTPAddress(const HostAddressPort& hostAddressPort);
private:
- inline void checkError(int rtperr) const;
+ void checkError(int rtperr) const;
void handleDataRead(boost::shared_ptr<SafeByteArray> data);
private:
boost::shared_ptr<UDPSocket> udpSocket;
- PayloadType payloadType;
- int frequency;
+ RTPPayloadType payloadType;
jrtplib::RTPIPv4Address jRTPRemotePeer;
- jrtplib::RTPSession session;
Sender sender;
+ jrtplib::RTPSession session;
jrtplib::RTPExternalPacketInjecter *packetInjecter;
};
}