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

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

Issue 2411183003: Removed RTPHeader from NetEq's Packet struct. (Closed)
Patch Set: Fixed naming of payloadType and sequenceNumber. Updated comments. Created 4 years, 2 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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 10 matching lines...) Expand all
21 #include "webrtc/modules/audio_coding/neteq/packet_buffer.h" 21 #include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
22 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h" 22 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
23 #include "webrtc/modules/include/module_common_types.h" 23 #include "webrtc/modules/include/module_common_types.h"
24 24
25 namespace webrtc { 25 namespace webrtc {
26 26
27 Operations DecisionLogicNormal::GetDecisionSpecialized( 27 Operations DecisionLogicNormal::GetDecisionSpecialized(
28 const SyncBuffer& sync_buffer, 28 const SyncBuffer& sync_buffer,
29 const Expand& expand, 29 const Expand& expand,
30 size_t decoder_frame_length, 30 size_t decoder_frame_length,
31 const RTPHeader* packet_header, 31 const Packet* next_packet,
32 Modes prev_mode, 32 Modes prev_mode,
33 bool play_dtmf, 33 bool play_dtmf,
34 bool* reset_decoder, 34 bool* reset_decoder,
35 size_t generated_noise_samples) { 35 size_t generated_noise_samples) {
36 assert(playout_mode_ == kPlayoutOn || playout_mode_ == kPlayoutStreaming); 36 assert(playout_mode_ == kPlayoutOn || playout_mode_ == kPlayoutStreaming);
37 // Guard for errors, to avoid getting stuck in error mode. 37 // Guard for errors, to avoid getting stuck in error mode.
38 if (prev_mode == kModeError) { 38 if (prev_mode == kModeError) {
39 if (!packet_header) { 39 if (!next_packet) {
40 return kExpand; 40 return kExpand;
41 } else { 41 } else {
42 return kUndefined; // Use kUndefined to flag for a reset. 42 return kUndefined; // Use kUndefined to flag for a reset.
43 } 43 }
44 } 44 }
45 45
46 uint32_t target_timestamp = sync_buffer.end_timestamp(); 46 uint32_t target_timestamp = sync_buffer.end_timestamp();
47 uint32_t available_timestamp = 0; 47 uint32_t available_timestamp = 0;
48 bool is_cng_packet = false; 48 bool is_cng_packet = false;
49 if (packet_header) { 49 if (next_packet) {
50 available_timestamp = packet_header->timestamp; 50 available_timestamp = next_packet->timestamp;
51 is_cng_packet = 51 is_cng_packet =
52 decoder_database_->IsComfortNoise(packet_header->payloadType); 52 decoder_database_->IsComfortNoise(next_packet->payload_type);
53 } 53 }
54 54
55 if (is_cng_packet) { 55 if (is_cng_packet) {
56 return CngOperation(prev_mode, target_timestamp, available_timestamp, 56 return CngOperation(prev_mode, target_timestamp, available_timestamp,
57 generated_noise_samples); 57 generated_noise_samples);
58 } 58 }
59 59
60 // Handle the case with no packet at all available (except maybe DTMF). 60 // Handle the case with no packet at all available (except maybe DTMF).
61 if (!packet_header) { 61 if (!next_packet) {
62 return NoPacket(play_dtmf); 62 return NoPacket(play_dtmf);
63 } 63 }
64 64
65 // If the expand period was very long, reset NetEQ since it is likely that the 65 // If the expand period was very long, reset NetEQ since it is likely that the
66 // sender was restarted. 66 // sender was restarted.
67 if (num_consecutive_expands_ > kReinitAfterExpands) { 67 if (num_consecutive_expands_ > kReinitAfterExpands) {
68 *reset_decoder = true; 68 *reset_decoder = true;
69 return kNormal; 69 return kNormal;
70 } 70 }
71 71
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 bool DecisionLogicNormal::PacketTooEarly(uint32_t timestamp_leap) const { 235 bool DecisionLogicNormal::PacketTooEarly(uint32_t timestamp_leap) const {
236 return timestamp_leap > 236 return timestamp_leap >
237 static_cast<uint32_t>(output_size_samples_ * num_consecutive_expands_); 237 static_cast<uint32_t>(output_size_samples_ * num_consecutive_expands_);
238 } 238 }
239 239
240 bool DecisionLogicNormal::MaxWaitForPacket() const { 240 bool DecisionLogicNormal::MaxWaitForPacket() const {
241 return num_consecutive_expands_ >= kMaxWaitForPacket; 241 return num_consecutive_expands_ >= kMaxWaitForPacket;
242 } 242 }
243 243
244 } // namespace webrtc 244 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698