/*
 *  Copyright 2016 The WebRTC Project Authors. All rights reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#import "WebRTC/RTCFieldTrials.h"

#include <memory>

#import "WebRTC/RTCLogging.h"

#include "webrtc/system_wrappers/include/field_trial_default.h"

static NSString * const kRTCEnableImprovedBitrateEstimateString =
   @"WebRTC-ImprovedBitrateEstimate/Enabled/";

static std::unique_ptr<char[]> gFieldTrialInitString;

void RTCInitFieldTrials(RTCFieldTrialOptions options) {
  NSMutableString *fieldTrialInitString = [NSMutableString string];
  size_t len = fieldTrialInitString.length + 1;
  gFieldTrialInitString.reset(new char[len]);

  if (options & RTCFieldTrialOptionsImprovedBitrateEstimate) {
    [fieldTrialInitString appendString:kRTCEnableImprovedBitrateEstimateString];
  }

  if (![fieldTrialInitString getCString:gFieldTrialInitString.get()
                              maxLength:len
                               encoding:NSUTF8StringEncoding]) {
    RTCLogError(@"Failed to convert field trial string.");
    return;
  }
  webrtc::field_trial::InitFieldTrialsFromString(gFieldTrialInitString.get());
}

/*
 *  Copyright 2016 The WebRTC Project Authors. All rights reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#import "WebRTC/RTCFieldTrials.h"

#include <memory>

#import "WebRTC/RTCLogging.h"

#include "webrtc/system_wrappers/include/field_trial_default.h"

static NSString * const kRTCEnableImprovedBitrateEstimateString =
   @"WebRTC-ImprovedBitrateEstimate/Enabled/";

static std::unique_ptr<char[]> gFieldTrialInitString;

void RTCInitFieldTrials(RTCFieldTrialOptions options) {
  NSMutableString *fieldTrialInitString = [NSMutableString string];
  if (options & RTCFieldTrialOptionsImprovedBitrateEstimate) {
    [fieldTrialInitString appendString:kRTCEnableImprovedBitrateEstimateString];
  }
  size_t len = fieldTrialInitString.length + 1;
  gFieldTrialInitString.reset(new char[len]);
  if (![fieldTrialInitString getCString:gFieldTrialInitString.get()
                              maxLength:len
                               encoding:NSUTF8StringEncoding]) {
    RTCLogError(@"Failed to convert field trial string.");
    return;
  }
  webrtc::field_trial::InitFieldTrialsFromString(gFieldTrialInitString.get());
}

Fix improved BWE field trial.
iOS: Fix improved BWE field trial.

BUG=webrtc:6664
NOTRY=True

Review-Url: https://codereview.webrtc.org/2488863002
Cr-Commit-Position: 972c6d2dc6dd5efdad1377c0d224e03eb8f276f7@{#14990}
