blob: 3ce94ba937923f08e36d9fbe6558435d49caf7dc [file] [log] [blame]
tkchin4f735d12016-03-03 17:54:28 -08001/*
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Jon Hjelle3a2f7e02016-03-25 14:48:14 -070011#import <Foundation/Foundation.h>
12
tkchin9eeb6242016-04-27 01:54:20 -070013#import <WebRTC/RTCMacros.h>
tkchin8b577ed2016-04-19 10:04:41 -070014
tkchin4cd62212016-12-15 13:17:54 -080015/** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */
16RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey;
Alex Narest3ab1d262018-03-15 13:49:33 +010017RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey;
Alex Narest789221f2018-06-13 13:29:21 +020018RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey;
Alex Narest0bd7bf02018-06-27 12:35:52 +020019RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey;
haysc148e3702017-01-25 10:02:20 -080020RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey;
brandtr340e3fd2017-02-28 15:43:10 -080021RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey;
tkchin4cd62212016-12-15 13:17:54 -080022RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key;
lliuu029f7cc2017-03-31 14:17:42 -070023RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey;
magjedb4ad6032016-12-17 23:50:17 -080024RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey;
peah8a8ebd92017-05-22 15:48:47 -070025RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey;
tkchin4f735d12016-03-03 17:54:28 -080026
tkchin4cd62212016-12-15 13:17:54 -080027/** The valid value for field trials above. */
28RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue;
29
lliuu029f7cc2017-03-31 14:17:42 -070030/** Use a string returned by RTCFieldTrialMedianSlopeFilterValue as the value. */
31RTC_EXTERN NSString * const kRTCFieldTrialMedianSlopeFilterKey;
32RTC_EXTERN NSString *RTCFieldTrialMedianSlopeFilterValue(
33 size_t windowSize, double thresholdGain);
34
35/** Use a string returned by RTCFieldTrialTrendlineFilterValue as the value. */
36RTC_EXTERN NSString * const kRTCFieldTrialTrendlineFilterKey;
37/** Returns a valid value for kRTCFieldTrialTrendlineFilterKey. */
38RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue(
39 size_t windowSize, double smoothingCoeff, double thresholdGain);
40
tkchin4cd62212016-12-15 13:17:54 -080041/** Initialize field trials using a dictionary mapping field trial keys to their values. See above
42 * for valid keys and values.
43 * Must be called before any other call into WebRTC. See:
tkchin4f735d12016-03-03 17:54:28 -080044 * webrtc/system_wrappers/include/field_trial_default.h
45 */
tkchin4cd62212016-12-15 13:17:54 -080046RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials);