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

Unified Diff: media/cast/transport/cast_transport_sender_impl.cc

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 months 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/transport/cast_transport_sender_impl.cc
diff --git a/media/cast/transport/cast_transport_sender_impl.cc b/media/cast/transport/cast_transport_sender_impl.cc
deleted file mode 100644
index 1bf11bae25c9b6f38bcedaef862eec6c6b052b1e..0000000000000000000000000000000000000000
--- a/media/cast/transport/cast_transport_sender_impl.cc
+++ /dev/null
@@ -1,208 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/cast/transport/cast_transport_sender_impl.h"
-
-#include "base/single_thread_task_runner.h"
-#include "media/cast/transport/cast_transport_config.h"
-#include "media/cast/transport/cast_transport_defines.h"
-#include "net/base/net_util.h"
-
-namespace media {
-namespace cast {
-namespace transport {
-
-scoped_ptr<CastTransportSender> CastTransportSender::Create(
- net::NetLog* net_log,
- base::TickClock* clock,
- const net::IPEndPoint& remote_end_point,
- const CastTransportStatusCallback& status_callback,
- const BulkRawEventsCallback& raw_events_callback,
- base::TimeDelta raw_events_callback_interval,
- const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner) {
- return scoped_ptr<CastTransportSender>(
- new CastTransportSenderImpl(net_log,
- clock,
- remote_end_point,
- status_callback,
- raw_events_callback,
- raw_events_callback_interval,
- transport_task_runner.get(),
- NULL));
-}
-
-CastTransportSenderImpl::CastTransportSenderImpl(
- net::NetLog* net_log,
- base::TickClock* clock,
- const net::IPEndPoint& remote_end_point,
- const CastTransportStatusCallback& status_callback,
- const BulkRawEventsCallback& raw_events_callback,
- base::TimeDelta raw_events_callback_interval,
- const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
- PacketSender* external_transport)
- : clock_(clock),
- status_callback_(status_callback),
- transport_task_runner_(transport_task_runner),
- transport_(external_transport ? NULL
- : new UdpTransport(net_log,
- transport_task_runner,
- net::IPEndPoint(),
- remote_end_point,
- status_callback)),
- logging_(),
- pacer_(clock,
- &logging_,
- external_transport ? external_transport : transport_.get(),
- transport_task_runner),
- rtcp_builder_(&pacer_),
- raw_events_callback_(raw_events_callback) {
- DCHECK(clock_);
- if (!raw_events_callback_.is_null()) {
- DCHECK(raw_events_callback_interval > base::TimeDelta());
- event_subscriber_.reset(new SimpleEventSubscriber);
- logging_.AddRawEventSubscriber(event_subscriber_.get());
- raw_events_timer_.Start(FROM_HERE,
- raw_events_callback_interval,
- this,
- &CastTransportSenderImpl::SendRawEvents);
- }
- if (transport_) {
- // The default DSCP value for cast is AF41. Which gives it a higher
- // priority over other traffic.
- transport_->SetDscp(net::DSCP_AF41);
- }
-}
-
-CastTransportSenderImpl::~CastTransportSenderImpl() {
- if (event_subscriber_.get())
- logging_.RemoveRawEventSubscriber(event_subscriber_.get());
-}
-
-void CastTransportSenderImpl::InitializeAudio(
- const CastTransportRtpConfig& config) {
- LOG_IF(WARNING, config.aes_key.empty() || config.aes_iv_mask.empty())
- << "Unsafe to send audio with encryption DISABLED.";
- if (!audio_encryptor_.Initialize(config.aes_key, config.aes_iv_mask)) {
- status_callback_.Run(TRANSPORT_AUDIO_UNINITIALIZED);
- return;
- }
- audio_sender_.reset(new RtpSender(clock_, transport_task_runner_, &pacer_));
- if (audio_sender_->Initialize(config)) {
- pacer_.RegisterAudioSsrc(config.ssrc);
- status_callback_.Run(TRANSPORT_AUDIO_INITIALIZED);
- } else {
- audio_sender_.reset();
- status_callback_.Run(TRANSPORT_AUDIO_UNINITIALIZED);
- }
-}
-
-void CastTransportSenderImpl::InitializeVideo(
- const CastTransportRtpConfig& config) {
- LOG_IF(WARNING, config.aes_key.empty() || config.aes_iv_mask.empty())
- << "Unsafe to send video with encryption DISABLED.";
- if (!video_encryptor_.Initialize(config.aes_key, config.aes_iv_mask)) {
- status_callback_.Run(TRANSPORT_VIDEO_UNINITIALIZED);
- return;
- }
- video_sender_.reset(new RtpSender(clock_, transport_task_runner_, &pacer_));
- if (video_sender_->Initialize(config)) {
- pacer_.RegisterVideoSsrc(config.ssrc);
- status_callback_.Run(TRANSPORT_VIDEO_INITIALIZED);
- } else {
- video_sender_.reset();
- status_callback_.Run(TRANSPORT_VIDEO_UNINITIALIZED);
- }
-}
-
-void CastTransportSenderImpl::SetPacketReceiver(
- const PacketReceiverCallback& packet_receiver) {
- transport_->StartReceiving(packet_receiver);
-}
-
-namespace {
-void EncryptAndSendFrame(const EncodedFrame& frame,
- TransportEncryptionHandler* encryptor,
- RtpSender* sender) {
- if (encryptor->is_activated()) {
- EncodedFrame encrypted_frame;
- frame.CopyMetadataTo(&encrypted_frame);
- if (encryptor->Encrypt(frame.frame_id, frame.data, &encrypted_frame.data)) {
- sender->SendFrame(encrypted_frame);
- } else {
- LOG(ERROR) << "Encryption failed. Not sending frame with ID "
- << frame.frame_id;
- }
- } else {
- sender->SendFrame(frame);
- }
-}
-} // namespace
-
-void CastTransportSenderImpl::InsertCodedAudioFrame(
- const EncodedFrame& audio_frame) {
- DCHECK(audio_sender_) << "Audio sender uninitialized";
- EncryptAndSendFrame(audio_frame, &audio_encryptor_, audio_sender_.get());
-}
-
-void CastTransportSenderImpl::InsertCodedVideoFrame(
- const EncodedFrame& video_frame) {
- DCHECK(video_sender_) << "Video sender uninitialized";
- EncryptAndSendFrame(video_frame, &video_encryptor_, video_sender_.get());
-}
-
-void CastTransportSenderImpl::SendRtcpFromRtpSender(
- uint32 packet_type_flags,
- uint32 ntp_seconds,
- uint32 ntp_fraction,
- uint32 rtp_timestamp,
- const RtcpDlrrReportBlock& dlrr,
- uint32 sending_ssrc,
- const std::string& c_name) {
- RtcpSenderInfo sender_info;
- sender_info.ntp_seconds = ntp_seconds;
- sender_info.ntp_fraction = ntp_fraction;
- sender_info.rtp_timestamp = rtp_timestamp;
- if (audio_sender_ && audio_sender_->ssrc() == sending_ssrc) {
- sender_info.send_packet_count = audio_sender_->send_packet_count();
- sender_info.send_octet_count = audio_sender_->send_octet_count();
- } else if (video_sender_ && video_sender_->ssrc() == sending_ssrc) {
- sender_info.send_packet_count = video_sender_->send_packet_count();
- sender_info.send_octet_count = video_sender_->send_octet_count();
- } else {
- LOG(ERROR) << "Sending RTCP with an invalid SSRC.";
- return;
- }
- rtcp_builder_.SendRtcpFromRtpSender(
- packet_type_flags, sender_info, dlrr, sending_ssrc, c_name);
-}
-
-void CastTransportSenderImpl::ResendPackets(
- bool is_audio,
- const MissingFramesAndPacketsMap& missing_packets,
- bool cancel_rtx_if_not_in_list,
- base::TimeDelta dedupe_window) {
- if (is_audio) {
- DCHECK(audio_sender_) << "Audio sender uninitialized";
- audio_sender_->ResendPackets(missing_packets,
- cancel_rtx_if_not_in_list,
- dedupe_window);
- } else {
- DCHECK(video_sender_) << "Video sender uninitialized";
- video_sender_->ResendPackets(missing_packets,
- cancel_rtx_if_not_in_list,
- dedupe_window);
- }
-}
-
-void CastTransportSenderImpl::SendRawEvents() {
- DCHECK(event_subscriber_.get());
- DCHECK(!raw_events_callback_.is_null());
- std::vector<PacketEvent> packet_events;
- event_subscriber_->GetPacketEventsAndReset(&packet_events);
- raw_events_callback_.Run(packet_events);
-}
-
-} // namespace transport
-} // namespace cast
-} // namespace media
« no previous file with comments | « media/cast/transport/cast_transport_sender_impl.h ('k') | media/cast/transport/cast_transport_sender_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698