22#ifndef _MULTI_FRAMED_RTP_SOURCE_HH
23#define _MULTI_FRAMED_RTP_SOURCE_HH
36 unsigned rtpTimestampFrequency,
42 unsigned& resultSpecialHeaderSize);
96 struct timeval presentationTime,
99 void skip(
unsigned numBytes);
102 void use(
unsigned char* to,
unsigned toSize,
103 unsigned& bytesUsed,
unsigned& bytesTruncated,
104 unsigned short&
rtpSeqNo,
unsigned& rtpTimestamp,
105 struct timeval& presentationTime,
127 unsigned& frameDurationInMicroseconds);
virtual BufferedPacket * createNewPacket(MultiFramedRTPSource *ourSource)
virtual ~BufferedPacketFactory()
Boolean fillInData(RTPInterface &rtpInterface, struct sockaddr_storage &fromAddress, Boolean &packetReadWasIncomplete)
Boolean & isFirstPacket()
struct timeval fPresentationTime
void removePadding(unsigned numBytes)
virtual ~BufferedPacket()
unsigned dataSize() const
Boolean rtpMarkerBit() const
void appendData(unsigned char *newData, unsigned numBytes)
unsigned bytesAvailable() const
virtual unsigned nextEnclosedFrameSize(unsigned char *&framePtr, unsigned dataSize)
Boolean hasUsableData() const
BufferedPacket * fNextPacket
struct timeval fTimeReceived
unsigned short rtpSeqNo() const
Boolean fHasBeenSyncedUsingRTCP
void skip(unsigned numBytes)
unsigned useCount() const
BufferedPacket *& nextPacket()
struct timeval const & timeReceived() const
virtual void getNextEnclosedFrameParameters(unsigned char *&framePtr, unsigned dataSize, unsigned &frameSize, unsigned &frameDurationInMicroseconds)
void use(unsigned char *to, unsigned toSize, unsigned &bytesUsed, unsigned &bytesTruncated, unsigned short &rtpSeqNo, unsigned &rtpTimestamp, struct timeval &presentationTime, Boolean &hasBeenSyncedUsingRTCP, Boolean &rtpMarkerBit)
void assignMiscParams(unsigned short rtpSeqNo, unsigned rtpTimestamp, struct timeval presentationTime, Boolean hasBeenSyncedUsingRTCP, Boolean rtpMarkerBit, struct timeval timeReceived)
unsigned char * data() const
virtual Boolean packetIsUsableInJitterCalculation(unsigned char *packet, unsigned packetSize)
Boolean fPacketLossInFragmentedFrame
Boolean fAreDoingNetworkReads
class ReorderingPacketBuffer * fReorderingBuffer
BufferedPacket * fPacketReadInProgress
static void networkReadHandler(MultiFramedRTPSource *source, int)
Boolean fCurrentPacketBeginsFrame
virtual Boolean processSpecialHeader(BufferedPacket *packet, unsigned &resultSpecialHeaderSize)
void networkReadHandler1()
Boolean fCurrentPacketCompletesFrame
virtual void setPacketReorderingThresholdTime(unsigned uSeconds)
virtual void doGetNextFrame()
virtual void doStopGettingFrames()
MultiFramedRTPSource(UsageEnvironment &env, Groupsock *RTPgs, unsigned char rtpPayloadFormat, unsigned rtpTimestampFrequency, BufferedPacketFactory *packetFactory=NULL)
virtual ~MultiFramedRTPSource()
Groupsock * RTPgs() const
unsigned char rtpPayloadFormat() const