/* * Copyright (c) 2012 Yoann Blein * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class UDPSocket; class RTPSession { public: typedef boost::shared_ptr ref; enum PayloadType { VP8 = 98, }; public: virtual ~RTPSession() {} virtual void create(boost::shared_ptr udpSocket, const HostAddressPort& remotePeer, PayloadType payloadType, int frequency) = 0; virtual void poll() = 0; virtual void checkIncomingPackets() = 0; virtual void sendPacket(const SafeByteArray& data, int timestampinc, bool marker = false) = 0; virtual void injectData(const SafeByteArray& data) = 0; virtual void stop(int maxWaitMs = 100) = 0; public: boost::signal onIncomingPacket; }; }