System/Library/PrivateFrameworks/AVConference.framework
AVCRateController.h
@class AVCStatisticsCollector, NSString, VCRateControlMediaController, VCRateSharingGroup, AVCRateControlFeedbackController, AVCBasebandCongestionDetector, VCRateControlServerBag, NSObject, VCNWConnectionCongestionDetector;
@protocol OS_nw_activity, VCRateControlAlgorithm, OS_dispatch_queue, AVCRateControllerDelegate;
@interface AVCRateController : NSObject <VCRateSharingClient> {
struct OpaqueFigCFWeakReference { } *_rateControllerDelegateWeak;
id<AVCRateControllerDelegate> _rateControllerDelegate;
struct tagVCRateControlAlgorithmConfig { unsigned int serverBagProfileNumber; unsigned int *tierBitrates; int initialTierIndex; int maxTierIndex; int minTierIndex; int softMaxTierIndex[2]; int lowestNonEmergencyTierIndex; int lowestNonEmergencyTierIndexWiFi; int lowestEffectiveBWETierIndex; int lowestTierIndexReactToNoServerActivity; int rampUpTierNumber; int rampDownTierNumber; int rampUpAdditionalTierAtInitial; int rampDownAdditionalTierAtInitial; int rampDownBurstyLossThreshold; int lowestTierForBurstyLossRampDown; int lowestTierToDisableRateLimited; double rampDownNOWRDThreshold; double rampDownNOWRDAccThreshold; double rampDownAggressiveNOWRDThreshold; double rampDownAggressiveNOWRDAccThreshold; double rampDownConstantOWRDDuration; double rampDownOvershootDuration; double rampDownOvershootNextTierRatio; double rampUpFrozenDuration; double rampUpSettleDuration; double rampUpOWRDThreshold; double rampUpNOWRDThreshold; double rampUpNOWRDAccThreshold; double rampUpOverBandwidthCalmDuration; double rampUpBlockedTimeout; int rampUpOverBandwidthTierNumber; int rampDownLossEventThreshold; int rampDownLossEventBadTrendThreshold; double rampDownLossEventThresholdRatio; double rampDownLossEventWindowDuration; double rampDownLossEventNOWRDThreshold; double rampUpFrozenPLRThreshold; double rampUpRateLimitedRatio; double unstableRateLimitedDuration; double congestionWaitDuration; double owrdWindowDuration; double owrdShortWindowDuration; double minimumNOWRDTimeDifference; double owrdInitialRampUpReadyDuration; unsigned int owrdHistorySize; unsigned int owrdMininumHistorySize; unsigned int fastRampDownBitrateRange; unsigned int fastRampUpBitrateRange; unsigned int consecutiveRampDownThresholdForCongestion; BOOL receivedBandwidthEstimationEnabled; BOOL basebandAdaptationEnabled; BOOL rateLimitedEnabled; BOOL randomRampUpFrozenDurationEnabled; BOOL oscillationAvoidanceEnabled; BOOL fastRampUpEnabled; BOOL blockRampUpInSaturatedNetworkEnabled; BOOL blockRampUpInBluetoothCoexEnabled; BOOL wifiEmergencyTiersEnabled; BOOL burstyTrafficEnabled; BOOL lowLatencyWANEnabled; BOOL rampDownToActualSendBitrate; int rampDownToActualSendBitrateMinTier; BOOL rampDownSuppressionEnabled; double rampDownSuppressionMinRTT; double rampDownSuppressionFactor; int fastRampUpHighestTier; double fastRampUpRTTRatio; int fastRampUpTierGap; double fastRampUpNetworkStableDuration; double networkSaturatedRTTToMinRTTRatio; double networkSaturatedOWRDToMinRTTRatio; int networkSaturatedPersistFeedbackNumber; double networkSaturatedRTTDecreasingThreshold; int oscillationAvoidanceTierChangeThreshold; int oscillationAvoidanceTiersHitThreshold; double oscillationAvoidanceDurationRatio; double oscillationAvoidanceDurationRatioAggressive; int stabilizationScheme; double rampDownNBDCDThreshold; double rampDownAggressiveNBDCDThreshold; double rampDownNormalizedQueuingDelayThreshold; double rampDownMediumQueuingDelayThreshold; double rampDownHighQueuingDelayThreshold; double rampDownEmergencyTierCoolDownTime; double rampDownWiFiEmergencyTierCoolDownTime; double rampUpNBDCDThreshold; double rampUpQueuingDelayThreshold; double rampUpNBDCDCoolDownTime; double rampUpAudioFractionCoolDownTime; double basebandRATSwitchCoolDownTime; double basebandAdaptationCrossTrafficRatio; double rampUpNetworkUnstableCoolDownTime; double autoResumeDurationAfterPaused; double pauseOffChannelHighRatio; double unpauseOffChannelLowRatio; BOOL oscillationDetectionEnabled; double oscillationCoolDownTime; int oscillationDeviationTierNumber; int oscillationDeviationCountThreshold; BOOL preventBasebandRampDownCloseToKeyFrame; int basebandRampDownSlowDownFactor; double networkUnstableRTTThreshold; double networkUnstablePLRThreshold; double packetLossRateThresholdInitial; double packetLossRateThresholdMin; double packetLossRateThresholdMax; double packetLossRateThresholdTarget; unsigned int rampUpUplinkBLERThreshold; unsigned int rampDownUplinkBLERThreshold; double rampUpUplinkBLERDuration; double rampDownUplinkBLERDuration; double rampDownECNCERatioLow; double rampDownECNCERatioMedium; double rampDownECNCERatioHigh; unsigned int rampDownECNBitrateHigh; unsigned int rampDownECNBitrateMedium; unsigned int rampDownECNBitrateLow; double ceRatioDurationToRTTFactor; double ceRatioDurationMin; double ceRatioDurationMax; int smartBrakeStrategy; } _algorithmConfigCache;
BOOL _didCacheAlgorithmConfig;
unsigned int _actualBitrate;
unsigned int _wifiTxMediaBitrate;
unsigned int _wifiNonAVCTxMediaBitrate;
unsigned int _initialBitrate;
double _initialRampUpStartTime;
BOOL _initialRampUpDeltaReported;
unsigned int _rateChangeCounter;
unsigned int _roundTripTimeMilliseconds;
double _packetLossPercentage;
double _packetLossPercentageVideo;
double _packetLossPercentageAudio;
double _sumPLR;
double _sumPLRVideo;
unsigned int _sumOverUtilizedBandwidth;
unsigned int _sumUnderUtilizedBandwidth;
unsigned int _sumOverShootSendBitrate;
unsigned int _sumUnderShootSendBitrate;
unsigned int _sumWorstRecentRTTInMillisecond;
unsigned int _sumWorstRecentBurstLoss;
unsigned int _countPeriodicTaskUpdate;
unsigned int _totalPacketsReceived;
unsigned int _totalPacketsSent;
unsigned int _totalBytesSent;
unsigned int _totalBytesReceived;
unsigned int _burstPacketLoss;
unsigned int _owrd;
BOOL _isNetworkCongested;
void *_logDump;
void *_logFeedbackDump;
void *_logBasebandDump;
void *_logNWDump;
void *_logBWEDump;
BOOL _isRateControlDumpFileEnabled;
BOOL _isBWEDumpFileEnabled;
NSString *_dumpID;
BOOL _isPeriodicLoggingEnabled;
BOOL _isBasebandEnabled;
BOOL _isForSimulation;
BOOL _isUplink;
BOOL _useExternalThread;
BOOL _didConfigured;
double _lastDefaultsReadTime;
int _forcedTargetBitrate;
int _forcedMaxBitrate;
int _forcedTargetBitrateFromTestMonitor;
int _forcedMaxBitrateFromTestMonitor;
struct OpaqueFigCFWeakReference { } *_reportingAgentWeak;
struct opaqueRTCReporting { } *_reportingAgentStrong;
int _reportingModuleID;
unsigned int _lastReportFlushedVideoPacketCount;
unsigned int _lastReportFlushedAudioPacketCount;
double _lastTimeTargetBitrateOvershootRecorded;
double _lastTimeUnexpectedLowTargetBitrateRecorded;
double _lastTimeUnexpectedRampUpFrozenRecorded;
unsigned int _lastRecordedTargetBitrate;
unsigned int _lastReportedBandwidthEstimation;
unsigned int _totalSuddenBandwidthDropCount;
unsigned int _totalMBLRampDownCount;
double _lastTimeSustainedHighUplinkPacketLossReported;
double _lastTimeSustainedHighDownlinkPacketLossReported;
double _lastTimeServerStatsActivityRecorded;
BOOL _isNoServerStatsIdleActivityReported;
unsigned int _remotePacketReceivedAudio;
unsigned int _remotePacketReceivedVideo;
unsigned int _remoteECT1ReceiveCount;
unsigned int _remoteCEReceiveCount;
VCRateControlServerBag *_serverBag;
int _btNotificationHandlerIndex;
NSObject<OS_nw_activity> *_parentNWActivity;
NSObject<OS_nw_activity> *_noServerStatsUplinkNwActivity;
NSObject<OS_nw_activity> *_noServerStatsDownlinkNwActivity;
BOOL _useNWConnectionNotification;
BOOL _useBTNotificationMonitor;
BOOL _isRegisteredForRateSharing;
struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _registrationLock;
struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _mutex;
VCRateSharingGroup *_sharingGroup;
BOOL _isECNEnabled;
BOOL _isCongestedForReport;
BOOL _isNetworkForcingECN;
unsigned int _lastReportedRateControlAlgorithmStatsIndex;
NSObject<OS_dispatch_queue> *_reportingQueue;
struct OpaqueFigCFWeakReferenceHolder { } *_weakSelf;
id<VCRateControlAlgorithm> _rateControlAlgorithm;
}
@property (retain, nonatomic) VCRateControlMediaController *mediaController;
@property (readonly, nonatomic) unsigned int targetBitrate;
@property (readonly, nonatomic) struct AVCRateControlConfig { unsigned int mode; unsigned int localRadioAccessTechnology; unsigned int remoteRadioAccessTechnology; unsigned int maxBitrate; unsigned int minBitrate; unsigned int initialBitrate; BOOL isTrafficBursty; struct tagVCRateControlAlgorithmConfig *algorithmConfig; unsigned int featureFlags; } configuration;
@property (nonatomic) unsigned int targetBitrateCap;
@property (nonatomic) unsigned int estimatedBandwidthCap;
@property (nonatomic) unsigned int expectedBitrate;
@property (readonly) id reportingAgent;
@property (readonly, nonatomic) BOOL isStarted;
@property (readonly, nonatomic) unsigned int nwNotificationProcessed;
@property (readonly, nonatomic) unsigned int maxTargetBitrate;
@property (readonly, nonatomic) unsigned int minTargetBitrate;
@property (readonly, nonatomic) struct tagVCRateControlAlgorithmConfig { unsigned int x0; unsigned int *x1; int x2; int x3; int x4; int x5[2]; int x6; int x7; int x8; int x9; int x10; int x11; int x12; int x13; int x14; int x15; int x16; double x17; double x18; double x19; double x20; double x21; double x22; double x23; double x24; double x25; double x26; double x27; double x28; double x29; double x30; int x31; int x32; int x33; double x34; double x35; double x36; double x37; double x38; double x39; double x40; double x41; double x42; double x43; double x44; unsigned int x45; unsigned int x46; unsigned int x47; unsigned int x48; unsigned int x49; BOOL x50; BOOL x51; BOOL x52; BOOL x53; BOOL x54; BOOL x55; BOOL x56; BOOL x57; BOOL x58; BOOL x59; BOOL x60; BOOL x61; int x62; BOOL x63; double x64; double x65; int x66; double x67; int x68; double x69; double x70; double x71; int x72; double x73; int x74; int x75; double x76; double x77; int x78; double x79; double x80; double x81; double x82; double x83; double x84; double x85; double x86; double x87; double x88; double x89; double x90; double x91; double x92; double x93; double x94; double x95; BOOL x96; double x97; int x98; int x99; BOOL x100; int x101; double x102; double x103; double x104; double x105; double x106; double x107; unsigned int x108; unsigned int x109; double x110; double x111; double x112; double x113; double x114; unsigned int x115; unsigned int x116; unsigned int x117; double x118; double x119; double x120; int x121; } algorithmConfig;
@property (retain, nonatomic) AVCStatisticsCollector *statisticsCollector;
@property (retain, nonatomic) AVCRateControlFeedbackController *feedbackController;
@property (retain, nonatomic) AVCBasebandCongestionDetector *basebandCongestionDetector;
@property (retain, nonatomic) VCNWConnectionCongestionDetector *nwConnectionCongestionDetector;
@property (nonatomic, getter=isPaused) BOOL paused;
@property (readonly, nonatomic) struct tagAVCRateControlExperimentConfig { int x0; int x1; unsigned int x2; } rateControlExperimentConfig;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
- (void)configure:(struct AVCRateControlConfig { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; BOOL x6; struct tagVCRateControlAlgorithmConfig *x7; unsigned int x8; })a0;
- (void)dealloc;
- (BOOL)start;
- (BOOL)stop;
- (void)resetStatsForPeriodicTaskReport;
- (void)accumulateStatsForPeriodicTaskUpdate;
- (void)cleanupNwActivity;
- (void)completeAndReleaseNwActivity:(id)a0 withReason:(int)a1;
- (void)configureWithOperatingMode:(int)a0 isLocalCellular:(BOOL)a1 localCellTech:(int)a2 isRemoteCellular:(BOOL)a3 remoteCellTech:(int)a4 bitrateCapKbps:(unsigned int)a5 isTrafficBursty:(BOOL)a6 featureFlags:(unsigned int)a7;
- (void)createBasebandLogDumpFile;
- (void)createNWConnectionLogDumpFile;
- (void)deregisterForRateSharing;
- (void)deregisterPeriodicTask;
- (void)getRealTimeStats:(struct __CFDictionary { } *)a0;
- (void)getRealTimeStatsForLowLatency:(struct __CFDictionary { } *)a0;
- (void)getRealTimeStatsForServerBasedRxOnly:(struct __CFDictionary { } *)a0;
- (void)getRealTimeStatsForServerBasedTxOnly:(struct __CFDictionary { } *)a0;
- (id)initWithDelegate:(id)a0 dumpID:(id)a1 isUplink:(BOOL)a2 reportingAgent:(id)a3;
- (id)initWithDelegate:(id)a0 params:(const struct tagVCRateControlParams { id x0; BOOL x1; BOOL x2; id x3; id x4; BOOL x5; id x6; BOOL x7; id x8; } *)a1;
- (unsigned int)loadDefaultVCRCFeatureFlags:(unsigned int)a0;
- (void)periodicTask:(void *)a0;
- (void)printRateControllerHealthPrint;
- (unsigned int)radioAccessTechnologyFromAVConferenceCellTech:(int)a0 isCellular:(BOOL)a1;
- (unsigned int)rateControlModeFromAVConferenceOperatingMode:(int)a0;
- (void)registerForRateSharing:(unsigned int)a0;
- (void)registerPeriodicTask;
- (void)releaseAllLogDumpFiles;
- (void)releaseLogDumpFile:(void **)a0;
- (void)setBtNotificationMonitor;
- (void)setShareProfile:(id)a0;
@end