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

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

Issue 1429943004: AcmReceiver::InsertPacket and NetEq::InsertPacket: Take ArrayView arguments (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix log message Created 5 years, 1 month 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 PreemptiveExpandFactory* preemptive_expand_factory, 72 PreemptiveExpandFactory* preemptive_expand_factory,
73 bool create_components = true); 73 bool create_components = true);
74 74
75 ~NetEqImpl() override; 75 ~NetEqImpl() override;
76 76
77 // Inserts a new packet into NetEq. The |receive_timestamp| is an indication 77 // Inserts a new packet into NetEq. The |receive_timestamp| is an indication
78 // of the time when the packet was received, and should be measured with 78 // of the time when the packet was received, and should be measured with
79 // the same tick rate as the RTP timestamp of the current payload. 79 // the same tick rate as the RTP timestamp of the current payload.
80 // Returns 0 on success, -1 on failure. 80 // Returns 0 on success, -1 on failure.
81 int InsertPacket(const WebRtcRTPHeader& rtp_header, 81 int InsertPacket(const WebRtcRTPHeader& rtp_header,
82 const uint8_t* payload, 82 rtc::ArrayView<const uint8_t> payload,
83 size_t length_bytes,
84 uint32_t receive_timestamp) override; 83 uint32_t receive_timestamp) override;
85 84
86 // Inserts a sync-packet into packet queue. Sync-packets are decoded to 85 // Inserts a sync-packet into packet queue. Sync-packets are decoded to
87 // silence and are intended to keep AV-sync intact in an event of long packet 86 // silence and are intended to keep AV-sync intact in an event of long packet
88 // losses when Video NACK is enabled but Audio NACK is not. Clients of NetEq 87 // losses when Video NACK is enabled but Audio NACK is not. Clients of NetEq
89 // might insert sync-packet when they observe that buffer level of NetEq is 88 // might insert sync-packet when they observe that buffer level of NetEq is
90 // decreasing below a certain threshold, defined by the application. 89 // decreasing below a certain threshold, defined by the application.
91 // Sync-packets should have the same payload type as the last audio payload 90 // Sync-packets should have the same payload type as the last audio payload
92 // type, i.e. they cannot have DTMF or CNG payload type, nor a codec change 91 // type, i.e. they cannot have DTMF or CNG payload type, nor a codec change
93 // can be implied by inserting a sync-packet. 92 // can be implied by inserting a sync-packet.
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 protected: 199 protected:
201 static const int kOutputSizeMs = 10; 200 static const int kOutputSizeMs = 10;
202 static const size_t kMaxFrameSize = 2880; // 60 ms @ 48 kHz. 201 static const size_t kMaxFrameSize = 2880; // 60 ms @ 48 kHz.
203 // TODO(hlundin): Provide a better value for kSyncBufferSize. 202 // TODO(hlundin): Provide a better value for kSyncBufferSize.
204 static const size_t kSyncBufferSize = 2 * kMaxFrameSize; 203 static const size_t kSyncBufferSize = 2 * kMaxFrameSize;
205 204
206 // Inserts a new packet into NetEq. This is used by the InsertPacket method 205 // Inserts a new packet into NetEq. This is used by the InsertPacket method
207 // above. Returns 0 on success, otherwise an error code. 206 // above. Returns 0 on success, otherwise an error code.
208 // TODO(hlundin): Merge this with InsertPacket above? 207 // TODO(hlundin): Merge this with InsertPacket above?
209 int InsertPacketInternal(const WebRtcRTPHeader& rtp_header, 208 int InsertPacketInternal(const WebRtcRTPHeader& rtp_header,
210 const uint8_t* payload, 209 rtc::ArrayView<const uint8_t> payload,
211 size_t length_bytes,
212 uint32_t receive_timestamp, 210 uint32_t receive_timestamp,
213 bool is_sync_packet) 211 bool is_sync_packet)
214 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 212 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
215 213
216 // Delivers 10 ms of audio data. The data is written to |output|, which can 214 // Delivers 10 ms of audio data. The data is written to |output|, which can
217 // hold (at least) |max_length| elements. The number of channels that were 215 // hold (at least) |max_length| elements. The number of channels that were
218 // written to the output is provided in the output variable |num_channels|, 216 // written to the output is provided in the output variable |num_channels|,
219 // and each channel contains |samples_per_channel| elements. If more than one 217 // and each channel contains |samples_per_channel| elements. If more than one
220 // channel is written, the samples are interleaved. 218 // channel is written, the samples are interleaved.
221 // Returns 0 on success, otherwise an error code. 219 // Returns 0 on success, otherwise an error code.
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 bool enable_fast_accelerate_ GUARDED_BY(crit_sect_); 396 bool enable_fast_accelerate_ GUARDED_BY(crit_sect_);
399 rtc::scoped_ptr<Nack> nack_ GUARDED_BY(crit_sect_); 397 rtc::scoped_ptr<Nack> nack_ GUARDED_BY(crit_sect_);
400 bool nack_enabled_ GUARDED_BY(crit_sect_); 398 bool nack_enabled_ GUARDED_BY(crit_sect_);
401 399
402 private: 400 private:
403 RTC_DISALLOW_COPY_AND_ASSIGN(NetEqImpl); 401 RTC_DISALLOW_COPY_AND_ASSIGN(NetEqImpl);
404 }; 402 };
405 403
406 } // namespace webrtc 404 } // namespace webrtc
407 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NETEQ_IMPL_H_ 405 #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