Remove the last getters from VideoReceiveStream stats.
R=stefan@webrtc.org
BUG=1667
Review URL: https://webrtc-codereview.appspot.com/32899004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7965 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/video_coding/main/interface/video_coding.h b/webrtc/modules/video_coding/main/interface/video_coding.h
index 41b16c2..94e8f9d 100644
--- a/webrtc/modules/video_coding/main/interface/video_coding.h
+++ b/webrtc/modules/video_coding/main/interface/video_coding.h
@@ -582,8 +582,6 @@
EncodedImageCallback* observer) = 0;
virtual void RegisterPostEncodeImageCallback(
EncodedImageCallback* post_encode_callback) = 0;
- virtual void RegisterReceiveFrameCountObserver(
- FrameCountObserver* frame_count_observer) = 0;
};
} // namespace webrtc
diff --git a/webrtc/modules/video_coding/main/interface/video_coding_defines.h b/webrtc/modules/video_coding/main/interface/video_coding_defines.h
index 1bf3d6f..976a176 100644
--- a/webrtc/modules/video_coding/main/interface/video_coding_defines.h
+++ b/webrtc/modules/video_coding/main/interface/video_coding_defines.h
@@ -109,8 +109,9 @@
// Callback class used for informing the user of the incoming bit rate and frame rate.
class VCMReceiveStatisticsCallback {
public:
- virtual int32_t OnReceiveStatisticsUpdate(const uint32_t bitRate,
- const uint32_t frameRate) = 0;
+ virtual void OnReceiveRatesUpdated(uint32_t bitRate, uint32_t frameRate) = 0;
+ virtual void OnDiscardedPacketsUpdated(int discarded_packets) = 0;
+ virtual void OnFrameCountsUpdated(const FrameCounts& frame_counts) = 0;
protected:
virtual ~VCMReceiveStatisticsCallback() {
diff --git a/webrtc/modules/video_coding/main/source/jitter_buffer.cc b/webrtc/modules/video_coding/main/source/jitter_buffer.cc
index 6da342d..2a590df 100644
--- a/webrtc/modules/video_coding/main/source/jitter_buffer.cc
+++ b/webrtc/modules/video_coding/main/source/jitter_buffer.cc
@@ -124,7 +124,7 @@
incomplete_frames_(),
last_decoded_state_(),
first_packet_since_reset_(true),
- frame_count_observer_(NULL),
+ stats_callback_(NULL),
incoming_frame_rate_(0),
incoming_frame_count_(0),
time_last_incoming_frame_count_(0),
@@ -570,6 +570,8 @@
if (packet.sizeBytes > 0) {
num_discarded_packets_++;
num_consecutive_old_packets_++;
+ if (stats_callback_ != NULL)
+ stats_callback_->OnDiscardedPacketsUpdated(num_discarded_packets_);
}
// Update last decoded sequence number if the packet arrived late and
// belongs to a frame with a timestamp equal to the last decoded
@@ -1040,10 +1042,10 @@
*timestamp_end = decodable_frames_.Back()->TimeStamp();
}
-void VCMJitterBuffer::RegisterFrameCountObserver(
- FrameCountObserver* frame_count_observer) {
+void VCMJitterBuffer::RegisterStatsCallback(
+ VCMReceiveStatisticsCallback* callback) {
CriticalSectionScoped cs(crit_sect_);
- frame_count_observer_ = frame_count_observer;
+ stats_callback_ = callback;
}
VCMFrameBuffer* VCMJitterBuffer::GetEmptyFrame() {
@@ -1118,8 +1120,8 @@
} else {
++receive_statistics_.delta_frames;
}
- if (frame_count_observer_ != NULL)
- frame_count_observer_->FrameCountUpdated(receive_statistics_, 0);
+ if (stats_callback_ != NULL)
+ stats_callback_->OnFrameCountsUpdated(receive_statistics_);
}
}
diff --git a/webrtc/modules/video_coding/main/source/jitter_buffer.h b/webrtc/modules/video_coding/main/source/jitter_buffer.h
index c2833f0..5ac2b7a 100644
--- a/webrtc/modules/video_coding/main/source/jitter_buffer.h
+++ b/webrtc/modules/video_coding/main/source/jitter_buffer.h
@@ -184,7 +184,7 @@
// corresponding to the start and end of the continuous complete buffer.
void RenderBufferSize(uint32_t* timestamp_start, uint32_t* timestamp_end);
- void RegisterFrameCountObserver(FrameCountObserver* observer);
+ void RegisterStatsCallback(VCMReceiveStatisticsCallback* callback);
private:
class SequenceNumberLessThan {
@@ -303,8 +303,8 @@
bool first_packet_since_reset_;
// Statistics.
+ VCMReceiveStatisticsCallback* stats_callback_ GUARDED_BY(crit_sect_);
// Frame counts for each type (key, delta, ...)
- FrameCountObserver* frame_count_observer_ GUARDED_BY(crit_sect_);
FrameCounts receive_statistics_;
// Latest calculated frame rates of incoming stream.
unsigned int incoming_frame_rate_;
diff --git a/webrtc/modules/video_coding/main/source/receiver.cc b/webrtc/modules/video_coding/main/source/receiver.cc
index a18488d..e1a4e2f 100644
--- a/webrtc/modules/video_coding/main/source/receiver.cc
+++ b/webrtc/modules/video_coding/main/source/receiver.cc
@@ -270,9 +270,9 @@
return render_end - render_start;
}
-void VCMReceiver::RegisterFrameCountObserver(
- FrameCountObserver* frame_count_observer) {
- jitter_buffer_.RegisterFrameCountObserver(frame_count_observer);
+void VCMReceiver::RegisterStatsCallback(
+ VCMReceiveStatisticsCallback* callback) {
+ jitter_buffer_.RegisterStatsCallback(callback);
}
} // namespace webrtc
diff --git a/webrtc/modules/video_coding/main/source/receiver.h b/webrtc/modules/video_coding/main/source/receiver.h
index bfe510c..068715f 100644
--- a/webrtc/modules/video_coding/main/source/receiver.h
+++ b/webrtc/modules/video_coding/main/source/receiver.h
@@ -79,7 +79,7 @@
// the time this function is called.
int RenderBufferSizeMs();
- void RegisterFrameCountObserver(FrameCountObserver* frame_count_observer);
+ void RegisterStatsCallback(VCMReceiveStatisticsCallback* callback);
private:
static int32_t GenerateReceiverId();
diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.cc b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
index 08e7e73..ac938e6 100644
--- a/webrtc/modules/video_coding/main/source/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
@@ -278,11 +278,6 @@
return receiver_->RegisterRenderBufferSizeCallback(callback);
}
- virtual void RegisterReceiveFrameCountObserver(
- FrameCountObserver* frame_count_observer) OVERRIDE {
- receiver_->RegisterFrameCountObserver(frame_count_observer);
- }
-
virtual int32_t Decode(uint16_t maxWaitTimeMs) OVERRIDE {
return receiver_->Decode(maxWaitTimeMs);
}
diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.h b/webrtc/modules/video_coding/main/source/video_coding_impl.h
index ed50ef4..3454e9c 100644
--- a/webrtc/modules/video_coding/main/source/video_coding_impl.h
+++ b/webrtc/modules/video_coding/main/source/video_coding_impl.h
@@ -182,7 +182,6 @@
int32_t Process();
void RegisterPreDecodeImageCallback(EncodedImageCallback* observer);
- void RegisterFrameCountObserver(FrameCountObserver* frame_count_observer);
protected:
int32_t Decode(const webrtc::VCMEncodedFrame& frame)
diff --git a/webrtc/modules/video_coding/main/source/video_receiver.cc b/webrtc/modules/video_coding/main/source/video_receiver.cc
index 3813205..f623c7d 100644
--- a/webrtc/modules/video_coding/main/source/video_receiver.cc
+++ b/webrtc/modules/video_coding/main/source/video_receiver.cc
@@ -74,7 +74,7 @@
uint32_t bitRate;
uint32_t frameRate;
_receiver.ReceiveStatistics(&bitRate, &frameRate);
- _receiveStatsCallback->OnReceiveStatisticsUpdate(bitRate, frameRate);
+ _receiveStatsCallback->OnReceiveRatesUpdated(bitRate, frameRate);
}
if (_decoderTimingCallback != NULL) {
@@ -284,6 +284,7 @@
int32_t VideoReceiver::RegisterReceiveStatisticsCallback(
VCMReceiveStatisticsCallback* receiveStats) {
CriticalSectionScoped cs(process_crit_sect_.get());
+ _receiver.RegisterStatsCallback(receiveStats);
_receiveStatsCallback = receiveStats;
return VCM_OK;
}
@@ -666,10 +667,6 @@
CriticalSectionScoped cs(_receiveCritSect);
pre_decode_image_callback_ = observer;
}
-void VideoReceiver::RegisterFrameCountObserver(
- FrameCountObserver* frame_count_observer) {
- _receiver.RegisterFrameCountObserver(frame_count_observer);
-}
} // namespace vcm
} // namespace webrtc