| Index: talk/session/media/channel_unittest.cc
 | 
| diff --git a/talk/session/media/channel_unittest.cc b/talk/session/media/channel_unittest.cc
 | 
| index 03f33a4d135d7c98337786ddb7dcbb9854a9f9ff..265b4c2abc2056d83d96ede94e31606a58a8c7c7 100644
 | 
| --- a/talk/session/media/channel_unittest.cc
 | 
| +++ b/talk/session/media/channel_unittest.cc
 | 
| @@ -33,7 +33,7 @@
 | 
|  #include "talk/media/base/rtpdump.h"
 | 
|  #include "talk/media/base/screencastid.h"
 | 
|  #include "talk/media/base/testutils.h"
 | 
| -#include "webrtc/p2p/base/fakesession.h"
 | 
| +#include "webrtc/p2p/base/faketransportcontroller.h"
 | 
|  #include "talk/session/media/channel.h"
 | 
|  #include "talk/session/media/typingmonitor.h"
 | 
|  #include "webrtc/base/fileutils.h"
 | 
| @@ -126,10 +126,12 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|    enum Flags { RTCP = 0x1, RTCP_MUX = 0x2, SECURE = 0x4, SSRC_MUX = 0x8,
 | 
|                 DTLS = 0x10 };
 | 
|  
 | 
| -  ChannelTest(const uint8* rtp_data, int rtp_len,
 | 
| -              const uint8* rtcp_data, int rtcp_len)
 | 
| -      : session1_(true),
 | 
| -        session2_(false),
 | 
| +  ChannelTest(const uint8* rtp_data,
 | 
| +              int rtp_len,
 | 
| +              const uint8* rtcp_data,
 | 
| +              int rtcp_len)
 | 
| +      : transport_controller1_(true),
 | 
| +        transport_controller2_(false),
 | 
|          media_channel1_(NULL),
 | 
|          media_channel2_(NULL),
 | 
|          rtp_packet_(reinterpret_cast<const char*>(rtp_data), rtp_len),
 | 
| @@ -139,8 +141,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|          mute_callback_recved_(false),
 | 
|          mute_callback_value_(false),
 | 
|          ssrc_(0),
 | 
| -        error_(T::MediaChannel::ERROR_NONE) {
 | 
| -  }
 | 
| +        error_(T::MediaChannel::ERROR_NONE) {}
 | 
|  
 | 
|    void CreateChannels(int flags1, int flags2) {
 | 
|      CreateChannels(new typename T::MediaChannel(NULL),
 | 
| @@ -169,9 +170,11 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|        int flags1, int flags2, rtc::Thread* thread) {
 | 
|      media_channel1_ = ch1;
 | 
|      media_channel2_ = ch2;
 | 
| -    channel1_.reset(CreateChannel(thread, &media_engine_, ch1, &session1_,
 | 
| +    channel1_.reset(CreateChannel(thread, &media_engine_, ch1,
 | 
| +                                  &transport_controller1_,
 | 
|                                    (flags1 & RTCP) != 0));
 | 
| -    channel2_.reset(CreateChannel(thread, &media_engine_, ch2, &session2_,
 | 
| +    channel2_.reset(CreateChannel(thread, &media_engine_, ch2,
 | 
| +                                  &transport_controller2_,
 | 
|                                    (flags2 & RTCP) != 0));
 | 
|      channel1_->SignalMediaMonitor.connect(
 | 
|          this, &ChannelTest<T>::OnMediaMonitor);
 | 
| @@ -196,15 +199,15 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|  
 | 
|      if (flags1 & DTLS) {
 | 
|        // Confirmed to work with KT_RSA and KT_ECDSA.
 | 
| -      session1_.set_ssl_rtccertificate(rtc::RTCCertificate::Create(
 | 
| -          rtc::scoped_ptr<rtc::SSLIdentity>(rtc::SSLIdentity::Generate(
 | 
| -              "session1", rtc::KT_DEFAULT)).Pass()));
 | 
| +      transport_controller1_.SetCertificate(rtc::RTCCertificate::Create(
 | 
| +          rtc::scoped_ptr<rtc::SSLIdentity>(
 | 
| +              rtc::SSLIdentity::Generate("session1", rtc::KT_DEFAULT)).Pass()));
 | 
|      }
 | 
|      if (flags2 & DTLS) {
 | 
|        // Confirmed to work with KT_RSA and KT_ECDSA.
 | 
| -      session2_.set_ssl_rtccertificate(rtc::RTCCertificate::Create(
 | 
| -          rtc::scoped_ptr<rtc::SSLIdentity>(rtc::SSLIdentity::Generate(
 | 
| -              "session2", rtc::KT_DEFAULT)).Pass()));
 | 
| +      transport_controller2_.SetCertificate(rtc::RTCCertificate::Create(
 | 
| +          rtc::scoped_ptr<rtc::SSLIdentity>(
 | 
| +              rtc::SSLIdentity::Generate("session2", rtc::KT_DEFAULT)).Pass()));
 | 
|      }
 | 
|  
 | 
|      // Add stream information (SSRC) to the local content but not to the remote
 | 
| @@ -228,9 +231,11 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      media_channel1_ = ch1;
 | 
|      media_channel2_ = ch2;
 | 
|  
 | 
| -    channel1_.reset(CreateChannel(thread, &media_engine_, ch1, &session1_,
 | 
| +    channel1_.reset(CreateChannel(thread, &media_engine_, ch1,
 | 
| +                                  &transport_controller1_,
 | 
|                                    (flags & RTCP) != 0));
 | 
| -    channel2_.reset(CreateChannel(thread, &media_engine_, ch2, &session1_,
 | 
| +    channel2_.reset(CreateChannel(thread, &media_engine_, ch2,
 | 
| +                                  &transport_controller1_,
 | 
|                                    (flags & RTCP) != 0));
 | 
|      channel1_->SignalMediaMonitor.connect(
 | 
|          this, &ChannelTest<T>::OnMediaMonitor);
 | 
| @@ -257,13 +262,14 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      }
 | 
|    }
 | 
|  
 | 
| -  typename T::Channel* CreateChannel(rtc::Thread* thread,
 | 
| -                                     cricket::MediaEngineInterface* engine,
 | 
| -                                     typename T::MediaChannel* ch,
 | 
| -                                     cricket::BaseSession* session,
 | 
| -                                     bool rtcp) {
 | 
| +  typename T::Channel* CreateChannel(
 | 
| +      rtc::Thread* thread,
 | 
| +      cricket::MediaEngineInterface* engine,
 | 
| +      typename T::MediaChannel* ch,
 | 
| +      cricket::TransportController* transport_controller,
 | 
| +      bool rtcp) {
 | 
|      typename T::Channel* channel = new typename T::Channel(
 | 
| -        thread, engine, ch, session, cricket::CN_AUDIO, rtcp);
 | 
| +        thread, engine, ch, transport_controller, cricket::CN_AUDIO, rtcp);
 | 
|      if (!channel->Init()) {
 | 
|        delete channel;
 | 
|        channel = NULL;
 | 
| @@ -279,7 +285,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|        result = channel2_->SetRemoteContent(&remote_media_content1_,
 | 
|                                             CA_OFFER, NULL);
 | 
|        if (result) {
 | 
| -        session1_.Connect(&session2_);
 | 
| +        transport_controller1_.Connect(&transport_controller2_);
 | 
|  
 | 
|          result = channel2_->SetLocalContent(&local_media_content2_,
 | 
|                                              CA_ANSWER, NULL);
 | 
| @@ -312,7 +318,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|        channel2_->Enable(true);
 | 
|        result = channel1_->SetRemoteContent(&remote_media_content2_,
 | 
|                                             CA_PRANSWER, NULL);
 | 
| -      session1_.Connect(&session2_);
 | 
| +      transport_controller1_.Connect(&transport_controller2_);
 | 
|      }
 | 
|      return result;
 | 
|    }
 | 
| @@ -339,11 +345,12 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      return channel1_->RemoveRecvStream(id);
 | 
|    }
 | 
|  
 | 
| +  // Calling "_w" method here is ok since we only use one thread for this test
 | 
|    cricket::FakeTransport* GetTransport1() {
 | 
| -    return session1_.GetTransport(channel1_->content_name());
 | 
| +    return transport_controller1_.GetTransport_w(channel1_->content_name());
 | 
|    }
 | 
|    cricket::FakeTransport* GetTransport2() {
 | 
| -    return session2_.GetTransport(channel2_->content_name());
 | 
| +    return transport_controller2_.GetTransport_w(channel2_->content_name());
 | 
|    }
 | 
|  
 | 
|    bool SendRtp1() {
 | 
| @@ -827,7 +834,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|  
 | 
|      EXPECT_TRUE(channel2_->SetRemoteContent(&content1, CA_OFFER, NULL));
 | 
|      EXPECT_EQ(1u, media_channel2_->recv_streams().size());
 | 
| -    session1_.Connect(&session2_);
 | 
| +    transport_controller1_.Connect(&transport_controller2_);
 | 
|  
 | 
|      // Channel 2 do not send anything.
 | 
|      typename T::Content content2;
 | 
| @@ -890,7 +897,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|                                             CA_ANSWER, NULL));
 | 
|      EXPECT_FALSE(media_channel2_->playout());
 | 
|      EXPECT_FALSE(media_channel2_->sending());
 | 
| -    session1_.Connect(&session2_);
 | 
| +    transport_controller1_.Connect(&transport_controller2_);
 | 
|      EXPECT_TRUE(media_channel1_->playout());
 | 
|      EXPECT_FALSE(media_channel1_->sending());
 | 
|      EXPECT_FALSE(media_channel2_->playout());
 | 
| @@ -948,7 +955,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      EXPECT_TRUE(channel2_->SetRemoteContent(&content1, CA_OFFER, NULL));
 | 
|      EXPECT_TRUE(channel2_->SetLocalContent(&content2, CA_PRANSWER, NULL));
 | 
|      EXPECT_TRUE(channel1_->SetRemoteContent(&content2, CA_PRANSWER, NULL));
 | 
| -    session1_.Connect(&session2_);
 | 
| +    transport_controller1_.Connect(&transport_controller2_);
 | 
|  
 | 
|      EXPECT_TRUE(media_channel1_->playout());
 | 
|      EXPECT_FALSE(media_channel1_->sending());  // remote InActive
 | 
| @@ -1018,6 +1025,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(0, 0);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendRtp1());
 | 
| @@ -1033,6 +1042,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(0, 0);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_FALSE(SendRtcp1());
 | 
| @@ -1046,6 +1057,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(0, RTCP);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|      EXPECT_FALSE(SendRtcp1());
 | 
| @@ -1059,6 +1072,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP, 0);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_FALSE(SendRtcp1());
 | 
| @@ -1072,6 +1087,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP, RTCP);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendRtcp1());
 | 
| @@ -1087,6 +1104,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendRtcp1());
 | 
| @@ -1101,6 +1120,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|    void SendRtcpMuxToRtcpMux() {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| @@ -1125,6 +1146,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
 | 
|      channel1_->ActivateRtcpMux();
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| @@ -1148,6 +1171,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
 | 
|      channel2_->ActivateRtcpMux();
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| @@ -1173,6 +1198,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      channel1_->ActivateRtcpMux();
 | 
|      channel2_->ActivateRtcpMux();
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| @@ -1197,6 +1224,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP);
 | 
|      channel1_->ActivateRtcpMux();
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|      EXPECT_FALSE(SendAccept());
 | 
| @@ -1206,6 +1235,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|    void SendEarlyRtcpMuxToRtcp() {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|  
 | 
| @@ -1236,6 +1267,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|    void SendEarlyRtcpMuxToRtcpMux() {
 | 
|      CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|  
 | 
| @@ -1326,6 +1359,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|        EXPECT_TRUE(SendProvisionalAnswer());
 | 
|        EXPECT_TRUE(channel1_->secure());
 | 
|        EXPECT_TRUE(channel2_->secure());
 | 
| +      ASSERT_TRUE(GetTransport1());
 | 
| +      ASSERT_TRUE(GetTransport2());
 | 
|        EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|        EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|        EXPECT_TRUE(SendCustomRtcp1(kSsrc1));
 | 
| @@ -1409,6 +1444,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(0, 0);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(1U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(1U, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendRtp1());
 | 
| @@ -1473,6 +1510,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      }
 | 
|      CreateChannels(flags, flags);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(expected_channels, GetTransport2()->channels().size());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| @@ -1661,6 +1700,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      CreateChannels(RTCP, RTCP);
 | 
|      EXPECT_TRUE(SendInitiate());
 | 
|      EXPECT_TRUE(SendAccept());
 | 
| +    ASSERT_TRUE(GetTransport1());
 | 
| +    ASSERT_TRUE(GetTransport2());
 | 
|      EXPECT_EQ(2U, GetTransport1()->channels().size());
 | 
|      EXPECT_EQ(2U, GetTransport2()->channels().size());
 | 
|  
 | 
| @@ -1749,15 +1790,15 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      EXPECT_TRUE(media_channel1_->ready_to_send());
 | 
|  
 | 
|      // rtp channel becomes not ready to send will be propagated to mediachannel
 | 
| -    channel1_->SetReadyToSend(rtp, false);
 | 
| +    channel1_->SetReadyToSend(false, false);
 | 
|      EXPECT_FALSE(media_channel1_->ready_to_send());
 | 
| -    channel1_->SetReadyToSend(rtp, true);
 | 
| +    channel1_->SetReadyToSend(false, true);
 | 
|      EXPECT_TRUE(media_channel1_->ready_to_send());
 | 
|  
 | 
|      // rtcp channel becomes not ready to send will be propagated to mediachannel
 | 
| -    channel1_->SetReadyToSend(rtcp, false);
 | 
| +    channel1_->SetReadyToSend(true, false);
 | 
|      EXPECT_FALSE(media_channel1_->ready_to_send());
 | 
| -    channel1_->SetReadyToSend(rtcp, true);
 | 
| +    channel1_->SetReadyToSend(true, true);
 | 
|      EXPECT_TRUE(media_channel1_->ready_to_send());
 | 
|    }
 | 
|  
 | 
| @@ -1776,13 +1817,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
 | 
|      // should trigger the MediaChannel's OnReadyToSend.
 | 
|      rtp->SignalReadyToSend(rtp);
 | 
|      EXPECT_TRUE(media_channel1_->ready_to_send());
 | 
| -    channel1_->SetReadyToSend(rtp, false);
 | 
| +    channel1_->SetReadyToSend(false, false);
 | 
|      EXPECT_FALSE(media_channel1_->ready_to_send());
 | 
|    }
 | 
|  
 | 
|   protected:
 | 
| -  cricket::FakeSession session1_;
 | 
| -  cricket::FakeSession session2_;
 | 
| +  cricket::FakeTransportController transport_controller1_;
 | 
| +  cricket::FakeTransportController transport_controller2_;
 | 
|    cricket::FakeMediaEngine media_engine_;
 | 
|    // The media channels are owned by the voice channel objects below.
 | 
|    typename T::MediaChannel* media_channel1_;
 | 
| @@ -1876,13 +1917,15 @@ class VoiceChannelTest
 | 
|  };
 | 
|  
 | 
|  // override to add NULL parameter
 | 
| -template<>
 | 
| +template <>
 | 
|  cricket::VideoChannel* ChannelTest<VideoTraits>::CreateChannel(
 | 
| -    rtc::Thread* thread, cricket::MediaEngineInterface* engine,
 | 
| -    cricket::FakeVideoMediaChannel* ch, cricket::BaseSession* session,
 | 
| +    rtc::Thread* thread,
 | 
| +    cricket::MediaEngineInterface* engine,
 | 
| +    cricket::FakeVideoMediaChannel* ch,
 | 
| +    cricket::TransportController* transport_controller,
 | 
|      bool rtcp) {
 | 
|    cricket::VideoChannel* channel = new cricket::VideoChannel(
 | 
| -      thread, ch, session, cricket::CN_VIDEO, rtcp);
 | 
| +      thread, ch, transport_controller, cricket::CN_VIDEO, rtcp);
 | 
|    if (!channel->Init()) {
 | 
|      delete channel;
 | 
|      channel = NULL;
 | 
| @@ -2691,13 +2734,15 @@ class DataChannelTest
 | 
|  };
 | 
|  
 | 
|  // Override to avoid engine channel parameter.
 | 
| -template<>
 | 
| +template <>
 | 
|  cricket::DataChannel* ChannelTest<DataTraits>::CreateChannel(
 | 
| -    rtc::Thread* thread, cricket::MediaEngineInterface* engine,
 | 
| -    cricket::FakeDataMediaChannel* ch, cricket::BaseSession* session,
 | 
| +    rtc::Thread* thread,
 | 
| +    cricket::MediaEngineInterface* engine,
 | 
| +    cricket::FakeDataMediaChannel* ch,
 | 
| +    cricket::TransportController* transport_controller,
 | 
|      bool rtcp) {
 | 
|    cricket::DataChannel* channel = new cricket::DataChannel(
 | 
| -      thread, ch, session, cricket::CN_DATA, rtcp);
 | 
| +      thread, ch, transport_controller, cricket::CN_DATA, rtcp);
 | 
|    if (!channel->Init()) {
 | 
|      delete channel;
 | 
|      channel = NULL;
 | 
| 
 |