Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(739)

Unified Diff: media/cast/receiver/frame_receiver.cc

Issue 765643006: Cast: Make receiver use cast_transport (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix end2end test Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cast/receiver/frame_receiver.cc
diff --git a/media/cast/receiver/frame_receiver.cc b/media/cast/receiver/frame_receiver.cc
index 561e19f0b2686590e3e1fcd571e1a96ef0013db6..c1155d0c2b4c4a14c598b56bd4c276598de543ac 100644
--- a/media/cast/receiver/frame_receiver.cc
+++ b/media/cast/receiver/frame_receiver.cc
@@ -23,8 +23,9 @@ FrameReceiver::FrameReceiver(
const scoped_refptr<CastEnvironment>& cast_environment,
const FrameReceiverConfig& config,
EventMediaType event_media_type,
- PacedPacketSender* const packet_sender)
+ CastTransportSender* const transport)
: cast_environment_(cast_environment),
+ transport_(transport),
packet_parser_(config.incoming_ssrc, config.rtp_payload_type),
stats_(cast_environment->Clock()),
event_media_type_(event_media_type),
@@ -44,13 +45,14 @@ FrameReceiver::FrameReceiver(
RtcpRttCallback(),
RtcpLogMessageCallback(),
cast_environment_->Clock(),
- packet_sender,
+ NULL,
config.feedback_ssrc,
config.incoming_ssrc),
is_waiting_for_consecutive_frame_(false),
lip_sync_drift_(ClockDriftSmoother::GetDefaultTimeConstant()),
rtcp_interval_(base::TimeDelta::FromMilliseconds(config.rtcp_interval)),
weak_factory_(this) {
+ transport_->AddValidSsrc(config.incoming_ssrc);
DCHECK_GT(config.rtp_max_delay_ms, 0);
DCHECK_GT(config.max_frame_rate, 0);
decryptor_.Initialize(config.aes_key, config.aes_iv_mask);
@@ -100,15 +102,6 @@ bool FrameReceiver::ProcessPacket(scoped_ptr<Packet> packet) {
return true;
}
-// static
-bool FrameReceiver::ParseSenderSsrc(const uint8* packet,
- size_t length,
- uint32* ssrc) {
- base::BigEndianReader big_endian_reader(
- reinterpret_cast<const char*>(packet), length);
- return big_endian_reader.Skip(8) && big_endian_reader.ReadU32(ssrc);
-}
-
void FrameReceiver::ProcessParsedPacket(const RtpCastHeader& rtp_header,
const uint8* payload_data,
size_t payload_size) {
@@ -177,10 +170,15 @@ void FrameReceiver::CastFeedback(const RtcpCastMessage& cast_message) {
now, FRAME_ACK_SENT, event_media_type_,
rtp_timestamp, cast_message.ack_frame_id);
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events;
- event_subscriber_.GetRtcpEventsAndReset(&rtcp_events);
- rtcp_.SendRtcpFromRtpReceiver(&cast_message, target_playout_delay_,
- &rtcp_events, NULL);
+ 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);
}
void FrameReceiver::EmitAvailableEncodedFrames() {
@@ -336,8 +334,15 @@ void FrameReceiver::ScheduleNextRtcpReport() {
void FrameReceiver::SendNextRtcpReport() {
DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
+ const base::TimeTicks now = cast_environment_->Clock()->NowTicks();
RtpReceiverStatistics stats = stats_.GetStatistics();
- rtcp_.SendRtcpFromRtpReceiver(NULL, base::TimeDelta(), NULL, &stats);
+ transport_->SendRtcpFromRtpReceiver(rtcp_.GetLocalSsrc(),
+ rtcp_.GetRemoteSsrc(),
+ rtcp_.ConvertToNTPAndSave(now),
+ NULL,
+ base::TimeDelta(),
+ NULL,
+ &stats);
ScheduleNextRtcpReport();
}

Powered by Google App Engine
This is Rietveld 408576698