Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Side by Side Diff: webrtc/modules/audio_coding/neteq/normal.h

Issue 2763273003: Changed OLA window for neteq. Old code didnt work well with 48khz (Closed)
Patch Set: updated hash values for Android and win64 Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_ 11 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_ 12 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_
13 13
14 #include <string.h> // Access to size_t. 14 #include <string.h> // Access to size_t.
15 15
16 #include <vector> 16 #include <vector>
17 17
18 #include "webrtc/base/checks.h"
18 #include "webrtc/base/constructormagic.h" 19 #include "webrtc/base/constructormagic.h"
20 #include "webrtc/base/safe_conversions.h"
19 #include "webrtc/modules/audio_coding/neteq/audio_multi_vector.h" 21 #include "webrtc/modules/audio_coding/neteq/audio_multi_vector.h"
20 #include "webrtc/modules/audio_coding/neteq/defines.h" 22 #include "webrtc/modules/audio_coding/neteq/defines.h"
21 #include "webrtc/typedefs.h" 23 #include "webrtc/typedefs.h"
22 24
23 namespace webrtc { 25 namespace webrtc {
24 26
25 // Forward declarations. 27 // Forward declarations.
26 class BackgroundNoise; 28 class BackgroundNoise;
27 class DecoderDatabase; 29 class DecoderDatabase;
28 class Expand; 30 class Expand;
29 31
30 // This class provides the "Normal" DSP operation, that is performed when 32 // This class provides the "Normal" DSP operation, that is performed when
31 // there is no data loss, no need to stretch the timing of the signal, and 33 // there is no data loss, no need to stretch the timing of the signal, and
32 // no other "special circumstances" are at hand. 34 // no other "special circumstances" are at hand.
33 class Normal { 35 class Normal {
34 public: 36 public:
35 Normal(int fs_hz, DecoderDatabase* decoder_database, 37 Normal(int fs_hz,
38 DecoderDatabase* decoder_database,
36 const BackgroundNoise& background_noise, 39 const BackgroundNoise& background_noise,
37 Expand* expand) 40 Expand* expand)
38 : fs_hz_(fs_hz), 41 : fs_hz_(fs_hz),
39 decoder_database_(decoder_database), 42 decoder_database_(decoder_database),
40 background_noise_(background_noise), 43 background_noise_(background_noise),
41 expand_(expand) { 44 expand_(expand),
42 } 45 samples_per_ms_(rtc::CheckedDivExact(fs_hz_, 1000)),
46 default_win_slope_Q14_(
47 rtc::dchecked_cast<uint16_t>((1 << 14) / samples_per_ms_)) {}
43 48
44 virtual ~Normal() {} 49 virtual ~Normal() {}
45 50
46 // Performs the "Normal" operation. The decoder data is supplied in |input|, 51 // Performs the "Normal" operation. The decoder data is supplied in |input|,
47 // having |length| samples in total for all channels (interleaved). The 52 // having |length| samples in total for all channels (interleaved). The
48 // result is written to |output|. The number of channels allocated in 53 // result is written to |output|. The number of channels allocated in
49 // |output| defines the number of channels that will be used when 54 // |output| defines the number of channels that will be used when
50 // de-interleaving |input|. |last_mode| contains the mode used in the previous 55 // de-interleaving |input|. |last_mode| contains the mode used in the previous
51 // GetAudio call (i.e., not the current one), and |external_mute_factor| is 56 // GetAudio call (i.e., not the current one), and |external_mute_factor| is
52 // a pointer to the mute factor in the NetEqImpl class. 57 // a pointer to the mute factor in the NetEqImpl class.
53 int Process(const int16_t* input, size_t length, 58 int Process(const int16_t* input, size_t length,
54 Modes last_mode, 59 Modes last_mode,
55 int16_t* external_mute_factor_array, 60 int16_t* external_mute_factor_array,
56 AudioMultiVector* output); 61 AudioMultiVector* output);
57 62
58 private: 63 private:
59 int fs_hz_; 64 int fs_hz_;
60 DecoderDatabase* decoder_database_; 65 DecoderDatabase* decoder_database_;
61 const BackgroundNoise& background_noise_; 66 const BackgroundNoise& background_noise_;
62 Expand* expand_; 67 Expand* expand_;
68 const size_t samples_per_ms_;
69 const int16_t default_win_slope_Q14_;
63 70
64 RTC_DISALLOW_COPY_AND_ASSIGN(Normal); 71 RTC_DISALLOW_COPY_AND_ASSIGN(Normal);
65 }; 72 };
66 73
67 } // namespace webrtc 74 } // namespace webrtc
68 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_ 75 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NORMAL_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/neteq_unittest.cc ('k') | webrtc/modules/audio_coding/neteq/normal.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698