Expose VideoCodingModule's decoder stats up the stack from VCMTiming to chrome://webrtc-internals.
R=juberti@google.com, mikhal@webrtc.org, stefan@webrtc.org, wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2429004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5027 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -40,6 +40,7 @@ VideoReceiver::VideoReceiver(const int32_t id,
|
||||
_dualDecodedFrameCallback(_dualTiming, clock_),
|
||||
_frameTypeCallback(NULL),
|
||||
_receiveStatsCallback(NULL),
|
||||
_decoderTimingCallback(NULL),
|
||||
_packetRequestCallback(NULL),
|
||||
render_buffer_callback_(NULL),
|
||||
_decoder(NULL),
|
||||
@ -85,6 +86,30 @@ int32_t VideoReceiver::Process() {
|
||||
_receiveStatsCallback->OnReceiveStatisticsUpdate(bitRate, frameRate);
|
||||
}
|
||||
|
||||
if (_decoderTimingCallback != NULL) {
|
||||
int decode_ms;
|
||||
int max_decode_ms;
|
||||
int current_delay_ms;
|
||||
int target_delay_ms;
|
||||
int jitter_buffer_ms;
|
||||
int min_playout_delay_ms;
|
||||
int render_delay_ms;
|
||||
_timing.GetTimings(&decode_ms,
|
||||
&max_decode_ms,
|
||||
¤t_delay_ms,
|
||||
&target_delay_ms,
|
||||
&jitter_buffer_ms,
|
||||
&min_playout_delay_ms,
|
||||
&render_delay_ms);
|
||||
_decoderTimingCallback->OnDecoderTiming(decode_ms,
|
||||
max_decode_ms,
|
||||
current_delay_ms,
|
||||
target_delay_ms,
|
||||
jitter_buffer_ms,
|
||||
min_playout_delay_ms,
|
||||
render_delay_ms);
|
||||
}
|
||||
|
||||
// Size of render buffer.
|
||||
if (render_buffer_callback_) {
|
||||
int buffer_size_ms = _receiver.RenderBufferSizeMs();
|
||||
@ -255,6 +280,7 @@ int32_t VideoReceiver::InitializeReceiver() {
|
||||
_receiverInited = true;
|
||||
_frameTypeCallback = NULL;
|
||||
_receiveStatsCallback = NULL;
|
||||
_decoderTimingCallback = NULL;
|
||||
_packetRequestCallback = NULL;
|
||||
_keyRequestMode = kKeyOnError;
|
||||
_scheduleKeyRequest = false;
|
||||
@ -278,6 +304,13 @@ int32_t VideoReceiver::RegisterReceiveStatisticsCallback(
|
||||
return VCM_OK;
|
||||
}
|
||||
|
||||
int32_t VideoReceiver::RegisterDecoderTimingCallback(
|
||||
VCMDecoderTimingCallback* decoderTiming) {
|
||||
CriticalSectionScoped cs(process_crit_sect_.get());
|
||||
_decoderTimingCallback = decoderTiming;
|
||||
return VCM_OK;
|
||||
}
|
||||
|
||||
// Register an externally defined decoder/render object.
|
||||
// Can be a decoder only or a decoder coupled with a renderer.
|
||||
int32_t VideoReceiver::RegisterExternalDecoder(VideoDecoder* externalDecoder,
|
||||
|
Reference in New Issue
Block a user