summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 07:55:27 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-16 07:55:27 +0000
commit18481d0c7073429b1fdeb6a4afa28e7b07472d60 (patch)
tree0c0e5e9b55cf01c07eaca5f96cee5854cb300631 /chrome/renderer
parent666f615d4428c5157e759141bdbe002691481d38 (diff)
downloadchromium_src-18481d0c7073429b1fdeb6a4afa28e7b07472d60.zip
chromium_src-18481d0c7073429b1fdeb6a4afa28e7b07472d60.tar.gz
chromium_src-18481d0c7073429b1fdeb6a4afa28e7b07472d60.tar.bz2
Cast: Simplify code path for RTCP sender report
Sending a RTCP sender report used to require a couple round trips of IPCs. This is much simplified in this change. AudioSender or VideoSender sends the latest known NTP time and corresponding RTP timestamp. Sends it to CastTransportSender, which appends the current packet ccount and octet count to form a sender report. There is no need for AudioSender and VideoSender to know the current packet count and octet count. Review URL: https://codereview.chromium.org/281453003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/media/cast_ipc_dispatcher.cc15
-rw-r--r--chrome/renderer/media/cast_transport_sender_ipc.cc29
-rw-r--r--chrome/renderer/media/cast_transport_sender_ipc.h17
3 files changed, 9 insertions, 52 deletions
diff --git a/chrome/renderer/media/cast_ipc_dispatcher.cc b/chrome/renderer/media/cast_ipc_dispatcher.cc
index 022d7ec..5be1075 100644
--- a/chrome/renderer/media/cast_ipc_dispatcher.cc
+++ b/chrome/renderer/media/cast_ipc_dispatcher.cc
@@ -50,7 +50,6 @@ bool CastIPCDispatcher::OnMessageReceived(const IPC::Message& message) {
IPC_BEGIN_MESSAGE_MAP(CastIPCDispatcher, message)
IPC_MESSAGE_HANDLER(CastMsg_ReceivedPacket, OnReceivedPacket)
IPC_MESSAGE_HANDLER(CastMsg_NotifyStatusChange, OnNotifyStatusChange)
- IPC_MESSAGE_HANDLER(CastMsg_RtpStatistics, OnRtpStatistics)
IPC_MESSAGE_HANDLER(CastMsg_RawEvents, OnRawEvents)
IPC_MESSAGE_UNHANDLED(handled = false);
IPC_END_MESSAGE_MAP();
@@ -100,20 +99,6 @@ void CastIPCDispatcher::OnNotifyStatusChange(
}
}
-void CastIPCDispatcher::OnRtpStatistics(
- int32 channel_id,
- bool audio,
- const media::cast::transport::RtcpSenderInfo& sender_info,
- base::TimeTicks time_sent,
- uint32 rtp_timestamp) {
- CastTransportSenderIPC* sender = id_map_.Lookup(channel_id);
- if (sender) {
- sender->OnRtpStatistics(audio, sender_info, time_sent, rtp_timestamp);
- } else {
- DVLOG(1) << "CastIPCDispatcher::OnRtpStatistics on non-existing channel.";
- }
-}
-
void CastIPCDispatcher::OnRawEvents(
int32 channel_id,
const std::vector<media::cast::PacketEvent>& packet_events) {
diff --git a/chrome/renderer/media/cast_transport_sender_ipc.cc b/chrome/renderer/media/cast_transport_sender_ipc.cc
index 1dd3906..cb5b741 100644
--- a/chrome/renderer/media/cast_transport_sender_ipc.cc
+++ b/chrome/renderer/media/cast_transport_sender_ipc.cc
@@ -63,7 +63,9 @@ void CastTransportSenderIPC::InsertCodedVideoFrame(
void CastTransportSenderIPC::SendRtcpFromRtpSender(
uint32 packet_type_flags,
- const media::cast::transport::RtcpSenderInfo& sender_info,
+ uint32 ntp_seconds,
+ uint32 ntp_fraction,
+ uint32 rtp_timestamp,
const media::cast::transport::RtcpDlrrReportBlock& dlrr,
uint32 sending_ssrc,
const std::string& c_name) {
@@ -71,10 +73,12 @@ void CastTransportSenderIPC::SendRtcpFromRtpSender(
data.packet_type_flags = packet_type_flags;
data.sending_ssrc = sending_ssrc;
data.c_name = c_name;
+ data.ntp_seconds = ntp_seconds;
+ data.ntp_fraction = ntp_fraction;
+ data.rtp_timestamp = rtp_timestamp;
Send(new CastHostMsg_SendRtcpFromRtpSender(
channel_id_,
data,
- sender_info,
dlrr));
}
@@ -86,17 +90,6 @@ void CastTransportSenderIPC::ResendPackets(
missing_packets));
}
-void CastTransportSenderIPC::SubscribeAudioRtpStatsCallback(
- const media::cast::transport::CastTransportRtpStatistics& callback) {
- audio_rtp_callback_ = callback;
-}
-
-void CastTransportSenderIPC::SubscribeVideoRtpStatsCallback(
- const media::cast::transport::CastTransportRtpStatistics& callback) {
- video_rtp_callback_ = callback;
-}
-
-
void CastTransportSenderIPC::OnReceivedPacket(
const media::cast::Packet& packet) {
if (!packet_callback_.is_null()) {
@@ -114,16 +107,6 @@ void CastTransportSenderIPC::OnNotifyStatusChange(
status_callback_.Run(status);
}
-void CastTransportSenderIPC::OnRtpStatistics(
- bool audio,
- const media::cast::transport::RtcpSenderInfo& sender_info,
- base::TimeTicks time_sent,
- uint32 rtp_timestamp) {
- const media::cast::transport::CastTransportRtpStatistics& callback =
- audio ? audio_rtp_callback_ : video_rtp_callback_;
- callback.Run(sender_info, time_sent, rtp_timestamp);
-}
-
void CastTransportSenderIPC::OnRawEvents(
const std::vector<media::cast::PacketEvent>& packet_events) {
raw_events_callback_.Run(packet_events);
diff --git a/chrome/renderer/media/cast_transport_sender_ipc.h b/chrome/renderer/media/cast_transport_sender_ipc.h
index 779e3d6..758f41a 100644
--- a/chrome/renderer/media/cast_transport_sender_ipc.h
+++ b/chrome/renderer/media/cast_transport_sender_ipc.h
@@ -41,7 +41,9 @@ class CastTransportSenderIPC
const base::TimeTicks& capture_time) OVERRIDE;
virtual void SendRtcpFromRtpSender(
uint32 packet_type_flags,
- const media::cast::transport::RtcpSenderInfo& sender_info,
+ uint32 ntp_seconds,
+ uint32 ntp_fraction,
+ uint32 rtp_timestamp,
const media::cast::transport::RtcpDlrrReportBlock& dlrr,
uint32 sending_ssrc,
const std::string& c_name) OVERRIDE;
@@ -49,21 +51,10 @@ class CastTransportSenderIPC
bool is_audio,
const media::cast::transport::MissingFramesAndPacketsMap& missing_packets)
OVERRIDE;
- virtual void SubscribeAudioRtpStatsCallback(
- const media::cast::transport::CastTransportRtpStatistics& callback)
- OVERRIDE;
- virtual void SubscribeVideoRtpStatsCallback(
- const media::cast::transport::CastTransportRtpStatistics& callback)
- OVERRIDE;
void OnReceivedPacket(const media::cast::transport::Packet& packet);
void OnNotifyStatusChange(
media::cast::transport::CastTransportStatus status);
- void OnRtpStatistics(
- bool audio,
- const media::cast::transport::RtcpSenderInfo& sender_info,
- base::TimeTicks time_sent,
- uint32 rtp_timestamp);
void OnRawEvents(const std::vector<media::cast::PacketEvent>& packet_events);
private:
@@ -72,8 +63,6 @@ class CastTransportSenderIPC
int32 channel_id_;
media::cast::transport::PacketReceiverCallback packet_callback_;
media::cast::transport::CastTransportStatusCallback status_callback_;
- media::cast::transport::CastTransportRtpStatistics audio_rtp_callback_;
- media::cast::transport::CastTransportRtpStatistics video_rtp_callback_;
media::cast::transport::BulkRawEventsCallback raw_events_callback_;
DISALLOW_COPY_AND_ASSIGN(CastTransportSenderIPC);