Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / webrtc / modules / audio_coding / neteq4 / decision_logic_unittest.cc
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 "gtest/gtest.h"
14 #include "webrtc/modules/audio_coding/neteq4/buffer_level_filter.h"
15 #include "webrtc/modules/audio_coding/neteq4/decoder_database.h"
16 #include "webrtc/modules/audio_coding/neteq4/decision_logic.h"
17 #include "webrtc/modules/audio_coding/neteq4/delay_manager.h"
18 #include "webrtc/modules/audio_coding/neteq4/delay_peak_detector.h"
19 #include "webrtc/modules/audio_coding/neteq4/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