WebKit Bugzilla
Attachment 370752 Details for
Bug 195930
: createAnswer() SDP Rejected by setLocalDescription()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-195930-20190528100046.patch (text/plain), 7.23 KB, created by
youenn fablet
on 2019-05-28 10:00:46 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2019-05-28 10:00:46 PDT
Size:
7.23 KB
patch
obsolete
>Subversion Revision: 245747 >diff --git a/Source/ThirdParty/libwebrtc/ChangeLog b/Source/ThirdParty/libwebrtc/ChangeLog >index 3865cf85cd9c0f8de50c7b53625988ac52f500f4..742229b48b6cd4b8989275305ab75c854f16e9f6 100644 >--- a/Source/ThirdParty/libwebrtc/ChangeLog >+++ b/Source/ThirdParty/libwebrtc/ChangeLog >@@ -1,3 +1,16 @@ >+2019-05-28 Youenn Fablet <youenn@apple.com> >+ >+ createAnswer() SDP Rejected by setLocalDescription() >+ https://bugs.webkit.org/show_bug.cgi?id=195930 >+ <rdar://problem/49030489> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Make sure to check packetization mode parameter when matching H264 video codec. >+ >+ * Source/webrtc/media/base/codec.cc: >+ * WebKit/0001-fix-195930.patch: Added. >+ > 2019-05-09 Andy Estes <aestes@apple.com> > > Fix 32-bit watchOS engineering builds after r244726. >diff --git a/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc b/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >index 0a1c7156af80e0599d19e52752b8e2d731a51b3c..8e58932425a6ed89b9410a446c9ecc6a109b0665 100644 >--- a/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >+++ b/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >@@ -383,7 +383,7 @@ bool IsSameCodec(const std::string& name1, > return false; > // For every format besides H264 and VP9, comparing names is enough. > if (absl::EqualsIgnoreCase(name1, kH264CodecName)) >- return webrtc::H264::IsSameH264Profile(params1, params2); >+ return webrtc::H264::IsSameH264Profile(params1, params2) && IsSameH264PacketizationMode(params1, params2); > if (absl::EqualsIgnoreCase(name1, kVp9CodecName)) > return webrtc::IsSameVP9Profile(params1, params2); > return true; >diff --git a/Source/ThirdParty/libwebrtc/WebKit/0001-fix-195930.patch b/Source/ThirdParty/libwebrtc/WebKit/0001-fix-195930.patch >new file mode 100644 >index 0000000000000000000000000000000000000000..0b225e9a9e57528bf511ae21a24a52a6aaaabdf9 >--- /dev/null >+++ b/Source/ThirdParty/libwebrtc/WebKit/0001-fix-195930.patch >@@ -0,0 +1,25 @@ >+From b6477d2493b4cf0875838ddcd725ed40a8725cc2 Mon Sep 17 00:00:00 2001 >+From: Youenn Fablet <youenn@apple.com> >+Date: Tue, 28 May 2019 09:58:04 -0700 >+Subject: [PATCH] fix-195930 >+ >+--- >+ Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc | 2 +- >+ 1 file changed, 1 insertion(+), 1 deletion(-) >+ >+diff --git a/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc b/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >+index 0a1c7156af8..c4cd02d8db4 100644 >+--- a/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >++++ b/Source/ThirdParty/libwebrtc/Source/webrtc/media/base/codec.cc >+@@ -383,7 +383,7 @@ bool IsSameCodec(const std::string& name1, >+ return false; >+ // For every format besides H264 and VP9, comparing names is enough. >+ if (absl::EqualsIgnoreCase(name1, kH264CodecName)) >+- return webrtc::H264::IsSameH264Profile(params1, params2); >++ return webrtc::H264::IsSameH264Profile(params1, params2) && IsSameH264PacketizationMode(params1, params2); >+ if (absl::EqualsIgnoreCase(name1, kVp9CodecName)) >+ return webrtc::IsSameVP9Profile(params1, params2); >+ return true; >+-- >+2.20.1 (Apple Git-117) >+ >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 69c447a8f10edc5b070ff296fe1ef30b1ce3cd64..7ecf88325732f822bcfca41407bbdb4732c4a3b8 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-05-28 Youenn Fablet <youenn@apple.com> >+ >+ createAnswer() SDP Rejected by setLocalDescription() >+ https://bugs.webkit.org/show_bug.cgi?id=195930 >+ <rdar://problem/49030489> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * webrtc/h264-packetization-mode-expected.txt: Added. >+ * webrtc/h264-packetization-mode.html: Added. >+ > 2019-05-24 Youenn Fablet <youenn@apple.com> > > media/video-remote-control-playpause.html is timing out after r245712 >diff --git a/LayoutTests/webrtc/h264-packetization-mode-expected.txt b/LayoutTests/webrtc/h264-packetization-mode-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5f88811f136a53fe5a6be119051c91900d3c68a4 >--- /dev/null >+++ b/LayoutTests/webrtc/h264-packetization-mode-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Make sure packetization mode 1 is offered >+PASS Offer without explicit H264 packetization mode >+PASS Offer with explicit H264 packetization mode 0 >+PASS Offer with explicit H264 packetization mode 1 >+ >diff --git a/LayoutTests/webrtc/h264-packetization-mode.html b/LayoutTests/webrtc/h264-packetization-mode.html >new file mode 100644 >index 0000000000000000000000000000000000000000..5a4ae6d4f75e6c39cf800e4a5b9f865722d59af3 >--- /dev/null >+++ b/LayoutTests/webrtc/h264-packetization-mode.html >@@ -0,0 +1,70 @@ >+<!doctype html> >+<html> >+ <head> >+ <meta charset="utf-8"> >+ <title>Testing H264 packetization mode</title> >+ <script src="../resources/testharness.js"></script> >+ <script src="../resources/testharnessreport.js"></script> >+ </head> >+ <body> >+ <script> >+promise_test(async t => { >+ const pc = new RTCPeerConnection; >+ pc.addTransceiver("video"); >+ const offer = await pc.createOffer(); >+ >+ assert_true(offer.sdp.indexOf("packetization-mode=1;profile-level-id=42e01f") !== -1, "baseline, packetization mode 1"); >+ assert_false(offer.sdp.indexOf("packetization-mode=0") !== -1, "packetization mode 0 is not offered"); >+}, "Make sure packetization mode 1 is offered"); >+ >+const sdpStart = `v=0 >+o=- 3761869441 3761869441 IN IP4 0.0.0.0 >+s=test >+c=IN IP4 0.0.0.0 >+t=0 0 >+a=group:BUNDLE video0 >+m=video 1 RTP/SAVPF 99 >+a=setup:actpass >+a=rtcp:9 IN IP4 0.0.0.0 >+a=rtcp-mux >+a=recvonly >+a=mid:video0 >+a=rtpmap:99 H264/90000 >+a=ssrc:3599710107 cname:test-cname >+a=ice-ufrag:ZLgu >+a=ice-pwd:3/gb3GZYQ2wgxAHnFRT1bf >+a=fingerprint:sha-256 5A:08:09:0D:E9:1C:78:20:65:64:95:6E:FE:29:91:E1:CC:6E:47:F1:A4:7A:8E:F9:6F:4D:A4:7A:7A:A2:76:BF`; >+ >+promise_test(async t => { >+ const sdp = sdpStart +` >+`; >+ const pc = new RTCPeerConnection(); >+ await pc.setRemoteDescription(new RTCSessionDescription({sdp: sdp, type: 'offer'})).then(() => { >+ assert_unreached(); >+ }, (e) => { >+ assert_equals(e.name, "InvalidAccessError"); >+ assert_equals(e.message, "Failed to set remote offer sdp: Failed to set remote video description send parameters."); >+ }); >+}, "Offer without explicit H264 packetization mode"); >+ >+promise_test(async t => { >+ const sdp = sdpStart +` >+a=fmtp:99 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=0 >+`; >+ const pc = new RTCPeerConnection(); >+ await pc.setRemoteDescription(new RTCSessionDescription({sdp: sdp, type: 'offer'})).then(() => { >+ assert_unreached(); >+ }, (e) => { >+ assert_equals(e.name, "InvalidAccessError"); >+ assert_equals(e.message, "Failed to set remote offer sdp: Failed to set remote video description send parameters."); >+ }); >+}, "Offer with explicit H264 packetization mode 0"); >+ >+promise_test(async t => { >+ const sdp = sdpStart +` >+a=fmtp:99 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 >+`; >+ const pc = new RTCPeerConnection; >+ return pc.setRemoteDescription(new RTCSessionDescription({sdp: sdp, type: 'offer'})); >+}, "Offer with explicit H264 packetization mode 1"); >+</script>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 195930
: 370752