From cd96267dc8530881a8dc36b728ea0ad469a6a436 Mon Sep 17 00:00:00 2001 From: xia-chu <771730766@qq.com> Date: Fri, 7 May 2021 14:02:03 +0800 Subject: [PATCH] =?UTF-8?q?extmap=E7=9B=B8=E5=85=B3=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=94=B9=E6=88=90=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/Sdp.cpp | 47 ++++++++++++++++++++++------------------------- webrtc/Sdp.h | 5 ++--- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/webrtc/Sdp.cpp b/webrtc/Sdp.cpp index 1c1f0fed..6adc4451 100644 --- a/webrtc/Sdp.cpp +++ b/webrtc/Sdp.cpp @@ -1251,27 +1251,25 @@ bool RtcSession::supportRtcpFb(const string &name, TrackType type) const { } string const SdpConst::kTWCCRtcpFb = "transport-cc"; -string const SdpConst::kTWCCExtMap = "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"; string const SdpConst::kRembRtcpFb = "goog-remb"; -string const SdpConst::kRembExtMap = "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; void RtcConfigure::RtcTrackConfigure::enableTWCC(bool enable){ if (!enable) { rtcp_fb.erase(SdpConst::kTWCCRtcpFb); - extmap.erase(SdpConst::kTWCCExtMap); + extmap.erase(RtpExtType::abs_send_time); } else { rtcp_fb.emplace(SdpConst::kTWCCRtcpFb); - extmap.emplace(SdpConst::kTWCCExtMap); + extmap.emplace(RtpExtType::transport_cc); } } void RtcConfigure::RtcTrackConfigure::enableREMB(bool enable){ if (!enable) { rtcp_fb.erase(SdpConst::kRembRtcpFb); - extmap.erase(SdpConst::kRembExtMap); + extmap.erase(RtpExtType::abs_send_time); } else { rtcp_fb.emplace(SdpConst::kRembRtcpFb); - extmap.emplace(SdpConst::kRembExtMap); + extmap.emplace(RtpExtType::transport_cc); } } @@ -1292,13 +1290,12 @@ void RtcConfigure::RtcTrackConfigure::setDefaultSetting(TrackType type){ preferred_codec = {CodecAAC, CodecG711U, CodecG711A, CodecOpus}; rtcp_fb = {SdpConst::kTWCCRtcpFb, SdpConst::kRembRtcpFb}; extmap = { - SdpConst::kTWCCExtMap, - SdpConst::kRembExtMap, - "urn:ietf:params:rtp-hdrext:ssrc-audio-level", - "urn:ietf:params:rtp-hdrext:sdes:mid", - "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id", - "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id", - "urn:ietf:params:rtp-hdrext:csrc-audio-level" + RtpExtType::ssrc_audio_level, + RtpExtType::abs_send_time, + RtpExtType::transport_cc, + RtpExtType::sdes_mid, + RtpExtType::sdes_rtp_stream_id, + RtpExtType::sdes_repaired_rtp_stream_id }; break; } @@ -1307,17 +1304,17 @@ void RtcConfigure::RtcTrackConfigure::setDefaultSetting(TrackType type){ preferred_codec = {CodecH264, CodecH265}; rtcp_fb = {SdpConst::kTWCCRtcpFb, SdpConst::kRembRtcpFb, "nack", "ccm fir", "nack pli"}; extmap = { - SdpConst::kTWCCExtMap, - SdpConst::kRembExtMap, - "urn:ietf:params:rtp-hdrext:toffset", - "urn:3gpp:video-orientation", - "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay", - "http://www.webrtc.org/experiments/rtp-hdrext/video-content-type", - "http://www.webrtc.org/experiments/rtp-hdrext/video-timing", - "http://www.webrtc.org/experiments/rtp-hdrext/color-space", - "urn:ietf:params:rtp-hdrext:sdes:mid", - "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id", - "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id" + RtpExtType::abs_send_time, + RtpExtType::transport_cc, + RtpExtType::sdes_mid, + RtpExtType::sdes_rtp_stream_id, + RtpExtType::sdes_repaired_rtp_stream_id, + RtpExtType::video_timing, + RtpExtType::color_space, + RtpExtType::video_content_type, + RtpExtType::playout_delay, + RtpExtType::video_orientation, + RtpExtType::toffset }; break; } @@ -1566,7 +1563,7 @@ RETRY: //对方和我方都支持的扩展,那么我们才支持 for (auto &ext : offer_media.extmap) { - if (configure.extmap.find(ext.ext) != configure.extmap.end()) { + if (configure.extmap.find(RtpExt::getExtType(ext.ext)) != configure.extmap.end()) { answer_media.extmap.emplace_back(ext); } } diff --git a/webrtc/Sdp.h b/webrtc/Sdp.h index cd044e23..2195ccaf 100644 --- a/webrtc/Sdp.h +++ b/webrtc/Sdp.h @@ -13,6 +13,7 @@ #include #include +#include "RtpExt.h" #include "assert.h" #include "Extension/Frame.h" #include "Common/Parser.h" @@ -695,7 +696,7 @@ public: SdpAttrFingerprint fingerprint; set rtcp_fb; - set extmap; + set extmap; vector preferred_codec; vector candidate; @@ -734,9 +735,7 @@ private: class SdpConst { public: static string const kTWCCRtcpFb; - static string const kTWCCExtMap; static string const kRembRtcpFb; - static string const kRembExtMap; private: SdpConst() = delete;