LCOV - code coverage report
Current view: top level - media/webrtc/trunk/webrtc/common_audio - audio_ring_buffer.cc (source / functions) Hit Total Coverage
Test: output.info Lines: 0 36 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 8 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 2015 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             : #include "webrtc/common_audio/audio_ring_buffer.h"
      12             : 
      13             : #include "webrtc/base/checks.h"
      14             : #include "webrtc/common_audio/ring_buffer.h"
      15             : 
      16             : // This is a simple multi-channel wrapper over the ring_buffer.h C interface.
      17             : 
      18             : namespace webrtc {
      19             : 
      20           0 : AudioRingBuffer::AudioRingBuffer(size_t channels, size_t max_frames) {
      21           0 :   buffers_.reserve(channels);
      22           0 :   for (size_t i = 0; i < channels; ++i)
      23           0 :     buffers_.push_back(WebRtc_CreateBuffer(max_frames, sizeof(float)));
      24           0 : }
      25             : 
      26           0 : AudioRingBuffer::~AudioRingBuffer() {
      27           0 :   for (auto buf : buffers_)
      28           0 :     WebRtc_FreeBuffer(buf);
      29           0 : }
      30             : 
      31           0 : void AudioRingBuffer::Write(const float* const* data, size_t channels,
      32             :                             size_t frames) {
      33           0 :   RTC_DCHECK_EQ(buffers_.size(), channels);
      34           0 :   for (size_t i = 0; i < channels; ++i) {
      35           0 :     const size_t written = WebRtc_WriteBuffer(buffers_[i], data[i], frames);
      36           0 :     RTC_CHECK_EQ(written, frames);
      37             :   }
      38           0 : }
      39             : 
      40           0 : void AudioRingBuffer::Read(float* const* data, size_t channels, size_t frames) {
      41           0 :   RTC_DCHECK_EQ(buffers_.size(), channels);
      42           0 :   for (size_t i = 0; i < channels; ++i) {
      43             :     const size_t read =
      44           0 :         WebRtc_ReadBuffer(buffers_[i], nullptr, data[i], frames);
      45           0 :     RTC_CHECK_EQ(read, frames);
      46             :   }
      47           0 : }
      48             : 
      49           0 : size_t AudioRingBuffer::ReadFramesAvailable() const {
      50             :   // All buffers have the same amount available.
      51           0 :   return WebRtc_available_read(buffers_[0]);
      52             : }
      53             : 
      54           0 : size_t AudioRingBuffer::WriteFramesAvailable() const {
      55             :   // All buffers have the same amount available.
      56           0 :   return WebRtc_available_write(buffers_[0]);
      57             : }
      58             : 
      59           0 : void AudioRingBuffer::MoveReadPositionForward(size_t frames) {
      60           0 :   for (auto buf : buffers_) {
      61             :     const size_t moved =
      62           0 :         static_cast<size_t>(WebRtc_MoveReadPtr(buf, static_cast<int>(frames)));
      63           0 :     RTC_CHECK_EQ(moved, frames);
      64             :   }
      65           0 : }
      66             : 
      67           0 : void AudioRingBuffer::MoveReadPositionBackward(size_t frames) {
      68           0 :   for (auto buf : buffers_) {
      69           0 :     const size_t moved = static_cast<size_t>(
      70           0 :         -WebRtc_MoveReadPtr(buf, -static_cast<int>(frames)));
      71           0 :     RTC_CHECK_EQ(moved, frames);
      72             :   }
      73           0 : }
      74             : 
      75             : }  // namespace webrtc

Generated by: LCOV version 1.13