Home | History | Annotate | Download | only in neteq
      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 // Unit tests for DecisionLogic class and derived classes.
     12 
     13 #include "testing/gtest/include/gtest/gtest.h"
     14 #include "webrtc/modules/audio_coding/neteq/buffer_level_filter.h"
     15 #include "webrtc/modules/audio_coding/neteq/decoder_database.h"
     16 #include "webrtc/modules/audio_coding/neteq/decision_logic.h"
     17 #include "webrtc/modules/audio_coding/neteq/delay_manager.h"
     18 #include "webrtc/modules/audio_coding/neteq/delay_peak_detector.h"
     19 #include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
     20 
     21 namespace webrtc {
     22 
     23 TEST(DecisionLogic, CreateAndDestroy) {
     24   int fs_hz = 8000;
     25   int output_size_samples = fs_hz / 100;  // Samples per 10 ms.
     26   DecoderDatabase decoder_database;
     27   PacketBuffer packet_buffer(10);
     28   DelayPeakDetector delay_peak_detector;
     29   DelayManager delay_manager(240, &delay_peak_detector);
     30   BufferLevelFilter buffer_level_filter;
     31   DecisionLogic* logic = DecisionLogic::Create(fs_hz, output_size_samples,
     32                                                kPlayoutOn, &decoder_database,
     33                                                packet_buffer, &delay_manager,
     34                                                &buffer_level_filter);
     35   delete logic;
     36   logic = DecisionLogic::Create(fs_hz, output_size_samples,
     37                                 kPlayoutStreaming,
     38                                 &decoder_database,
     39                                 packet_buffer, &delay_manager,
     40                                 &buffer_level_filter);
     41   delete logic;
     42   logic = DecisionLogic::Create(fs_hz, output_size_samples,
     43                                 kPlayoutFax,
     44                                 &decoder_database,
     45                                 packet_buffer, &delay_manager,
     46                                 &buffer_level_filter);
     47   delete logic;
     48   logic = DecisionLogic::Create(fs_hz, output_size_samples,
     49                                 kPlayoutOff,
     50                                 &decoder_database,
     51                                 packet_buffer, &delay_manager,
     52                                 &buffer_level_filter);
     53   delete logic;
     54 }
     55 
     56 // TODO(hlundin): Write more tests.
     57 
     58 }  // namespace webrtc
     59