21#ifndef _STREAM_REPLICATOR_HH
22#define _STREAM_REPLICATOR_HH
24#ifndef _FRAMED_SOURCE_HH
63 unsigned numTruncatedBytes,
64 struct timeval presentationTime,
65 unsigned durationInMicroseconds);
67 struct timeval presentationTime,
unsigned durationInMicroseconds);
unsigned fNumDeliveriesMadeSoFar
StreamReplica * fPrimaryReplica
Boolean fInputSourceHasClosed
StreamReplica * fReplicasAwaitingNextFrame
StreamReplica * fReplicasAwaitingCurrentFrame
StreamReplicator(UsageEnvironment &env, FramedSource *inputSource, Boolean deleteWhenLastReplicaDies)
friend class StreamReplica
FramedSource * inputSource() const
static void afterGettingFrame(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
FramedSource * fInputSource
void afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)
Boolean fDeleteWhenLastReplicaDies
void removeStreamReplica(StreamReplica *replica)
unsigned fNumActiveReplicas
unsigned numReplicas() const
virtual ~StreamReplicator()
static StreamReplicator * createNew(UsageEnvironment &env, FramedSource *inputSource, Boolean deleteWhenLastReplicaDies=True)
FramedSource * createStreamReplica()
void deliverReceivedFrame()
static void onSourceClosure(void *clientData)
void deactivateStreamReplica(StreamReplica *replica)
void getNextFrame(StreamReplica *replica)