/* * Copyright (c) 2012 Yoann Blein * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-parameter" #include #pragma clang diagnostic pop #include #include namespace Swift { // Temporary class class Sender : public jrtplib::RTPExternalSender { public: Sender() {} virtual bool SendRTP (const void* /*data*/, size_t /*len*/) { return true; } virtual bool SendRTCP (const void* /*data*/, size_t /*len*/) { return true; } virtual bool ComesFromThisSender (const jrtplib::RTPAddress* /*address*/) { return false; } }; class RTPSessionImpl : public RTPSession { public: RTPSessionImpl(const HostAddressPort& remotePeer, PayloadType payloadType, int frequency); virtual ~RTPSessionImpl(); 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); private: inline void checkError(int rtperr) const; private: jrtplib::RTPIPv4Address jRTPRemotePeer; jrtplib::RTPSession session; Sender sender; jrtplib::RTPExternalPacketInjecter *packetInjecter; }; }