blob: effc470686f810b4015f23b51c4a4c1f391740eb [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
Mirko Bonadei17f48782018-09-28 08:51:10 +020041/** Initialize field trials using a dictionary mapping field trial keys to their
42 * values. See above for valid keys and values. Must be called before any other
43 * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020044 */
45RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary<NSString *, NSString *> *fieldTrials);