X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmedia%2Fcast%2Ftransport%2Fcast_transport_sender_impl.cc;h=fd7139993c6fc0638e9c17cb02d17643e7b398f6;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=b27e2e9bdac58dae68a7b583fe56a78648e5cebd;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/media/cast/transport/cast_transport_sender_impl.cc b/src/media/cast/transport/cast_transport_sender_impl.cc index b27e2e9..fd71399 100644 --- a/src/media/cast/transport/cast_transport_sender_impl.cc +++ b/src/media/cast/transport/cast_transport_sender_impl.cc @@ -4,7 +4,7 @@ #include "media/cast/transport/cast_transport_sender_impl.h" -#include "base/task_runner.h" +#include "base/single_thread_task_runner.h" #include "media/cast/transport/cast_transport_config.h" #include "media/cast/transport/cast_transport_defines.h" @@ -16,20 +16,28 @@ CastTransportSender* CastTransportSender::CreateCastTransportSender( base::TickClock* clock, const CastTransportConfig& config, const CastTransportStatusCallback& status_callback, - const scoped_refptr& transport_task_runner) { - return new CastTransportSenderImpl(clock, config, status_callback, - transport_task_runner.get()); + const scoped_refptr& transport_task_runner) { + return new CastTransportSenderImpl( + clock, config, status_callback, transport_task_runner.get(), NULL); } CastTransportSenderImpl::CastTransportSenderImpl( base::TickClock* clock, const CastTransportConfig& config, const CastTransportStatusCallback& status_callback, - const scoped_refptr& transport_task_runner) - : pacer_(clock, &config, NULL, transport_task_runner, status_callback), + const scoped_refptr& transport_task_runner, + PacketSender* external_transport) + : transport_(external_transport ? NULL + : new UdpTransport(transport_task_runner, + config.local_endpoint, + config.receiver_endpoint, + status_callback)), + pacer_(clock, + external_transport ? external_transport : transport_.get(), + transport_task_runner), rtcp_builder_(&pacer_), - audio_sender_(config, clock, &pacer_), - video_sender_(config, clock, &pacer_) { + audio_sender_(config, clock, transport_task_runner, &pacer_), + video_sender_(config, clock, transport_task_runner, &pacer_) { if (audio_sender_.initialized() && video_sender_.initialized()) { status_callback.Run(TRANSPORT_INITIALIZED); } else { @@ -37,12 +45,11 @@ CastTransportSenderImpl::CastTransportSenderImpl( } } -CastTransportSenderImpl::~CastTransportSenderImpl() { -} +CastTransportSenderImpl::~CastTransportSenderImpl() {} void CastTransportSenderImpl::SetPacketReceiver( - scoped_refptr packet_receiver) { - pacer_.SetPacketReceiver(packet_receiver); + const PacketReceiverCallback& packet_receiver) { + transport_->StartReceiving(packet_receiver); } void CastTransportSenderImpl::InsertCodedAudioFrame( @@ -64,16 +71,13 @@ void CastTransportSenderImpl::SendRtcpFromRtpSender( const RtcpSenderLogMessage& sender_log, uint32 sending_ssrc, const std::string& c_name) { - rtcp_builder_.SendRtcpFromRtpSender(packet_type_flags, - sender_info, - dlrr, - sender_log, - sending_ssrc, - c_name); + rtcp_builder_.SendRtcpFromRtpSender( + packet_type_flags, sender_info, dlrr, sender_log, sending_ssrc, c_name); } void CastTransportSenderImpl::ResendPackets( - bool is_audio, const MissingFramesAndPacketsMap& missing_packets) { + bool is_audio, + const MissingFramesAndPacketsMap& missing_packets) { if (is_audio) { audio_sender_.ResendPackets(missing_packets); } else { @@ -81,21 +85,14 @@ void CastTransportSenderImpl::ResendPackets( } } -void CastTransportSenderImpl::RtpAudioStatistics( - const base::TimeTicks& now, - RtcpSenderInfo* sender_info) { - audio_sender_.GetStatistics(now, sender_info); -} - -void CastTransportSenderImpl::RtpVideoStatistics( - const base::TimeTicks& now, - RtcpSenderInfo* sender_info) { - video_sender_.GetStatistics(now, sender_info); +void CastTransportSenderImpl::SubscribeAudioRtpStatsCallback( + const CastTransportRtpStatistics& callback) { + audio_sender_.SubscribeAudioRtpStatsCallback(callback); } -void CastTransportSenderImpl::InsertFakeTransportForTesting( - PacketSender* fake_transport) { - pacer_.InsertFakeTransportForTesting(fake_transport); +void CastTransportSenderImpl::SubscribeVideoRtpStatsCallback( + const CastTransportRtpStatistics& callback) { + video_sender_.SubscribeVideoRtpStatsCallback(callback); } } // namespace transport