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

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

Issue 1769883002: Remove the type parameter to NetEq::GetAudio (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@acm-rec-delete-vad
Patch Set: After review Created 4 years, 9 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 class RandomVector; 50 class RandomVector;
51 class SyncBuffer; 51 class SyncBuffer;
52 class TimestampScaler; 52 class TimestampScaler;
53 struct AccelerateFactory; 53 struct AccelerateFactory;
54 struct DtmfEvent; 54 struct DtmfEvent;
55 struct ExpandFactory; 55 struct ExpandFactory;
56 struct PreemptiveExpandFactory; 56 struct PreemptiveExpandFactory;
57 57
58 class NetEqImpl : public webrtc::NetEq { 58 class NetEqImpl : public webrtc::NetEq {
59 public: 59 public:
60 enum class OutputType {
61 kNormalSpeech,
62 kPLC,
63 kCNG,
64 kPLCCNG,
65 kVadPassive
66 };
67
60 // Creates a new NetEqImpl object. The object will assume ownership of all 68 // Creates a new NetEqImpl object. The object will assume ownership of all
61 // injected dependencies, and will delete them when done. 69 // injected dependencies, and will delete them when done.
62 NetEqImpl(const NetEq::Config& config, 70 NetEqImpl(const NetEq::Config& config,
63 BufferLevelFilter* buffer_level_filter, 71 BufferLevelFilter* buffer_level_filter,
64 DecoderDatabase* decoder_database, 72 DecoderDatabase* decoder_database,
65 DelayManager* delay_manager, 73 DelayManager* delay_manager,
66 DelayPeakDetector* delay_peak_detector, 74 DelayPeakDetector* delay_peak_detector,
67 DtmfBuffer* dtmf_buffer, 75 DtmfBuffer* dtmf_buffer,
68 DtmfToneGenerator* dtmf_tone_generator, 76 DtmfToneGenerator* dtmf_tone_generator,
69 PacketBuffer* packet_buffer, 77 PacketBuffer* packet_buffer,
(...skipping 19 matching lines...) Expand all
89 // losses when Video NACK is enabled but Audio NACK is not. Clients of NetEq 97 // losses when Video NACK is enabled but Audio NACK is not. Clients of NetEq
90 // might insert sync-packet when they observe that buffer level of NetEq is 98 // might insert sync-packet when they observe that buffer level of NetEq is
91 // decreasing below a certain threshold, defined by the application. 99 // decreasing below a certain threshold, defined by the application.
92 // Sync-packets should have the same payload type as the last audio payload 100 // Sync-packets should have the same payload type as the last audio payload
93 // type, i.e. they cannot have DTMF or CNG payload type, nor a codec change 101 // type, i.e. they cannot have DTMF or CNG payload type, nor a codec change
94 // can be implied by inserting a sync-packet. 102 // can be implied by inserting a sync-packet.
95 // Returns kOk on success, kFail on failure. 103 // Returns kOk on success, kFail on failure.
96 int InsertSyncPacket(const WebRtcRTPHeader& rtp_header, 104 int InsertSyncPacket(const WebRtcRTPHeader& rtp_header,
97 uint32_t receive_timestamp) override; 105 uint32_t receive_timestamp) override;
98 106
99 int GetAudio(AudioFrame* audio_frame, NetEqOutputType* type) override; 107 int GetAudio(AudioFrame* audio_frame) override;
100 108
101 int RegisterPayloadType(NetEqDecoder codec, 109 int RegisterPayloadType(NetEqDecoder codec,
102 const std::string& codec_name, 110 const std::string& codec_name,
103 uint8_t rtp_payload_type) override; 111 uint8_t rtp_payload_type) override;
104 112
105 int RegisterExternalDecoder(AudioDecoder* decoder, 113 int RegisterExternalDecoder(AudioDecoder* decoder,
106 NetEqDecoder codec, 114 NetEqDecoder codec,
107 const std::string& codec_name, 115 const std::string& codec_name,
108 uint8_t rtp_payload_type, 116 uint8_t rtp_payload_type,
109 int sample_rate_hz) override; 117 int sample_rate_hz) override;
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 int ExtractPackets(size_t required_samples, PacketList* packet_list) 311 int ExtractPackets(size_t required_samples, PacketList* packet_list)
304 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 312 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
305 313
306 // Resets various variables and objects to new values based on the sample rate 314 // Resets various variables and objects to new values based on the sample rate
307 // |fs_hz| and |channels| number audio channels. 315 // |fs_hz| and |channels| number audio channels.
308 void SetSampleRateAndChannels(int fs_hz, size_t channels) 316 void SetSampleRateAndChannels(int fs_hz, size_t channels)
309 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 317 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
310 318
311 // Returns the output type for the audio produced by the latest call to 319 // Returns the output type for the audio produced by the latest call to
312 // GetAudio(). 320 // GetAudio().
313 NetEqOutputType LastOutputType() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 321 OutputType LastOutputType() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
314 322
315 // Updates Expand and Merge. 323 // Updates Expand and Merge.
316 virtual void UpdatePlcComponents(int fs_hz, size_t channels) 324 virtual void UpdatePlcComponents(int fs_hz, size_t channels)
317 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 325 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
318 326
319 // Creates DecisionLogic object with the mode given by |playout_mode_|. 327 // Creates DecisionLogic object with the mode given by |playout_mode_|.
320 virtual void CreateDecisionLogic() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 328 virtual void CreateDecisionLogic() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
321 329
322 rtc::CriticalSection crit_sect_; 330 rtc::CriticalSection crit_sect_;
323 const std::unique_ptr<BufferLevelFilter> buffer_level_filter_ 331 const std::unique_ptr<BufferLevelFilter> buffer_level_filter_
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 bool nack_enabled_ GUARDED_BY(crit_sect_); 389 bool nack_enabled_ GUARDED_BY(crit_sect_);
382 AudioFrame::VADActivity last_vad_activity_ GUARDED_BY(crit_sect_) = 390 AudioFrame::VADActivity last_vad_activity_ GUARDED_BY(crit_sect_) =
383 AudioFrame::kVadPassive; 391 AudioFrame::kVadPassive;
384 392
385 private: 393 private:
386 RTC_DISALLOW_COPY_AND_ASSIGN(NetEqImpl); 394 RTC_DISALLOW_COPY_AND_ASSIGN(NetEqImpl);
387 }; 395 };
388 396
389 } // namespace webrtc 397 } // namespace webrtc
390 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NETEQ_IMPL_H_ 398 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NETEQ_IMPL_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc ('k') | webrtc/modules/audio_coding/neteq/neteq_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698