| /* |
| * 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_ |