| Index: talk/session/media/bundlefilter.cc | 
| diff --git a/talk/session/media/bundlefilter.cc b/talk/session/media/bundlefilter.cc | 
| index b47d47fb27587b758338f41cf0b08d813b60f9c8..670befeb7d864ae9e94aa57ebb4ed56836817458 100755 | 
| --- a/talk/session/media/bundlefilter.cc | 
| +++ b/talk/session/media/bundlefilter.cc | 
| @@ -32,78 +32,29 @@ | 
|  | 
| namespace cricket { | 
|  | 
| -static const uint32_t kSsrc01 = 0x01; | 
| - | 
| BundleFilter::BundleFilter() { | 
| } | 
|  | 
| BundleFilter::~BundleFilter() { | 
| } | 
|  | 
| -bool BundleFilter::DemuxPacket(const char* data, size_t len, bool rtcp) { | 
| -  // For rtp packets, we check whether the payload type can be found. | 
| -  // For rtcp packets, we check whether the ssrc can be found or is the special | 
| -  // value 1 except for SDES packets which always pass through. Plus, if | 
| -  // |streams_| is empty, we will allow all rtcp packets pass through provided | 
| -  // that they are valid rtcp packets in case that they are for early media. | 
| -  if (!rtcp) { | 
| -    // It may not be a RTP packet (e.g. SCTP). | 
| -    if (!IsRtpPacket(data, len)) | 
| -      return false; | 
| - | 
| -    int payload_type = 0; | 
| -    if (!GetRtpPayloadType(data, len, &payload_type)) { | 
| -      return false; | 
| -    } | 
| -    return FindPayloadType(payload_type); | 
| +bool BundleFilter::DemuxPacket(const uint8_t* data, size_t len) { | 
| +  // For RTP packets, we check whether the payload type can be found. | 
| +  if (!IsRtpPacket(data, len)) { | 
| +    return false; | 
| } | 
|  | 
| -  // Rtcp packets using ssrc filter. | 
| -  int pl_type = 0; | 
| -  uint32_t ssrc = 0; | 
| -  if (!GetRtcpType(data, len, &pl_type)) return false; | 
| -  if (pl_type == kRtcpTypeSDES) { | 
| -    // SDES packet parsing not supported. | 
| -    LOG(LS_INFO) << "SDES packet received for demux."; | 
| -    return true; | 
| -  } else { | 
| -    if (!GetRtcpSsrc(data, len, &ssrc)) return false; | 
| -    if (ssrc == kSsrc01) { | 
| -      // SSRC 1 has a special meaning and indicates generic feedback on | 
| -      // some systems and should never be dropped.  If it is forwarded | 
| -      // incorrectly it will be ignored by lower layers anyway. | 
| -      return true; | 
| -    } | 
| +  int payload_type = 0; | 
| +  if (!GetRtpPayloadType(data, len, &payload_type)) { | 
| +    return false; | 
| } | 
| -  // Pass through if |streams_| is empty to allow early rtcp packets in. | 
| -  return !HasStreams() || FindStream(ssrc); | 
| +  return FindPayloadType(payload_type); | 
| } | 
|  | 
| void BundleFilter::AddPayloadType(int payload_type) { | 
| payload_types_.insert(payload_type); | 
| } | 
|  | 
| -bool BundleFilter::AddStream(const StreamParams& stream) { | 
| -  if (GetStreamBySsrc(streams_, stream.first_ssrc())) { | 
| -    LOG(LS_WARNING) << "Stream already added to filter"; | 
| -    return false; | 
| -  } | 
| -  streams_.push_back(stream); | 
| -  return true; | 
| -} | 
| - | 
| -bool BundleFilter::RemoveStream(uint32_t ssrc) { | 
| -  return RemoveStreamBySsrc(&streams_, ssrc); | 
| -} | 
| - | 
| -bool BundleFilter::HasStreams() const { | 
| -  return !streams_.empty(); | 
| -} | 
| - | 
| -bool BundleFilter::FindStream(uint32_t ssrc) const { | 
| -  return ssrc == 0 ? false : GetStreamBySsrc(streams_, ssrc) != nullptr; | 
| -} | 
| - | 
| bool BundleFilter::FindPayloadType(int pl_type) const { | 
| return payload_types_.find(pl_type) != payload_types_.end(); | 
| } | 
|  |