diff options
Diffstat (limited to 'video_engine/vie_rtp_rtcp_impl.cc')
-rw-r--r-- | video_engine/vie_rtp_rtcp_impl.cc | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/video_engine/vie_rtp_rtcp_impl.cc b/video_engine/vie_rtp_rtcp_impl.cc index 7d3c8ad2..edad270b 100644 --- a/video_engine/vie_rtp_rtcp_impl.cc +++ b/video_engine/vie_rtp_rtcp_impl.cc @@ -1178,16 +1178,39 @@ int ViERTP_RTCPImpl::DeregisterSendBitrateObserver( } int ViERTP_RTCPImpl::RegisterSendFrameCountObserver( - int channel, FrameCountObserver* callback) { - // TODO(sprang): Implement - return -1; + int video_channel, FrameCountObserver* callback) { + WEBRTC_TRACE(kTraceApiCall, kTraceVideo, + ViEId(shared_data_->instance_id(), video_channel), + "%s(channel: %d)", __FUNCTION__, video_channel); + ViEChannelManagerScoped cs(*(shared_data_->channel_manager())); + ViEChannel* vie_channel = cs.Channel(video_channel); + if (!vie_channel) { + WEBRTC_TRACE(kTraceError, kTraceVideo, + ViEId(shared_data_->instance_id(), video_channel), + "%s: Channel %d doesn't exist", __FUNCTION__, video_channel); + shared_data_->SetLastError(kViERtpRtcpInvalidChannelId); + return -1; + } + vie_channel->RegisterSendFrameCountObserver(callback); + return 0; } int ViERTP_RTCPImpl::DeregisterSendFrameCountObserver( - int channel, FrameCountObserver* callback) { - // TODO(sprang): Implement - return -1; + int video_channel, FrameCountObserver* callback) { + WEBRTC_TRACE(kTraceApiCall, kTraceVideo, + ViEId(shared_data_->instance_id(), video_channel), + "%s(channel: %d)", __FUNCTION__, video_channel); + ViEChannelManagerScoped cs(*(shared_data_->channel_manager())); + ViEChannel* vie_channel = cs.Channel(video_channel); + if (!vie_channel) { + WEBRTC_TRACE(kTraceError, kTraceVideo, + ViEId(shared_data_->instance_id(), video_channel), + "%s: Channel %d doesn't exist", __FUNCTION__, video_channel); + shared_data_->SetLastError(kViERtpRtcpInvalidChannelId); + return -1; + } + vie_channel->RegisterSendFrameCountObserver(NULL); + return 0; } - } // namespace webrtc |