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

Side by Side Diff: webrtc/modules/audio_coding/neteq/neteq_impl.cc

Issue 1903153005: Add a TickTimer object to NetEqImpl (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@neteq-tick-timer
Patch Set: Rebase Created 4 years, 7 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
(...skipping 24 matching lines...) Expand all
35 #include "webrtc/modules/audio_coding/neteq/expand.h" 35 #include "webrtc/modules/audio_coding/neteq/expand.h"
36 #include "webrtc/modules/audio_coding/neteq/merge.h" 36 #include "webrtc/modules/audio_coding/neteq/merge.h"
37 #include "webrtc/modules/audio_coding/neteq/nack.h" 37 #include "webrtc/modules/audio_coding/neteq/nack.h"
38 #include "webrtc/modules/audio_coding/neteq/normal.h" 38 #include "webrtc/modules/audio_coding/neteq/normal.h"
39 #include "webrtc/modules/audio_coding/neteq/packet_buffer.h" 39 #include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
40 #include "webrtc/modules/audio_coding/neteq/packet.h" 40 #include "webrtc/modules/audio_coding/neteq/packet.h"
41 #include "webrtc/modules/audio_coding/neteq/payload_splitter.h" 41 #include "webrtc/modules/audio_coding/neteq/payload_splitter.h"
42 #include "webrtc/modules/audio_coding/neteq/post_decode_vad.h" 42 #include "webrtc/modules/audio_coding/neteq/post_decode_vad.h"
43 #include "webrtc/modules/audio_coding/neteq/preemptive_expand.h" 43 #include "webrtc/modules/audio_coding/neteq/preemptive_expand.h"
44 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h" 44 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
45 #include "webrtc/modules/audio_coding/neteq/tick_timer.h"
45 #include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h" 46 #include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
46 #include "webrtc/modules/include/module_common_types.h" 47 #include "webrtc/modules/include/module_common_types.h"
47 48
48 // Modify the code to obtain backwards bit-exactness. Once bit-exactness is no 49 // Modify the code to obtain backwards bit-exactness. Once bit-exactness is no
49 // longer required, this #define should be removed (and the code that it 50 // longer required, this #define should be removed (and the code that it
50 // enables). 51 // enables).
51 #define LEGACY_BITEXACT 52 #define LEGACY_BITEXACT
52 53
53 namespace webrtc { 54 namespace webrtc {
54 55
55 NetEqImpl::NetEqImpl(const NetEq::Config& config, 56 NetEqImpl::NetEqImpl(const NetEq::Config& config,
57 std::unique_ptr<TickTimer> tick_timer,
56 BufferLevelFilter* buffer_level_filter, 58 BufferLevelFilter* buffer_level_filter,
57 DecoderDatabase* decoder_database, 59 DecoderDatabase* decoder_database,
58 DelayManager* delay_manager, 60 DelayManager* delay_manager,
59 DelayPeakDetector* delay_peak_detector, 61 DelayPeakDetector* delay_peak_detector,
60 DtmfBuffer* dtmf_buffer, 62 DtmfBuffer* dtmf_buffer,
61 DtmfToneGenerator* dtmf_tone_generator, 63 DtmfToneGenerator* dtmf_tone_generator,
62 PacketBuffer* packet_buffer, 64 PacketBuffer* packet_buffer,
63 PayloadSplitter* payload_splitter, 65 PayloadSplitter* payload_splitter,
64 TimestampScaler* timestamp_scaler, 66 TimestampScaler* timestamp_scaler,
65 AccelerateFactory* accelerate_factory, 67 AccelerateFactory* accelerate_factory,
66 ExpandFactory* expand_factory, 68 ExpandFactory* expand_factory,
67 PreemptiveExpandFactory* preemptive_expand_factory, 69 PreemptiveExpandFactory* preemptive_expand_factory,
68 bool create_components) 70 bool create_components)
69 : buffer_level_filter_(buffer_level_filter), 71 : tick_timer_(std::move(tick_timer)),
72 buffer_level_filter_(buffer_level_filter),
70 decoder_database_(decoder_database), 73 decoder_database_(decoder_database),
71 delay_manager_(delay_manager), 74 delay_manager_(delay_manager),
72 delay_peak_detector_(delay_peak_detector), 75 delay_peak_detector_(delay_peak_detector),
73 dtmf_buffer_(dtmf_buffer), 76 dtmf_buffer_(dtmf_buffer),
74 dtmf_tone_generator_(dtmf_tone_generator), 77 dtmf_tone_generator_(dtmf_tone_generator),
75 packet_buffer_(packet_buffer), 78 packet_buffer_(packet_buffer),
76 payload_splitter_(payload_splitter), 79 payload_splitter_(payload_splitter),
77 timestamp_scaler_(timestamp_scaler), 80 timestamp_scaler_(timestamp_scaler),
78 vad_(new PostDecodeVad()), 81 vad_(new PostDecodeVad()),
79 expand_factory_(expand_factory), 82 expand_factory_(expand_factory),
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 delay_manager_->ResetPacketIatCount(); 784 delay_manager_->ResetPacketIatCount();
782 } 785 }
783 return 0; 786 return 0;
784 } 787 }
785 788
786 int NetEqImpl::GetAudioInternal(AudioFrame* audio_frame) { 789 int NetEqImpl::GetAudioInternal(AudioFrame* audio_frame) {
787 PacketList packet_list; 790 PacketList packet_list;
788 DtmfEvent dtmf_event; 791 DtmfEvent dtmf_event;
789 Operations operation; 792 Operations operation;
790 bool play_dtmf; 793 bool play_dtmf;
794 tick_timer_->Increment();
791 int return_value = GetDecision(&operation, &packet_list, &dtmf_event, 795 int return_value = GetDecision(&operation, &packet_list, &dtmf_event,
792 &play_dtmf); 796 &play_dtmf);
793 if (return_value != 0) { 797 if (return_value != 0) {
794 last_mode_ = kModeError; 798 last_mode_ = kModeError;
795 return return_value; 799 return return_value;
796 } 800 }
797 801
798 AudioDecoder::SpeechType speech_type; 802 AudioDecoder::SpeechType speech_type;
799 int length = 0; 803 int length = 0;
800 int decode_return_value = Decode(&packet_list, &operation, 804 int decode_return_value = Decode(&packet_list, &operation,
(...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after
2095 2099
2096 void NetEqImpl::CreateDecisionLogic() { 2100 void NetEqImpl::CreateDecisionLogic() {
2097 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_, 2101 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_,
2098 playout_mode_, 2102 playout_mode_,
2099 decoder_database_.get(), 2103 decoder_database_.get(),
2100 *packet_buffer_.get(), 2104 *packet_buffer_.get(),
2101 delay_manager_.get(), 2105 delay_manager_.get(),
2102 buffer_level_filter_.get())); 2106 buffer_level_filter_.get()));
2103 } 2107 }
2104 } // namespace webrtc 2108 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/neteq_impl.h ('k') | webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698