Line data Source code
1 : /*
2 : * Copyright (c) 2013 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_CODING_NETEQ_DECISION_LOGIC_FAX_H_
12 : #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_DECISION_LOGIC_FAX_H_
13 :
14 : #include "webrtc/base/constructormagic.h"
15 : #include "webrtc/modules/audio_coding/neteq/decision_logic.h"
16 : #include "webrtc/typedefs.h"
17 :
18 : namespace webrtc {
19 :
20 : // Implementation of the DecisionLogic class for playout modes kPlayoutFax and
21 : // kPlayoutOff.
22 0 : class DecisionLogicFax : public DecisionLogic {
23 : public:
24 : // Constructor.
25 0 : DecisionLogicFax(int fs_hz,
26 : size_t output_size_samples,
27 : NetEqPlayoutMode playout_mode,
28 : DecoderDatabase* decoder_database,
29 : const PacketBuffer& packet_buffer,
30 : DelayManager* delay_manager,
31 : BufferLevelFilter* buffer_level_filter,
32 : const TickTimer* tick_timer)
33 0 : : DecisionLogic(fs_hz,
34 : output_size_samples,
35 : playout_mode,
36 : decoder_database,
37 : packet_buffer,
38 : delay_manager,
39 : buffer_level_filter,
40 0 : tick_timer) {}
41 :
42 : protected:
43 : Operations GetDecisionSpecialized(const SyncBuffer& sync_buffer,
44 : const Expand& expand,
45 : size_t decoder_frame_length,
46 : const Packet* next_packet,
47 : Modes prev_mode,
48 : bool play_dtmf,
49 : bool* reset_decoder,
50 : size_t generated_noise_samples) override;
51 :
52 : private:
53 : RTC_DISALLOW_COPY_AND_ASSIGN(DecisionLogicFax);
54 : };
55 :
56 : } // namespace webrtc
57 : #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_DECISION_LOGIC_FAX_H_
|