| Index: media/cast/receiver/frame_receiver.cc
|
| diff --git a/media/cast/receiver/frame_receiver.cc b/media/cast/receiver/frame_receiver.cc
|
| index d7a12e68a26e9da1182e9b63955890274c04074a..281d7622c942e640a5521c56fd3127432e7bae94 100644
|
| --- a/media/cast/receiver/frame_receiver.cc
|
| +++ b/media/cast/receiver/frame_receiver.cc
|
| @@ -5,6 +5,7 @@
|
| #include "media/cast/receiver/frame_receiver.h"
|
|
|
| #include <algorithm>
|
| +#include <string>
|
|
|
| #include "base/big_endian.h"
|
| #include "base/bind.h"
|
| @@ -14,9 +15,19 @@
|
| #include "media/cast/cast_defines.h"
|
| #include "media/cast/cast_environment.h"
|
| #include "media/cast/constants.h"
|
| +#include "media/cast/net/rtcp/rtcp_utility.h"
|
|
|
| namespace {
|
| +
|
| const int kMinSchedulingDelayMs = 1;
|
| +
|
| +media::cast::RtcpTimeData CreateRtcpTimeData(base::TimeTicks now) {
|
| + media::cast::RtcpTimeData ret;
|
| + ret.timestamp = now;
|
| + media::cast::ConvertTimeTicksToNtp(now, &ret.ntp_seconds, &ret.ntp_fraction);
|
| + return ret;
|
| +}
|
| +
|
| } // namespace
|
|
|
| namespace media {
|
| @@ -36,18 +47,15 @@ FrameReceiver::FrameReceiver(
|
| rtp_timebase_(config.rtp_timebase),
|
| target_playout_delay_(
|
| base::TimeDelta::FromMilliseconds(config.rtp_max_delay_ms)),
|
| - expected_frame_duration_(
|
| - base::TimeDelta::FromSeconds(1) / config.target_frame_rate),
|
| + expected_frame_duration_(base::TimeDelta::FromSeconds(1) /
|
| + config.target_frame_rate),
|
| reports_are_scheduled_(false),
|
| framer_(cast_environment->Clock(),
|
| this,
|
| config.sender_ssrc,
|
| true,
|
| config.rtp_max_delay_ms * config.target_frame_rate / 1000),
|
| - rtcp_(RtcpCastMessageCallback(),
|
| - RtcpRttCallback(),
|
| - RtcpLogMessageCallback(),
|
| - cast_environment_->Clock(),
|
| + rtcp_(cast_environment_->Clock(),
|
| NULL,
|
| config.receiver_ssrc,
|
| config.sender_ssrc),
|
| @@ -76,7 +84,7 @@ void FrameReceiver::RequestEncodedFrame(
|
| bool FrameReceiver::ProcessPacket(scoped_ptr<Packet> packet) {
|
| DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
|
|
|
| - if (Rtcp::IsRtcpPacket(&packet->front(), packet->size())) {
|
| + if (IsRtcpPacket(&packet->front(), packet->size())) {
|
| rtcp_.IncomingRtcpPacket(&packet->front(), packet->size());
|
| } else {
|
| RtpCastHeader rtp_header;
|
| @@ -186,13 +194,9 @@ void FrameReceiver::CastFeedback(const RtcpCastMessage& cast_message) {
|
|
|
| ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
|
| event_subscriber_.GetRtcpEventsWithRedundancy(&rtcp_events);
|
| - transport_->SendRtcpFromRtpReceiver(rtcp_.GetLocalSsrc(),
|
| - rtcp_.GetRemoteSsrc(),
|
| - rtcp_.ConvertToNTPAndSave(now),
|
| - &cast_message,
|
| - target_playout_delay_,
|
| - &rtcp_events,
|
| - NULL);
|
| + transport_->SendRtcpFromRtpReceiver(
|
| + rtcp_.local_ssrc(), rtcp_.remote_ssrc(), CreateRtcpTimeData(now),
|
| + &cast_message, target_playout_delay_, &rtcp_events, NULL);
|
| }
|
|
|
| void FrameReceiver::EmitAvailableEncodedFrames() {
|
| @@ -344,13 +348,9 @@ void FrameReceiver::SendNextRtcpReport() {
|
| DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
|
| const base::TimeTicks now = cast_environment_->Clock()->NowTicks();
|
| RtpReceiverStatistics stats = stats_.GetStatistics();
|
| - transport_->SendRtcpFromRtpReceiver(rtcp_.GetLocalSsrc(),
|
| - rtcp_.GetRemoteSsrc(),
|
| - rtcp_.ConvertToNTPAndSave(now),
|
| - NULL,
|
| - base::TimeDelta(),
|
| - NULL,
|
| - &stats);
|
| + transport_->SendRtcpFromRtpReceiver(rtcp_.local_ssrc(), rtcp_.remote_ssrc(),
|
| + CreateRtcpTimeData(now), NULL,
|
| + base::TimeDelta(), NULL, &stats);
|
| ScheduleNextRtcpReport();
|
| }
|
|
|
|
|