luxlabs header browser preview


@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 <VCMediaStreamProtocol, RTCPReportProvider, VCSecurityEventHandler, VCConnectionChangedHandler> {
    NSObject<OS_dispatch_queue> *_delegateNotificationQueue;
    struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _streamLock;
    VCDatagramChannelIDS *_datagramChannel;
    NSString *_idsDestination;
    id<VCMediaStreamDelegate> _delegate;
    NSString *_callID;
    NSString *_clientSessionID;
    NSString *_clientName;
    BOOL _isSRTPInitialized;
    BOOL _useRandomTS;
    BOOL _isReportingAgentOwner;
    double _rtpTimeoutEnabledTime;
    double _rtcpTimeoutEnabledTime;
    double _decryptionTimeoutEnabledTime;
    NSObject<OS_dispatch_source> *_rtcpSendHeartbeat;
    NSObject<OS_dispatch_source> *_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<OS_nw_connection> *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<VCMediaStreamDelegate> delegate;
@property (nonatomic) struct tagVCMediaStreamDelegateRealtimeInstanceVTable { void /* function */ *updateFrequencyLevel; } delegateFunctions;
@property (nonatomic) id<VCMomentsCollectorDelegate> momentsCollectorDelegate;
@property (readonly, nonatomic) unsigned int localSSRC;
@property (nonatomic) id<VCMediaStreamNotification> notificationDelegate;
@property (nonatomic) id<RTCPReportProvider> 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