aboutsummaryrefslogtreecommitdiff
path: root/pc/used_ids.h
diff options
context:
space:
mode:
Diffstat (limited to 'pc/used_ids.h')
-rw-r--r--pc/used_ids.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/pc/used_ids.h b/pc/used_ids.h
index 78e64caa41..62b2faa018 100644
--- a/pc/used_ids.h
+++ b/pc/used_ids.h
@@ -60,7 +60,9 @@ class UsedIds {
}
protected:
- bool IsIdUsed(int new_id) { return id_set_.find(new_id) != id_set_.end(); }
+ virtual bool IsIdUsed(int new_id) {
+ return id_set_.find(new_id) != id_set_.end();
+ }
const int min_allowed_id_;
const int max_allowed_id_;
@@ -92,11 +94,24 @@ class UsedIds {
class UsedPayloadTypes : public UsedIds<Codec> {
public:
UsedPayloadTypes()
- : UsedIds<Codec>(kDynamicPayloadTypeMin, kDynamicPayloadTypeMax) {}
+ : UsedIds<Codec>(kFirstDynamicPayloadTypeLowerRange,
+ kLastDynamicPayloadTypeUpperRange) {}
+
+ protected:
+ bool IsIdUsed(int new_id) override {
+ // Range marked for RTCP avoidance is "used".
+ if (new_id > kLastDynamicPayloadTypeLowerRange &&
+ new_id < kFirstDynamicPayloadTypeUpperRange)
+ return true;
+ return UsedIds<Codec>::IsIdUsed(new_id);
+ }
private:
- static const int kDynamicPayloadTypeMin = 96;
- static const int kDynamicPayloadTypeMax = 127;
+ static const int kFirstDynamicPayloadTypeLowerRange = 35;
+ static const int kLastDynamicPayloadTypeLowerRange = 63;
+
+ static const int kFirstDynamicPayloadTypeUpperRange = 96;
+ static const int kLastDynamicPayloadTypeUpperRange = 127;
};
// Helper class used for finding duplicate RTP Header extension ids among