| /* | 
 |  *  Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. | 
 |  * | 
 |  *  Use of this source code is governed by a BSD-style license | 
 |  *  that can be found in the LICENSE file in the root of the source | 
 |  *  tree. An additional intellectual property rights grant can be found | 
 |  *  in the file PATENTS.  All contributing project authors may | 
 |  *  be found in the AUTHORS file in the root of the source tree. | 
 |  */ | 
 | #ifndef CALL_SSRC_BINDING_OBSERVER_H_ | 
 | #define CALL_SSRC_BINDING_OBSERVER_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "rtc_base/basictypes.h" | 
 |  | 
 | namespace webrtc { | 
 |  | 
 | // With newer versions of SDP, SSRC is often not explicitly signaled and must | 
 | // be learned on the fly. This happens by correlating packet SSRCs with included | 
 | // RTP extension headers like MID and RSID, or by receiving information from | 
 | // RTCP messages. | 
 | // SsrcBindingObservers will be notified when a new binding is learned, which | 
 | // can happen during call setup and/or during the call. | 
 | class SsrcBindingObserver { | 
 |  public: | 
 |   virtual ~SsrcBindingObserver() = default; | 
 |  | 
 |   virtual void OnSsrcBoundToRsid(const std::string& rsid, uint32_t ssrc) {} | 
 |  | 
 |   virtual void OnSsrcBoundToMid(const std::string& mid, uint32_t ssrc) {} | 
 |  | 
 |   virtual void OnSsrcBoundToMidRsid(const std::string& mid, | 
 |                                     const std::string& rsid, | 
 |                                     uint32_t ssrc) {} | 
 |  | 
 |   virtual void OnSsrcBoundToPayloadType(uint8_t payload_type, uint32_t ssrc) {} | 
 | }; | 
 |  | 
 | }  // namespace webrtc | 
 |  | 
 | #endif  // CALL_SSRC_BINDING_OBSERVER_H_ |