blob: 9b7f41c5bcec4afd38a405e76b4becc55a270fb5 [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
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
11#import <Foundation/Foundation.h>
12
13#import "RTCMacros.h"
14
15/** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */
16RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey;
17RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey;
18RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey;
19RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey;
20RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey;
21RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey;
22RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key;
23RTC_EXTERN NSString * const kRTCFieldTrialImprovedBitrateEstimateKey;
24RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey;
25RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey;
26
27/** The valid value for field trials above. */
28RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue;
29
30/** 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
41/** 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:
44 * webrtc/system_wrappers/include/field_trial_default.h
45 */
46RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials);