Add one API for implementing Initial delay.
R=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1939004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4475 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq4/interface/neteq.h b/webrtc/modules/audio_coding/neteq4/interface/neteq.h
index f9be8b4..2766565 100644
--- a/webrtc/modules/audio_coding/neteq4/interface/neteq.h
+++ b/webrtc/modules/audio_coding/neteq4/interface/neteq.h
@@ -216,6 +216,12 @@
// Flushes both the packet buffer and the sync buffer.
virtual void FlushBuffers() = 0;
+ // Current usage of packet-buffer and it's limits.
+ virtual void PacketBufferStatistics(int* current_num_packets,
+ int* max_num_packets,
+ int* current_memory_size_bytes,
+ int* max_memory_size_bytes) const = 0;
+
protected:
NetEq() {}
diff --git a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
index 7c485c6..98cc19c 100644
--- a/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
+++ b/webrtc/modules/audio_coding/neteq4/neteq_impl.cc
@@ -587,7 +587,6 @@
int decode_return_value = Decode(&packet_list, &operation,
&length, &speech_type);
-
assert(vad_.get());
bool sid_frame_available =
(operation == kRfc3389Cng && !packet_list.empty());
@@ -1633,7 +1632,7 @@
if (!header) {
return -1;
}
- int32_t first_timestamp = header->timestamp;
+ uint32_t first_timestamp = header->timestamp;
int extracted_samples = 0;
// Packet extraction loop.
@@ -1791,4 +1790,12 @@
}
}
+void NetEqImpl::PacketBufferStatistics(int* current_num_packets,
+ int* max_num_packets,
+ int* current_memory_size_bytes,
+ int* max_memory_size_bytes) const {
+ packet_buffer_->BufferStat(current_num_packets, max_num_packets,
+ current_memory_size_bytes, max_memory_size_bytes);
+}
+
} // namespace webrtc
diff --git a/webrtc/modules/audio_coding/neteq4/neteq_impl.h b/webrtc/modules/audio_coding/neteq4/neteq_impl.h
index eff6115..cdc4164 100644
--- a/webrtc/modules/audio_coding/neteq4/neteq_impl.h
+++ b/webrtc/modules/audio_coding/neteq4/neteq_impl.h
@@ -164,6 +164,11 @@
// Flushes both the packet buffer and the sync buffer.
virtual void FlushBuffers();
+ virtual void PacketBufferStatistics(int* current_num_packets,
+ int* max_num_packets,
+ int* current_memory_size_bytes,
+ int* max_memory_size_bytes) const;
+
private:
static const int kOutputSizeMs = 10;
static const int kMaxFrameSize = 2880; // 60 ms @ 48 kHz.
diff --git a/webrtc/modules/audio_coding/neteq4/packet_buffer.cc b/webrtc/modules/audio_coding/neteq4/packet_buffer.cc
index 416661e..839c179 100644
--- a/webrtc/modules/audio_coding/neteq4/packet_buffer.cc
+++ b/webrtc/modules/audio_coding/neteq4/packet_buffer.cc
@@ -275,4 +275,14 @@
}
}
+void PacketBuffer::BufferStat(int* num_packest,
+ int* max_num_packets,
+ int* current_memory_bytes,
+ int* max_memory_bytes) const {
+ *num_packest = buffer_.size();
+ *max_num_packets = max_number_of_packets_;
+ *current_memory_bytes = current_memory_bytes_;
+ *max_memory_bytes = max_memory_bytes_;
+}
+
} // namespace webrtc
diff --git a/webrtc/modules/audio_coding/neteq4/packet_buffer.h b/webrtc/modules/audio_coding/neteq4/packet_buffer.h
index 3e203af..cf5e5ac 100644
--- a/webrtc/modules/audio_coding/neteq4/packet_buffer.h
+++ b/webrtc/modules/audio_coding/neteq4/packet_buffer.h
@@ -116,6 +116,11 @@
// The default value for |inc| is 1.
virtual void IncrementWaitingTimes(int inc = 1);
+ virtual void BufferStat(int* num_packest,
+ int* max_num_packets,
+ int* current_memory_bytes,
+ int* max_memory_bytes) const;
+
virtual int current_memory_bytes() const { return current_memory_bytes_; }
// Static method that properly deletes the first packet, and its payload