LCOV - code coverage report
Current view: top level - media/webrtc/trunk/webrtc/modules/audio_coding/neteq - comfort_noise.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 6 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 2012 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 WEBRTC_MODULES_AUDIO_CODING_NETEQ_COMFORT_NOISE_H_
      12             : #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_COMFORT_NOISE_H_
      13             : 
      14             : #include "webrtc/base/constructormagic.h"
      15             : #include "webrtc/modules/audio_coding/neteq/audio_multi_vector.h"
      16             : #include "webrtc/typedefs.h"
      17             : 
      18             : namespace webrtc {
      19             : 
      20             : // Forward declarations.
      21             : class DecoderDatabase;
      22             : class SyncBuffer;
      23             : struct Packet;
      24             : 
      25             : // This class acts as an interface to the CNG generator.
      26             : class ComfortNoise {
      27             :  public:
      28             :   enum ReturnCodes {
      29             :     kOK = 0,
      30             :     kUnknownPayloadType,
      31             :     kInternalError,
      32             :     kMultiChannelNotSupported
      33             :   };
      34             : 
      35           0 :   ComfortNoise(int fs_hz, DecoderDatabase* decoder_database,
      36             :                SyncBuffer* sync_buffer)
      37           0 :       : fs_hz_(fs_hz),
      38             :         first_call_(true),
      39           0 :         overlap_length_(5 * fs_hz_ / 8000),
      40             :         decoder_database_(decoder_database),
      41           0 :         sync_buffer_(sync_buffer) {
      42           0 :   }
      43             : 
      44             :   // Resets the state. Should be called before each new comfort noise period.
      45             :   void Reset();
      46             : 
      47             :   // Update the comfort noise generator with the parameters in |packet|.
      48             :   int UpdateParameters(const Packet& packet);
      49             : 
      50             :   // Generates |requested_length| samples of comfort noise and writes to
      51             :   // |output|. If this is the first in call after Reset (or first after creating
      52             :   // the object), it will also mix in comfort noise at the end of the
      53             :   // SyncBuffer object provided in the constructor.
      54             :   int Generate(size_t requested_length, AudioMultiVector* output);
      55             : 
      56             :   // Returns the last error code that was produced by the comfort noise
      57             :   // decoder. Returns 0 if no error has been encountered since the last reset.
      58           0 :   int internal_error_code() { return internal_error_code_; }
      59             : 
      60             :  private:
      61             :   int fs_hz_;
      62             :   bool first_call_;
      63             :   size_t overlap_length_;
      64             :   DecoderDatabase* decoder_database_;
      65             :   SyncBuffer* sync_buffer_;
      66             :   int internal_error_code_;
      67             :   RTC_DISALLOW_COPY_AND_ASSIGN(ComfortNoise);
      68             : };
      69             : 
      70             : }  // namespace webrtc
      71             : #endif  // WEBRTC_MODULES_AUDIO_CODING_NETEQ_COMFORT_NOISE_H_

Generated by: LCOV version 1.13