@class VCMediaStreamConfig, VCRateSharingGroup, VCNetworkFeedbackController, VCCallInfoBlob, AVCBasebandCongestionDetector, NSObject, NSMutableArray, VCTransportSession, AVCRateControlFeedbackController, NSString, VCWeakObjectHolder, VCMediaStreamRateAdaptation, AVCStatisticsCollector, VCConnection, VCDatagramChannelIDS, VCMediaStreamTransport, NSArray, NSError, VCMediaKeyIndex; @protocol OS_nw_connection, VCMediaStreamNotification, RTCPReportProvider, VCMomentsCollectorDelegate, OS_dispatch_source, VCMediaStreamDelegate, OS_dispatch_queue; @interface VCMediaStream : VCObject { NSObject *_delegateNotificationQueue; struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _streamLock; VCDatagramChannelIDS *_datagramChannel; NSString *_idsDestination; id _delegate; NSString *_callID; NSString *_clientSessionID; NSString *_clientName; BOOL _isSRTPInitialized; BOOL _useRandomTS; BOOL _isReportingAgentOwner; double _rtpTimeoutEnabledTime; double _rtcpTimeoutEnabledTime; double _decryptionTimeoutEnabledTime; NSObject *_rtcpSendHeartbeat; NSObject *_timeoutHeartbeat; BOOL _rtcpHeartbeatCancelled; BOOL _rtcpDidTimeout; double _lastRTPTimeoutReportTime; double _lastRTCPTimeoutReportTime; double _lastDecryptionTimeoutReportTime; double _lastDecryptionMKMRecoveryTime; double _decryptionErrorStartTime; unsigned int _transportSessionID; int _clientPID; VCWeakObjectHolder *_notificationDelegate; VCWeakObjectHolder *_rtcpReportProvider; struct _VCMediaStreamTransportSetupInfo { unsigned char setupType; union { struct { int rtpSocket; int rtcpSocket; } socketInfo; struct { struct tagIPPORT { int iFlags; char szIfName[16]; union { unsigned int dwIPv4; unsigned char abIPv6[16]; } IP; unsigned short wPort; } srcIPPORT; struct tagIPPORT { int iFlags; char szIfName[16]; union { unsigned int dwIPv4; unsigned char abIPv6[16]; } IP; unsigned short wPort; } srcRTPIPPort; } ipInfo; struct { void *context; void /* function */ *creationCallback; BOOL isReceiveExternallyScheduled; } transportStreamInfo; NSObject *nwConnection; } ; unsigned int sourceRate; unsigned int datagramChannelToken; BOOL isSessionIDValid; } _transportSetupInfo; void /* function */ *_vcMediaCallback; VCMediaKeyIndex *_lastReceivedMKI; VCCallInfoBlob *_remoteEndpointInfo; VCTransportSession *_transportSession; NSError *_cachedError; void /* function */ *_notificationHandler; void /* function */ *_packetEventHandler; struct tagVCNWConnectionMonitor { } *_nwMonitor; void *_oneToOneControlInfoGenerator; AVCRateControlFeedbackController *_oneToOneFeedbackController; BOOL _mediaControlInfoCallbacksRegistered; void /* function */ *_statisticsHandler; BOOL _isWRMinitialized; BOOL _isRTTBasedFIRThrottlingEnabled; BOOL _isServerPacketRetransmissionEnabled; BOOL _isNWMonitorSignalEnabled; VCMediaStreamRateAdaptation *_rateAdaptation; VCConnection *_connection; VCRateSharingGroup *_rateSharingGroup; BOOL _areStatisticsRegistered; AVCStatisticsCollector *_statisticsCollector; int _nwMonitorHandlerIndex; int _rttMonitorHandlerIndex; int _channelSequenceCountWithInactiveSlots; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _nwMonitorLock; } @property (readonly, nonatomic) long long streamToken; @property (readonly, nonatomic) int state; @property (nonatomic) id delegate; @property (nonatomic) struct tagVCMediaStreamDelegateRealtimeInstanceVTable { void /* function */ *updateFrequencyLevel; } delegateFunctions; @property (nonatomic) id momentsCollectorDelegate; @property (readonly, nonatomic) unsigned int localSSRC; @property (nonatomic) id notificationDelegate; @property (nonatomic) id rtcpReportProvider; @property (readonly, nonatomic) double rtcpHeartbeatLeeway; @property (readonly, nonatomic) double lastReceivedRTPPacketTime; @property (readonly, nonatomic) double lastReceivedRTCPPacketTime; @property (retain, nonatomic) AVCBasebandCongestionDetector *basebandCongestionDetector; @property (nonatomic) int operatingMode; @property (nonatomic) struct tagVCMediaQueue { } *mediaQueue; @property (readonly, nonatomic) VCMediaStreamTransport *defaultTransport; @property (readonly, nonatomic) NSMutableArray *transportArray; @property (readonly, nonatomic) VCMediaStreamConfig *defaultStreamConfig; @property (readonly, nonatomic) VCMediaStreamConfig *oneToOneStreamConfig; @property (readonly, nonatomic) BOOL isSendingMedia; @property (readonly, retain, nonatomic) AVCRateControlFeedbackController *feedbackController; @property (readonly, nonatomic) void *mediaControlInfoGenerator; @property (readonly, nonatomic) unsigned int mediaControlInfoGeneratorType; @property (retain, nonatomic) VCNetworkFeedbackController *networkFeedbackController; @property (copy) NSArray *compoundStreamIDs; @property (nonatomic, setter=setUplinkRetransmissionEnabled:) BOOL isUplinkRetransmissionEnabled; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (BOOL)isSameSRTPKey:(id)a0 newKey:(id)a1; - (id)setPause:(BOOL)a0; - (id)init; - (void)dealloc; - (id)start; - (void)lock; - (void)startWithCompletionHandler:(id /* block */)a0; - (id)stop; - (void)unlock; - (void)setState:(int)a0; - (void)setRtcpEnabled:(BOOL)a0; - (void)setRtcpSendInterval:(double)a0; - (void)setRtcpTimeOutEnabled:(BOOL)a0; - (void)setRtcpTimeOutInterval:(double)a0; - (void)setRtpTimeOutEnabled:(BOOL)a0; - (void)setRtpTimeOutInterval:(double)a0; - (void)setPause:(BOOL)a0 withCompletionHandler:(id /* block */)a1; - (void)createNWMonitor; - (void)onCallIDChanged; - (void)processRTCPTimeoutSettingChange; - (id)setupRTPWithNWConnection:(id)a0 error:(id *)a1; - (long long)streamDirection; - (void)checkRTCPPacketTimeoutAgainstTime:(double)a0 lastReceivedPacketTime:(double)a1; - (void)checkRTPPacketTimeoutAgainstTime:(double)a0 lastReceivedPacketTime:(double)a1; - (void)cleanupNWConnection:(id *)a0; - (void)collectChannelSequenceMetrics:(id)a0; - (void)collectRxChannelMetrics:(struct { unsigned int x0; unsigned int x1[5]; unsigned int x2; double x3; struct CGSize { double x0; double x1; } x4; double x5; unsigned int x6; double x7; unsigned int x8; unsigned int x9; } *)a0; - (void)collectRxChannelMetrics:(struct { unsigned int x0; unsigned int x1[5]; unsigned int x2; double x3; struct CGSize { double x0; double x1; } x4; double x5; unsigned int x6; double x7; unsigned int x8; unsigned int x9; } *)a0 interval:(float)a1; - (void)collectTxChannelMetrics:(struct { unsigned int x0; unsigned int x1[5]; unsigned int x2; double x3; struct CGSize { double x0; double x1; } x4; double x5; unsigned int x6; double x7; unsigned int x8; unsigned int x9; } *)a0; - (struct __CFDictionary { } *)composeClientUserInfo:(int)a0; - (double)computeNextTimoutWithEnabledTime:(double)a0 timeoutInterval:(double)a1 lastReceivedPacketTime:(double)a2 currentTime:(double)a3 lastTimeoutReportTime:(double)a4; - (id)copyDelegate; - (void)createLocalMediaControlInfoGeneratorWithType:(unsigned int)a0 version:(unsigned char)a1; - (struct tagHANDLE { int x0; } *)createRTPHandleWithStreamConfig:(id)a0 payloadType:(int)a1 localSSRC:(unsigned int)a2; - (id)createTransportWithStreamConfig:(id)a0 ssrc:(unsigned int)a1; - (void)decryptionStatusChanged:(BOOL)a0; - (void)destroyNWMonitor; - (void)didEncryptionKeyRollTimeout; - (void)didEnterState:(int)a0 oldState:(int)a1; - (void)dupNWConnectionBackingSocket:(int *)a0; - (BOOL)generateReceptionReportList:(struct _RTCP_RECEPTION_REPORT { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned char x8; } *)a0 reportCount:(char *)a1; - (unsigned int)getExtendedSequenceNumberForSequenceNumber:(unsigned short)a0; - (id)getInvalidParamErrorForSetPause:(BOOL)a0 didSucceed:(BOOL)a1; - (id)getMediaStreamConfigForControlInfoGenerator:(id)a0; - (unsigned int)getRTCPReportNTPTimeMiddle32ForReportId:(unsigned char)a0; - (id)getSharingGroupWithPolicy:(unsigned int)a0; - (void)handleActiveConnectionChange:(id)a0; - (BOOL)handleEncryptionInfoChange:(id)a0; - (int)handleMediaCallbackNotification:(int)a0 inData:(void *)a1 outData:(void *)a2; - (void)handleStartDidSucceed:(BOOL)a0 withError:(id)a1; - (void)handleTransportSessionEvent:(unsigned int)a0 info:(id)a1; - (id)initWithTransportSessionID:(unsigned int)a0; - (id)initWithTransportSessionID:(unsigned int)a0 localSSRC:(unsigned int)a1; - (BOOL)initializeTransportSessionWithIDSDestination:(id)a0 error:(id *)a1; - (BOOL)initializeTransportSessionWithRTPNWConnectionID:(id)a0 rtcpNWConnectionID:(id)a1 error:(id *)a2; - (BOOL)initializeTransportSessionWithSocketDictionary:(id)a0 error:(id *)a1; - (BOOL)initializeTransportSetupInfoWithIDSDestination:(id)a0 error:(id *)a1; - (void)initializeTransportSetupInfoWithRTPSocket:(int)a0 RTCPSocket:(int)a1; - (void)initializeTransportSetupInfoWithSocketDictionary:(id)a0; - (BOOL)initializeTransportSetupInfoWithTransportSession:(id *)a0; - (void)initializeWRMUsingRtpHandle:(struct tagHANDLE { int x0; } *)a0; - (BOOL)isDecryptionTimeoutEnabled; - (BOOL)isRTCPSendEnabled; - (BOOL)isRTCPTimeoutEnabled; - (BOOL)isRTPTimeoutEnabled; - (void)notifyDelegateDidReceiveRTCPPackets:(struct _RTCPPacketList { union tagNTP { unsigned long long x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; unsigned char x1; struct tagRTCPPACKET *x2[10]; struct OpaqueCMBlockBuffer *x3; char *x4; unsigned long long x5; unsigned int x6; unsigned char x7[1472]; unsigned short x8[12]; unsigned char x9; BOOL x10; unsigned long long x11; struct { struct _RTCPPacketList *x0; } x12; } *)a0; - (BOOL)onConfigureStreamWithConfiguration:(id)a0 error:(id *)a1; - (void)onPauseWithCompletionHandler:(id /* block */)a0; - (void)onRTCPTimeout; - (void)onRTPTimeout; - (void)onResumeWithCompletionHandler:(id /* block */)a0; - (void)onSendRTCPPacket; - (void)onStartWithCompletionHandler:(id /* block */)a0; - (void)onStopWithCompletionHandler:(id /* block */)a0; - (void)processDecryptionTimeoutSettingChange; - (void)processRTPTimeoutSettingChange; - (void)registerCallbacksForMediaControlInfoGenerator:(void *)a0 forDirection:(long long)a1 options:(unsigned int)a2; - (void)registerMediaControlInfoGeneratorWithConfigs:(id)a0; - (void)registerStatistics:(id)a0; - (int)registerStatisticsHandler:(id)a0 statisticType:(int)a1; - (void)reportTransportInfo; - (void)resetDecryptionTimeout; - (void)resetRTCPSendHeartbeatTimer:(unsigned long long)a0; - (void)resetTimeoutHeartbeatTimer:(unsigned long long)a0; - (void)resetTimeoutHeartbeatWithRTPTimeout:(double)a0 rtcpTimeout:(double)a1 decryptionTimeout:(double)a2 currentTime:(double)a3; - (void)rtcpSendHeartbeat; - (void)sendControlPacketWithParameters:(struct _RTCP_SEND_CONTROL_PARAMETERS { unsigned int x0; int x1; char *x2; unsigned long long x3; unsigned char x4; unsigned short *x5; int x6; unsigned short x7; unsigned short x8; unsigned int x9; struct _RTCP_RECEPTION_REPORT *x10; unsigned char x11; struct tagRTCP_CUSTOM_RATE_CONTROL_INFO *x12; struct tagVCRTCPXRSummaryReport *x13; unsigned char x14; struct tagVCRTCPXRVoIPMetricsReport *x15; unsigned char x16; unsigned short x17[12]; unsigned char x18; BOOL x19; unsigned long long x20; BOOL x21; BOOL x22; struct tagRTCP_CUSTOM_PSFB_LOSS_FB_INFO *x23; unsigned int x24; } *)a0; - (void)setDecryptionTimeOutEnabled:(BOOL)a0; - (void)setDecryptionTimeOutInterval:(double)a0; - (id)setLocalParticipantInfo:(id)a0 networkSockets:(id)a1 withError:(id *)a2; - (void)setMediaQueueInRateControlConfig:(id)a0; - (void)setMediaQueueInStreamConfig:(id)a0; - (BOOL)setStreamConfig:(id)a0 withError:(id *)a1; - (void)setStreamDirection:(long long)a0; - (void)setStreamIDs:(id)a0 repairStreamIDs:(id)a1; - (void)setupCallbacksWithNWConnectionMonitor:(struct tagVCNWConnectionMonitor { } *)a0; - (void)setupMediaStream; - (BOOL)setupNWConnectionWithID:(id)a0; - (id)setupRTPForIDS; - (id)setupRTPWithIDSDestination:(id)a0 error:(id *)a1; - (id)setupRTPWithIPInfo:(id)a0 error:(id *)a1; - (id)setupRTPWithLocalParticipantInfo:(id)a0 error:(id *)a1; - (id)setupRTPWithSocketDictionary:(id)a0 error:(id *)a1; - (BOOL)shouldReportNetworkInterfaceType; - (BOOL)shouldStopReportingTimer; - (BOOL)shouldUseNWConnectionBackingSocket; - (BOOL)startMediaTransportsWithError:(id *)a0; - (void)startRTCPSendHeartbeat; - (void)startTimeoutHeartbeat; - (void)stopInternalWithHandler:(id /* block */)a0; - (void)stopMediaTransports; - (void)stopRTCPSendHeartbeat; - (void)stopTimeoutHeartbeat; - (char *)streamStateToString:(int)a0; - (id)supportedPayloads; - (void)timeoutHeartbeat; - (void)unregisterMediaControlInfoGenerator; - (void)unregisterStatistics; - (void)unregisterWRMCallback; - (int)updateConnectionWithConfig:(id)a0; - (BOOL)updateRemoteAddressWithConfig:(id)a0 error:(id *)a1; - (void)updateTransportsWithConstantConnectionOverhead:(unsigned int)a0; - (void)willExitState:(int)a0 newState:(int)a1; @end