blob: 78d69610d8ca99a8a5ead4d9c3febe40749b727d [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;
haysc148e3702017-01-25 10:02:20 -080017RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey;
brandtr340e3fd2017-02-28 15:43:10 -080018RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey;
tkchin4cd62212016-12-15 13:17:54 -080019RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key;
lliuu029f7cc2017-03-31 14:17:42 -070020RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey;
magjedb4ad6032016-12-17 23:50:17 -080021RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey;
peah8a8ebd92017-05-22 15:48:47 -070022RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey;
tkchin4f735d12016-03-03 17:54:28 -080023
tkchin4cd62212016-12-15 13:17:54 -080024/** The valid value for field trials above. */
25RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue;
26
lliuu029f7cc2017-03-31 14:17:42 -070027/** Use a string returned by RTCFieldTrialMedianSlopeFilterValue as the value. */
28RTC_EXTERN NSString * const kRTCFieldTrialMedianSlopeFilterKey;
29RTC_EXTERN NSString *RTCFieldTrialMedianSlopeFilterValue(
30 size_t windowSize, double thresholdGain);
31
32/** Use a string returned by RTCFieldTrialTrendlineFilterValue as the value. */
33RTC_EXTERN NSString * const kRTCFieldTrialTrendlineFilterKey;
34/** Returns a valid value for kRTCFieldTrialTrendlineFilterKey. */
35RTC_EXTERN NSString *RTCFieldTrialTrendlineFilterValue(
36 size_t windowSize, double smoothingCoeff, double thresholdGain);
37
tkchin4cd62212016-12-15 13:17:54 -080038/** Initialize field trials using a dictionary mapping field trial keys to their values. See above
39 * for valid keys and values.
40 * Must be called before any other call into WebRTC. See:
tkchin4f735d12016-03-03 17:54:28 -080041 * webrtc/system_wrappers/include/field_trial_default.h
42 */
tkchin4cd62212016-12-15 13:17:54 -080043RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials);