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

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 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             : #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_BLOCK_FRAMER_H_
      12             : #define WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_BLOCK_FRAMER_H_
      13             : 
      14             : #include <vector>
      15             : 
      16             : #include "webrtc/base/array_view.h"
      17             : #include "webrtc/base/constructormagic.h"
      18             : #include "webrtc/modules/audio_processing/aec3/aec3_constants.h"
      19             : 
      20             : namespace webrtc {
      21             : 
      22             : // Class for producing frames consisting of 1 or 2 subframes of 80 samples each
      23             : // from 64 sample blocks. The class is designed to work together with the
      24             : // FrameBlocker class which performs the reverse conversion. Used together with
      25             : // that, this class produces output frames are the same rate as frames are
      26             : // received by the FrameBlocker class. Note that the internal buffers will
      27             : // overrun if any other rate of packets insertion is used.
      28           0 : class BlockFramer {
      29             :  public:
      30             :   explicit BlockFramer(size_t num_bands);
      31             :   ~BlockFramer();
      32             :   // Adds a 64 sample block into the data that will form the next output frame.
      33             :   void InsertBlock(const std::vector<std::vector<float>>& block);
      34             :   // Adds a 64 sample block and extracts an 80 sample subframe.
      35             :   void InsertBlockAndExtractSubFrame(
      36             :       const std::vector<std::vector<float>>& block,
      37             :       std::vector<rtc::ArrayView<float>>* sub_frame);
      38             : 
      39             :  private:
      40             :   const size_t num_bands_;
      41             :   std::vector<std::vector<float>> buffer_;
      42             : 
      43             :   RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(BlockFramer);
      44             : };
      45             : }  // namespace webrtc
      46             : 
      47             : #endif  // WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_BLOCK_FRAMER_H_

Generated by: LCOV version 1.13