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
21namespace webrtc {
22
23TEST(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