Changeset 273550 in webkit
- Timestamp:
- Feb 26, 2021 4:05:33 AM (17 months ago)
- Location:
- trunk
- Files:
-
- 7 added
- 12 edited
- 1 moved
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/resources/import-expectations.json (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/META.yml (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel-expected.txt (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/RTCRtpParameters-encodings-expected.txt (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/webrtc-priority/w3c-import.log (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/Modules/mediastream/RTCDataChannel.h (modified) (1 diff)
-
Source/WebCore/Modules/mediastream/RTCDataChannel.idl (modified) (1 diff)
-
Source/WebCore/Modules/mediastream/RTCRtpEncodingParameters.h (modified) (1 diff)
-
Source/WebCore/Modules/mediastream/RTCRtpEncodingParameters.idl (modified) (1 diff)
-
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp (modified) (3 diffs)
-
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp (modified) (4 diffs)
-
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.h (modified) (3 diffs)
-
Source/WebCore/WebCore.xcodeproj/project.pbxproj (modified) (6 diffs)
-
Source/WebCore/platform/mediastream/RTCDataChannelHandler.h (modified) (2 diffs)
-
Source/WebCore/platform/mediastream/RTCPriorityType.h (moved) (moved from trunk/Source/WebCore/Modules/mediastream/RTCPriorityType.h)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r273478 r273550 1 2021-02-26 Youenn Fablet <youenn@apple.com> 2 3 Add support for WebRTC priority 4 https://bugs.webkit.org/show_bug.cgi?id=222416 5 6 Reviewed by Eric Carlson. 7 8 * resources/import-expectations.json: 9 * web-platform-tests/webrtc-priority/META.yml: Added. 10 * web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel-expected.txt: Added. 11 * web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html: Added. 12 * web-platform-tests/webrtc-priority/RTCRtpParameters-encodings-expected.txt: Added. 13 * web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html: Added. 14 * web-platform-tests/webrtc-priority/w3c-import.log: Added. 15 1 16 2021-02-25 Antoine Quint <graouts@webkit.org> 2 17 -
trunk/LayoutTests/imported/w3c/resources/import-expectations.json
r273243 r273550 431 431 "web-platform-tests/webmessaging/": "import", 432 432 "web-platform-tests/webrtc": "import", 433 "web-platform-tests/webrtc-priority": "import", 433 434 "web-platform-tests/webrtc/legacy": "skip", 434 435 "web-platform-tests/websockets": "import", -
trunk/Source/WebCore/ChangeLog
r273549 r273550 1 2021-02-26 Youenn Fablet <youenn@apple.com> 2 3 Add support for WebRTC priority 4 https://bugs.webkit.org/show_bug.cgi?id=222416 5 6 Reviewed by Eric Carlson. 7 8 Implement https://w3c.github.io/webrtc-priority/ by piping priorities between binding and backend. 9 10 Tests: imported/w3c/web-platform-tests/webrtc-priority/RTCPeerConnection-ondatachannel.html 11 imported/w3c/web-platform-tests/webrtc-priority/RTCRtpParameters-encodings.html 12 13 * Modules/mediastream/RTCDataChannel.h: 14 * Modules/mediastream/RTCDataChannel.idl: 15 * Modules/mediastream/RTCRtpEncodingParameters.h: 16 * Modules/mediastream/RTCRtpEncodingParameters.idl: 17 * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp: 18 (WebCore::LibWebRTCDataChannelHandler::fromRTCDataChannelInit): 19 (WebCore::LibWebRTCDataChannelHandler::channelEvent): 20 (WebCore::fromStdString): Deleted. 21 * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: 22 (WebCore::fromRTCPriorityType): 23 (WebCore::toRTCPriorityType): 24 (WebCore::toWebRTCBitRatePriority): 25 (WebCore::fromWebRTCBitRatePriority): 26 (WebCore::toRTCEncodingParameters): 27 (WebCore::fromRTCEncodingParameters): 28 (WebCore::updateRTCRtpSendParameters): 29 * Modules/mediastream/libwebrtc/LibWebRTCUtils.h: 30 * WebCore.xcodeproj/project.pbxproj: 31 * platform/mediastream/RTCDataChannelHandler.h: 32 * platform/mediastream/RTCPriorityType.h: Renamed from Source/WebCore/Modules/mediastream/RTCPriorityType.h. 33 1 34 2021-02-26 Imanol Fernandez <ifernandez@igalia.com> 2 35 -
trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h
r263655 r273550 59 59 bool negotiated() const { return *m_options.negotiated; }; 60 60 Optional<unsigned short> id() const { return m_options.id; }; 61 RTCPriorityType priority() const { return m_options.priority; }; 61 62 62 63 String label() const { return m_label; } -
trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.idl
r267813 r273550 41 41 readonly attribute RTCDataChannelState readyState; 42 42 readonly attribute unsigned long bufferedAmount; 43 readonly attribute RTCPriorityType priority; 43 44 attribute unsigned long bufferedAmountLowThreshold; 44 45 -
trunk/Source/WebCore/Modules/mediastream/RTCRtpEncodingParameters.h
r239427 r273550 42 42 Optional<RTCDtxStatus> dtx; 43 43 bool active { false}; 44 RTCPriorityType priority { RTCPriorityType::Medium }; 44 RTCPriorityType priority { RTCPriorityType::Low }; 45 Optional<RTCPriorityType> networkPriority; 45 46 unsigned long maxBitrate { 0 }; 46 47 unsigned long maxFramerate { 0 }; -
trunk/Source/WebCore/Modules/mediastream/RTCRtpEncodingParameters.idl
r271797 r273550 35 35 boolean active = true; 36 36 RTCPriorityType priority; 37 RTCPriorityType networkPriority; 37 38 unsigned long maxBitrate; 38 39 unsigned long maxFramerate; -
trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp
r263797 r273550 29 29 30 30 #include "EventNames.h" 31 #include "LibWebRTCUtils.h" 31 32 #include "RTCDataChannel.h" 32 33 #include "RTCDataChannelEvent.h" … … 49 50 if (options.id) 50 51 init.id = *options.id; 52 init.priority = fromRTCPriorityType(options.priority); 51 53 return init; 52 }53 54 static inline String fromStdString(const std::string& value)55 {56 return String::fromUTF8(value.data(), value.length());57 54 } 58 55 … … 69 66 init.negotiated = dataChannel->negotiated(); 70 67 init.id = dataChannel->id(); 68 init.priority = toRTCPriorityType(dataChannel->priority()); 71 69 72 70 auto handler = makeUnique<LibWebRTCDataChannelHandler>(WTFMove(dataChannel)); -
trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp
r271936 r273550 46 46 namespace WebCore { 47 47 48 webrtc::Priority fromRTCPriorityType(RTCPriorityType priority) 49 { 50 switch (priority) { 51 case RTCPriorityType::VeryLow: 52 return webrtc::Priority::kVeryLow; 53 case RTCPriorityType::Low: 54 return webrtc::Priority::kLow; 55 case RTCPriorityType::Medium: 56 return webrtc::Priority::kMedium; 57 case RTCPriorityType::High: 58 return webrtc::Priority::kHigh; 59 } 60 } 61 62 RTCPriorityType toRTCPriorityType(webrtc::Priority priority) 63 { 64 switch (priority) { 65 case webrtc::Priority::kVeryLow: 66 return RTCPriorityType::VeryLow; 67 case webrtc::Priority::kLow: 68 return RTCPriorityType::Low; 69 case webrtc::Priority::kMedium: 70 return RTCPriorityType::Medium; 71 case webrtc::Priority::kHigh: 72 return RTCPriorityType::High; 73 } 74 } 75 76 static inline double toWebRTCBitRatePriority(RTCPriorityType priority) 77 { 78 switch (priority) { 79 case RTCPriorityType::VeryLow: 80 return 0.5; 81 case RTCPriorityType::Low: 82 return 1; 83 case RTCPriorityType::Medium: 84 return 2; 85 case RTCPriorityType::High: 86 return 4; 87 } 88 } 89 90 static inline RTCPriorityType fromWebRTCBitRatePriority(double priority) 91 { 92 if (priority < 0.7) 93 return RTCPriorityType::VeryLow; 94 if (priority < 1.5) 95 return RTCPriorityType::Low; 96 if (priority < 2.5) 97 return RTCPriorityType::Medium; 98 return RTCPriorityType::High; 99 } 100 48 101 static inline RTCRtpEncodingParameters toRTCEncodingParameters(const webrtc::RtpEncodingParameters& rtcParameters) 49 102 { … … 62 115 parameters.scaleResolutionDownBy = *rtcParameters.scale_resolution_down_by; 63 116 117 parameters.priority = fromWebRTCBitRatePriority(rtcParameters.bitrate_priority); 118 parameters.networkPriority = toRTCPriorityType(rtcParameters.network_priority); 119 64 120 return parameters; 65 121 } … … 81 137 rtcParameters.scale_resolution_down_by = parameters.scaleResolutionDownBy; 82 138 139 rtcParameters.bitrate_priority = toWebRTCBitRatePriority(parameters.priority); 140 if (parameters.networkPriority) 141 rtcParameters.network_priority = fromRTCPriorityType(*parameters.networkPriority); 83 142 return rtcParameters; 84 143 } … … 192 251 if (parameters.encodings[i].scaleResolutionDownBy) 193 252 rtcParameters.encodings[i].scale_resolution_down_by = parameters.encodings[i].scaleResolutionDownBy; 253 rtcParameters.encodings[i].bitrate_priority = toWebRTCBitRatePriority(parameters.encodings[i].priority); 254 if (parameters.encodings[i].networkPriority) 255 rtcParameters.encodings[i].network_priority = fromRTCPriorityType(*parameters.encodings[i].networkPriority); 194 256 } 195 257 -
trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCUtils.h
r253966 r273550 36 36 class RTCError; 37 37 38 enum class Priority; 38 39 enum class RTCErrorType; 39 40 enum class RtpTransceiverDirection; … … 48 49 struct RTCRtpTransceiverInit; 49 50 51 enum class RTCPriorityType; 50 52 enum class RTCRtpTransceiverDirection; 51 53 … … 62 64 Exception toException(const webrtc::RTCError&); 63 65 66 RTCPriorityType toRTCPriorityType(webrtc::Priority); 67 webrtc::Priority fromRTCPriorityType(RTCPriorityType); 68 69 64 70 inline String fromStdString(const std::string& value) 65 71 { -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r273444 r273550 1061 1061 413C8B342552F27D00E65055 /* RTCRtpTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 413C8B2F2552F27B00E65055 /* RTCRtpTransform.h */; }; 1062 1062 413C8B352552F27D00E65055 /* RTCRtpReceiverWithTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 413C8B302552F27C00E65055 /* RTCRtpReceiverWithTransform.h */; }; 1063 413CC11D25E7D98E00D59C4B /* RTCPriorityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 413CC11C25E7D98D00D59C4B /* RTCPriorityType.h */; }; 1063 1064 413CCD4A20DE034F0065A21A /* MockMediaDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 413CCD4820DE013C0065A21A /* MockMediaDevice.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1064 1065 413E00791DB0E4F2002341D2 /* MemoryRelease.h in Headers */ = {isa = PBXBuildFile; fileRef = 413E00781DB0E4DE002341D2 /* MemoryRelease.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 7697 7698 413C8B2F2552F27B00E65055 /* RTCRtpTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpTransform.h; sourceTree = "<group>"; }; 7698 7699 413C8B302552F27C00E65055 /* RTCRtpReceiverWithTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpReceiverWithTransform.h; sourceTree = "<group>"; }; 7700 413CC11C25E7D98D00D59C4B /* RTCPriorityType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCPriorityType.h; sourceTree = "<group>"; }; 7699 7701 413CCD4820DE013C0065A21A /* MockMediaDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockMediaDevice.h; sourceTree = "<group>"; }; 7700 7702 413E00771DB0E4DE002341D2 /* MemoryRelease.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryRelease.cpp; sourceTree = "<group>"; }; … … 8017 8019 41FCB75A214866FD0038ADC6 /* RTCRtpHeaderExtensionParameters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCRtpHeaderExtensionParameters.h; sourceTree = "<group>"; }; 8018 8020 41FCB75B214866FD0038ADC6 /* RTCRtpFecParameters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCRtpFecParameters.h; sourceTree = "<group>"; }; 8019 41FCB75C214866FE0038ADC6 /* RTCPriorityType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCPriorityType.h; sourceTree = "<group>"; };8020 8021 41FCB75D214866FE0038ADC6 /* RTCDegradationPreference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCDegradationPreference.h; sourceTree = "<group>"; }; 8021 8022 41FCB75E214866FF0038ADC6 /* RTCDtxStatus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCDtxStatus.h; sourceTree = "<group>"; }; … … 17324 17325 07221B7617CEC32700848E51 /* RTCPeerConnectionIceEvent.idl */, 17325 17326 41A48A9C1E83129100D2AC2D /* RTCPeerConnectionState.idl */, 17326 41FCB75C214866FE0038ADC6 /* RTCPriorityType.h */,17327 17327 41E593FD214865A900D3CB61 /* RTCPriorityType.idl */, 17328 17328 4114FE2F25BEBD18009D9F20 /* RTCRtcpParameters.h */, … … 17478 17478 07221BAA17CF0AD400848E51 /* RTCPeerConnectionHandlerClient.h */, 17479 17479 41A48A9D1E8312EB00D2AC2D /* RTCPeerConnectionState.h */, 17480 413CC11C25E7D98D00D59C4B /* RTCPriorityType.h */, 17480 17481 412BA5FE218C651800365474 /* RTCPMuxPolicy.h */, 17481 17482 412DE4B6219285BF0075F3A7 /* RTCRtpCapabilities.h */, … … 35088 35089 B2227A590D00BF220071B782 /* SVGPathElement.h in Headers */, 35089 35090 8476C9F011DF6A5800555B02 /* SVGPathParser.h in Headers */, 35091 413CC11D25E7D98E00D59C4B /* RTCPriorityType.h in Headers */, 35090 35092 B2227A5B0D00BF220071B782 /* SVGPathSeg.h in Headers */, 35091 35093 B2227A810D00BF220071B782 /* SVGPathSegList.h in Headers */, -
trunk/Source/WebCore/platform/mediastream/RTCDataChannelHandler.h
r263797 r273550 28 28 #if ENABLE(WEB_RTC) 29 29 30 #include "RTCPriorityType.h" 30 31 #include <wtf/Optional.h> 31 32 #include <wtf/text/WTFString.h> … … 40 41 Optional<bool> negotiated; 41 42 Optional<unsigned short> id; 43 RTCPriorityType priority { RTCPriorityType::Low }; 42 44 }; 43 45
Note: See TracChangeset
for help on using the changeset viewer.