diff --git a/worker/include/RTC/RtpDictionaries.hpp b/worker/include/RTC/RtpDictionaries.hpp index 059c2b3e5e..6305abb003 100644 --- a/worker/include/RTC/RtpDictionaries.hpp +++ b/worker/include/RTC/RtpDictionaries.hpp @@ -59,6 +59,7 @@ namespace RTC ISAC, G722, ILBC, + SILK, // Video codecs: VP8 = 200, VP9, @@ -123,6 +124,26 @@ namespace RTC std::string name; }; + class RtpHeaderExtensionUri + { + public: + enum class Type : uint8_t + { + UNKNOWN = 0, + SSRC_AUDIO_LEVEL = 1, + TO_OFFSET = 2, + ABS_SEND_TIME = 3, + VIDEO_ORIENTATION = 4, + RTP_STREAM_ID = 5 + }; + + private: + static std::unordered_map string2Type; + + public: + static Type GetType(std::string& uri); + }; + class RtcpFeedback { public: @@ -172,10 +193,11 @@ namespace RTC Json::Value toJson(); public: - Media::Kind kind = Media::Kind::ALL; - std::string uri; - uint16_t preferredId = 0; - bool preferredEncrypt = false; + Media::Kind kind = Media::Kind::ALL; + std::string uri; + RtpHeaderExtensionUri::Type type; + uint16_t preferredId = 0; + bool preferredEncrypt = false; }; class RtpCapabilities @@ -254,10 +276,11 @@ namespace RTC Json::Value toJson(); public: - std::string uri; - uint16_t id = 0; - bool encrypt = false; - RTC::Parameters parameters; + std::string uri; + RtpHeaderExtensionUri::Type type; + uint16_t id = 0; + bool encrypt = false; + RTC::Parameters parameters; }; class RtcpParameters