| Index: talk/session/media/channel.cc
 | 
| diff --git a/talk/session/media/channel.cc b/talk/session/media/channel.cc
 | 
| index 428829192ffb02679ab114a8020caa0ec1eeedc1..294681ef1449aa94033112e8e5315cec5048a0f7 100644
 | 
| --- a/talk/session/media/channel.cc
 | 
| +++ b/talk/session/media/channel.cc
 | 
| @@ -322,14 +322,6 @@ bool BaseChannel::Enable(bool enable) {
 | 
|    return true;
 | 
|  }
 | 
|  
 | 
| -bool BaseChannel::MuteStream(uint32 ssrc, bool mute) {
 | 
| -  return InvokeOnWorker(Bind(&BaseChannel::MuteStream_w, this, ssrc, mute));
 | 
| -}
 | 
| -
 | 
| -bool BaseChannel::IsStreamMuted(uint32 ssrc) {
 | 
| -  return InvokeOnWorker(Bind(&BaseChannel::IsStreamMuted_w, this, ssrc));
 | 
| -}
 | 
| -
 | 
|  bool BaseChannel::AddRecvStream(const StreamParams& sp) {
 | 
|    return InvokeOnWorker(Bind(&BaseChannel::AddRecvStream_w, this, sp));
 | 
|  }
 | 
| @@ -723,23 +715,6 @@ void BaseChannel::DisableMedia_w() {
 | 
|    ChangeState();
 | 
|  }
 | 
|  
 | 
| -bool BaseChannel::MuteStream_w(uint32 ssrc, bool mute) {
 | 
| -  ASSERT(worker_thread_ == rtc::Thread::Current());
 | 
| -  bool ret = media_channel()->MuteStream(ssrc, mute);
 | 
| -  if (ret) {
 | 
| -    if (mute)
 | 
| -      muted_streams_.insert(ssrc);
 | 
| -    else
 | 
| -      muted_streams_.erase(ssrc);
 | 
| -  }
 | 
| -  return ret;
 | 
| -}
 | 
| -
 | 
| -bool BaseChannel::IsStreamMuted_w(uint32 ssrc) {
 | 
| -  ASSERT(worker_thread_ == rtc::Thread::Current());
 | 
| -  return muted_streams_.find(ssrc) != muted_streams_.end();
 | 
| -}
 | 
| -
 | 
|  void BaseChannel::ChannelWritable_w() {
 | 
|    ASSERT(worker_thread_ == rtc::Thread::Current());
 | 
|    if (writable_)
 | 
| @@ -1289,9 +1264,11 @@ bool VoiceChannel::SetRemoteRenderer(uint32 ssrc, AudioRenderer* renderer) {
 | 
|                               media_channel(), ssrc, renderer));
 | 
|  }
 | 
|  
 | 
| -bool VoiceChannel::SetLocalRenderer(uint32 ssrc, AudioRenderer* renderer) {
 | 
| -  return InvokeOnWorker(Bind(&VoiceMediaChannel::SetLocalRenderer,
 | 
| -                             media_channel(), ssrc, renderer));
 | 
| +bool VoiceChannel::SetAudioSend(uint32 ssrc, bool mute,
 | 
| +                                const AudioOptions* options,
 | 
| +                                AudioRenderer* renderer) {
 | 
| +  return InvokeOnWorker(Bind(&VoiceMediaChannel::SetAudioSend,
 | 
| +                             media_channel(), ssrc, mute, options, renderer));
 | 
|  }
 | 
|  
 | 
|  bool VoiceChannel::SetRingbackTone(const void* buf, int len) {
 | 
| @@ -1560,11 +1537,6 @@ bool VoiceChannel::InsertDtmf_w(uint32 ssrc, int event, int duration,
 | 
|    return media_channel()->InsertDtmf(ssrc, event, duration, flags);
 | 
|  }
 | 
|  
 | 
| -bool VoiceChannel::SetChannelOptions(const AudioOptions& options) {
 | 
| -  return InvokeOnWorker(Bind(&VoiceMediaChannel::SetOptions,
 | 
| -                             media_channel(), options));
 | 
| -}
 | 
| -
 | 
|  void VoiceChannel::OnMessage(rtc::Message *pmsg) {
 | 
|    switch (pmsg->message_id) {
 | 
|      case MSG_EARLYMEDIATIMEOUT:
 | 
| @@ -1735,6 +1707,12 @@ bool VideoChannel::RequestIntraFrame() {
 | 
|    return true;
 | 
|  }
 | 
|  
 | 
| +bool VideoChannel::SetVideoSend(uint32 ssrc, bool mute,
 | 
| +                                const VideoOptions* options) {
 | 
| +  return InvokeOnWorker(Bind(&VideoMediaChannel::SetVideoSend,
 | 
| +                             media_channel(), ssrc, mute, options));
 | 
| +}
 | 
| +
 | 
|  void VideoChannel::ChangeState() {
 | 
|    // Render incoming data if we're the active call, and we have the local
 | 
|    // content. We receive data on the default channel and multiplexed streams.
 | 
| @@ -1952,11 +1930,6 @@ void VideoChannel::OnScreencastWindowEvent_s(uint32 ssrc,
 | 
|    SignalScreencastWindowEvent(ssrc, we);
 | 
|  }
 | 
|  
 | 
| -bool VideoChannel::SetChannelOptions(const VideoOptions &options) {
 | 
| -  return InvokeOnWorker(Bind(&VideoMediaChannel::SetOptions,
 | 
| -                             media_channel(), options));
 | 
| -}
 | 
| -
 | 
|  void VideoChannel::OnMessage(rtc::Message *pmsg) {
 | 
|    switch (pmsg->message_id) {
 | 
|      case MSG_SCREENCASTWINDOWEVENT: {
 | 
| @@ -2066,7 +2039,6 @@ void VideoChannel::OnSrtpError(uint32 ssrc, SrtpFilter::Mode mode,
 | 
|    }
 | 
|  }
 | 
|  
 | 
| -
 | 
|  void VideoChannel::GetSrtpCiphers(std::vector<std::string>* ciphers) const {
 | 
|    GetSupportedVideoCryptoSuites(ciphers);
 | 
|  }
 | 
| 
 |