tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

audio_encoder_cng.h (1535B)


      1 /*
      2 *  Copyright (c) 2014 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 #ifndef MODULES_AUDIO_CODING_CODECS_CNG_AUDIO_ENCODER_CNG_H_
     12 #define MODULES_AUDIO_CODING_CODECS_CNG_AUDIO_ENCODER_CNG_H_
     13 
     14 #include <stddef.h>
     15 
     16 #include <memory>
     17 
     18 #include "api/audio_codecs/audio_encoder.h"
     19 #include "common_audio/vad/include/vad.h"
     20 
     21 namespace webrtc {
     22 
     23 struct AudioEncoderCngConfig {
     24  // Moveable, not copyable.
     25  AudioEncoderCngConfig();
     26  AudioEncoderCngConfig(AudioEncoderCngConfig&&);
     27  ~AudioEncoderCngConfig();
     28 
     29  bool IsOk() const;
     30 
     31  size_t num_channels = 1;
     32  int payload_type = 13;
     33  std::unique_ptr<AudioEncoder> speech_encoder;
     34  Vad::Aggressiveness vad_mode = Vad::kVadNormal;
     35  int sid_frame_interval_ms = 100;
     36  int num_cng_coefficients = 8;
     37  // The Vad pointer is mainly for testing. If a NULL pointer is passed, the
     38  // AudioEncoderCng creates (and destroys) a Vad object internally. If an
     39  // object is passed, the AudioEncoderCng assumes ownership of the Vad
     40  // object.
     41  Vad* vad = nullptr;
     42 };
     43 
     44 std::unique_ptr<AudioEncoder> CreateComfortNoiseEncoder(
     45    AudioEncoderCngConfig&& config);
     46 
     47 }  // namespace webrtc
     48 
     49 #endif  // MODULES_AUDIO_CODING_CODECS_CNG_AUDIO_ENCODER_CNG_H_