void doSubscribe(final StreamDescription stream) {
    if (stream.isLocal()) {
      return;
    }

    if (stream.getMedia() != null) {
      // already subscribed!
      triggerMediaAvailable(stream);
      return;
    }

    // Uncomment to get ALL WebRTC tracing and SENSITIVE libjingle logging.
    // NOTE: this _must_ happen while |factory| is alive!
    // Logging.enableTracing("logcat:",
    // EnumSet.of(Logging.TraceLevel.TRACE_ALL),
    // Logging.Severity.LS_SENSITIVE);

    MyPcObserver pcObs = new MyPcObserver(new LicodeSdpObserver(stream, false), stream);
    PeerConnection pc = sFactory.createPeerConnection(mIceServers, makePcConstraints(), pcObs);

    stream.initRemote(pc, pcObs.getSdpObserver());
  }