Source/ThirdParty/libwebrtc:
[WebKit-https.git] / Source / ThirdParty / libwebrtc / ChangeLog
1 2020-06-05  Youenn Fablet  <youenn@apple.com>
2
3         Ad support for media-source stats
4         https://bugs.webkit.org/show_bug.cgi?id=212702
5
6         Reviewed by Eric Carlson.
7
8         * Configurations/libwebrtc.iOS.exp:
9         * Configurations/libwebrtc.iOSsim.exp:
10         * Configurations/libwebrtc.mac.exp:
11
12 2020-06-04  Tim Horton  <timothy_horton@apple.com>
13
14         Work around broken system version macro
15         https://bugs.webkit.org/show_bug.cgi?id=212726
16
17         Reviewed by Dan Bernstein.
18
19         * Configurations/DebugRelease.xcconfig:
20
21 2020-06-02  Commit Queue  <commit-queue@webkit.org>
22
23         Unreviewed, reverting r262290.
24         https://bugs.webkit.org/show_bug.cgi?id=212638
25
26         it is not yet ready (Requested by youenn on #webkit).
27
28         Reverted changeset:
29
30         "Enable VTB required low latency code path"
31         https://bugs.webkit.org/show_bug.cgi?id=210609
32         https://trac.webkit.org/changeset/262290
33
34 2020-05-29  Keith Rollin  <krollin@apple.com>
35
36         Revert switch to XCBuild
37         https://bugs.webkit.org/show_bug.cgi?id=212530
38         <rdar://problem/63764632>
39
40         Unreviewed build fix.
41
42         Bug 209890 enabled the use of XCBuild by default. Since then, some
43         build issues have shown up. While addressing them, temporarily turn
44         off the use of XCBuild by default.
45
46         * libwebrtc.xcodeproj/project.pbxproj:
47
48 2020-05-29  Youenn Fablet  <youenn@apple.com>
49
50         Enable VTB required low latency code path
51         https://bugs.webkit.org/show_bug.cgi?id=210609
52         <rdar://problem/61890332>
53
54         Reviewed by Eric Carlson.
55
56         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
57         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
58         Declare the new key since it is now in a private header.
59
60 2020-05-26  Keith Rollin  <krollin@apple.com>
61
62         Enable the use of XCBuild by default in Apple builds
63         https://bugs.webkit.org/show_bug.cgi?id=209890
64         <rdar://problem/44182078>
65
66         Reviewed by Darin Adler.
67
68         Switch from the "legacy" Xcode build system to the "new" build system
69         (also known as "XCBuild"). Switching to the new system speeds up
70         builds by a small percentage, better validates projects for
71         build-related issues (such as dependency cycles), lets WebKit benefit
72         from future improvements in XCBuild such as those coming from the
73         underlying llbuild open source project, and prepares us for any other
74         tools built for this new ecosystem.
75
76         Specific changes:
77
78         - Remove Xcode project and workspace settings that selected the Build
79           system, allowing the default to take hold (which is currently the
80           New build system).
81         - Updated webkitdirs.pm with a terser check for Xcode version.
82         - Update build-webkit and Makefile.shared to be explicit when using
83           the old build system (no longer treat it as a default or fall-back
84           configuration).
85         - Update various xcconfig files similarly to treat the default as
86           using the new build system.
87         - Update various post-processing build steps to check for Xcode 11.4
88           and to no longer treat the default as using the old build system.
89
90         * libwebrtc.xcodeproj/project.pbxproj:
91
92 2020-05-13  Jer Noble  <jer.noble@apple.com>
93
94         Replace isNullFunctionPointer with real weak-linking support
95         https://bugs.webkit.org/show_bug.cgi?id=211751
96
97         Reviewed by Sam Weinig.
98
99         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
100
101 2020-05-11  Saam Barati  <sbarati@apple.com>
102
103         Remove OTHER_CFLAGS="" in libwebrtc pbxproj
104         https://bugs.webkit.org/show_bug.cgi?id=211742
105
106         Reviewed by Darin Adler.
107
108         I believe this was done by accident in a larger patch. If we did indeed
109         want to define OTHER_CFLAGS to be empty, the right place for that is inside
110         the xcconfig files, not the pbxproj files.
111
112         * libwebrtc.xcodeproj/project.pbxproj:
113
114 2020-04-30  Youenn Fablet  <youenn@apple.com>
115
116         Disable low latency encoder on iOS
117         https://bugs.webkit.org/show_bug.cgi?id=211229
118
119         Reviewed by Eric Carlson.
120
121         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
122         This is not yet fully ready.
123
124 2020-04-15  Jer Noble  <jer.noble@apple.com>
125
126         isNullFunctionPointer() can fail for symbols not explicitly marked as weakly linked.
127         https://bugs.webkit.org/show_bug.cgi?id=210532
128
129         Reviewed by Tim Horton.
130
131         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
132
133 2020-04-09  Keith Rollin  <krollin@apple.com>
134
135         Set ENTITLEMENTS_REQUIRED=NO for some Xcode build targets
136         https://bugs.webkit.org/show_bug.cgi?id=210250
137         <rdar://problem/61502270>
138
139         Reviewed by Jonathan Bedard.
140
141         When building with the public version of Xcode 11.4, with XCBuild
142         enabled, and targeting the iOS device, some build targets issue an
143         error like:
144
145             error: An empty identity is not valid when signing a binary for
146                 the product type 'Command-line Tool'. (in target 'yasm' from
147                 project 'libwebrtc')
148
149         A comment in <rdar://problem/47092353> suggests setting
150         ENTITLEMENTS_REQUIRED=NO to relax the requirement. To that end, when
151         building with the public Xcode, establish that setting for the
152         affected targets.
153
154         * Configurations/Base.xcconfig:
155
156 2020-04-08  Truitt Savell  <tsavell@apple.com>
157
158         Unreviewed, reverting r259708.
159
160         Broke the iOS device Build
161
162         Reverted changeset:
163
164         "Enable the use of XCBuild by default in Apple builds"
165         https://bugs.webkit.org/show_bug.cgi?id=209890
166         https://trac.webkit.org/changeset/259708
167
168 2020-04-08  Keith Rollin  <krollin@apple.com>
169
170         Enable the use of XCBuild by default in Apple builds
171         https://bugs.webkit.org/show_bug.cgi?id=209890
172         <rdar://problem/44182078>
173
174         Reviewed by Darin Adler.
175
176         Switch from the "legacy" Xcode build system to the "new" build system
177         (also known as "XCBuild"). Switching to the new system speeds up
178         builds by a small percentage, better validates projects for
179         build-related issues (such as dependency cycles), lets WebKit benefit
180         from future improvements in XCBuild such as those coming from the
181         underlying llbuild open source project, and prepares us for any other
182         tools built for this new ecosystem.
183
184         Specific changes:
185
186         - Remove Xcode project and workspace settings that selected the Build
187           system, allowing the default to take hold (which is currently the
188           New build system).
189         - Updated webkitdirs.pm with a terser check for Xcode version.
190         - Update build-webkit and Makefile.shared to be explicit when using
191           the old build system (no longer treat it as a default or fall-back
192           configuration).
193         - Update various xcconfig files similarly to treat the default as
194           using the new build system.
195         - Update various post-processing build steps to check for Xcode 11.4
196           and to no longer treat the default as using the old build system.
197
198         * libwebrtc.xcodeproj/project.pbxproj:
199
200 2020-04-06  youenn fablet  <youenn@apple.com>
201
202         Add HEVC support in GPU Process for WebRTC
203         https://bugs.webkit.org/show_bug.cgi?id=209857
204
205         Reviewed by Eric Carlson.
206
207         * Configurations/libwebrtc.iOS.exp:
208         * Configurations/libwebrtc.iOSsim.exp:
209         * Configurations/libwebrtc.mac.exp:
210         * Source/webrtc/sdk/WebKit/WebKitDecoder.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.h.
211         * Source/webrtc/sdk/WebKit/WebKitDecoder.mm: Added.
212         (-[WK_RTCLocalVideoH264H265Decoder initH264DecoderWithCallback:]):
213         (-[WK_RTCLocalVideoH264H265Decoder initH265DecoderWithCallback:]):
214         (-[WK_RTCLocalVideoH264H265Decoder decodeData:size:timeStamp:]):
215         (-[WK_RTCLocalVideoH264H265Decoder releaseDecoder]):
216         (webrtc::videoDecoderCallbacks):
217         (webrtc::setVideoDecoderCallbacks):
218         (webrtc::RemoteVideoDecoder::RemoteVideoDecoder):
219         (webrtc::RemoteVideoDecoder::decodeComplete):
220         (webrtc::RemoteVideoDecoder::InitDecode):
221         (webrtc::RemoteVideoDecoder::Decode):
222         (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback):
223         (webrtc::RemoteVideoDecoder::Release):
224         (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory):
225         (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
226         (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder):
227         (webrtc::createWebKitDecoderFactory):
228         (webrtc::createLocalH264Decoder):
229         (webrtc::createLocalH265Decoder):
230         (webrtc::releaseLocalDecoder):
231         (webrtc::decodeFrame):
232         * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
233         (-[WK_RTCLocalVideoH264H265Encoder initWithCodecInfo:]):
234         (-[WK_RTCLocalVideoH264H265Encoder setCallback:]):
235         (-[WK_RTCLocalVideoH264H265Encoder releaseEncoder]):
236         (-[WK_RTCLocalVideoH264H265Encoder startEncodeWithSettings:numberOfCores:]):
237         (-[WK_RTCLocalVideoH264H265Encoder encode:codecSpecificInfo:frameTypes:]):
238         (-[WK_RTCLocalVideoH264H265Encoder setBitrate:framerate:]):
239         (webrtc::createLocalEncoder):
240         (webrtc::releaseLocalEncoder):
241         (webrtc::initializeLocalEncoder):
242         (webrtc::encodeLocalEncoderFrame):
243         (webrtc::setLocalEncoderRates):
244         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
245         (): Deleted.
246         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
247         (webrtc::videoDecoderCallbacks): Deleted.
248         (webrtc::setVideoDecoderCallbacks): Deleted.
249         (webrtc::RemoteVideoDecoder::RemoteVideoDecoder): Deleted.
250         (webrtc::RemoteVideoDecoder::decodeComplete): Deleted.
251         (webrtc::RemoteVideoDecoder::InitDecode): Deleted.
252         (webrtc::RemoteVideoDecoder::Decode): Deleted.
253         (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback): Deleted.
254         (webrtc::RemoteVideoDecoder::Release): Deleted.
255         (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory): Deleted.
256         (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const): Deleted.
257         (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder): Deleted.
258         (webrtc::createWebKitDecoderFactory): Deleted.
259         (webrtc::createLocalDecoder): Deleted.
260         (webrtc::releaseLocalDecoder): Deleted.
261         (webrtc::decodeFrame): Deleted.
262         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h:
263         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
264         (-[RTCVideoDecoderH265 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
265         (-[RTCVideoDecoderH265 decodeData:size:timeStamp:]):
266         * libwebrtc.xcodeproj/project.pbxproj:
267
268 2020-04-03  David Kilzer  <ddkilzer@apple.com>
269
270         [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited)
271         <https://webkit.org/b/209963>
272         <rdar://problem/61257504>
273
274         Reviewed by Alexey Proskuryakov.
275
276         * Configurations/Base.xcconfig:
277         - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and
278           ASAN_OTHER_LDFLAGS.
279
280 2020-04-03  youenn fablet  <youenn@apple.com>
281
282         Remove rtpplay.exe from the libwebrtc source folder
283         https://bugs.webkit.org/show_bug.cgi?id=209957
284
285         Reviewed by Eric Carlson.
286
287         * .gitignore:
288         * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
289
290 2020-04-03  youenn fablet  <youenn@apple.com>
291
292         Add initial support for WebRTC HEVC
293         https://bugs.webkit.org/show_bug.cgi?id=204283
294
295         Reviewed by Eric Carlson.
296
297         Add H265 packetization/depacketization and ObjC H265 encoder/decoder.
298         Support is switchable using a boolean given to the decoder/encoder factories.
299
300         * Source/webrtc/api/video/video_codec_type.h:
301         * Source/webrtc/api/video_codecs/video_codec.cc:
302         * Source/webrtc/api/video_codecs/video_codec.h:
303         (webrtc::VideoCodecH265::operator!= const):
304         * Source/webrtc/api/video_codecs/video_encoder.cc:
305         * Source/webrtc/api/video_codecs/video_encoder.h:
306         * Source/webrtc/api/video_codecs/video_encoder_config.cc:
307         * Source/webrtc/api/video_codecs/video_encoder_config.h:
308         * Source/webrtc/build_overrides/build.gni:
309         * Source/webrtc/call/rtp_payload_params.cc:
310         * Source/webrtc/common_video/BUILD.gn:
311         * Source/webrtc/common_video/h265/h265_common.cc: Added.
312         * Source/webrtc/common_video/h265/h265_common.h: Added.
313         * Source/webrtc/common_video/h265/h265_pps_parser.cc: Added.
314         * Source/webrtc/common_video/h265/h265_pps_parser.h: Added.
315         * Source/webrtc/common_video/h265/h265_sps_parser.cc: Added.
316         * Source/webrtc/common_video/h265/h265_sps_parser.h: Added.
317         * Source/webrtc/common_video/h265/h265_vps_parser.cc: Added.
318         * Source/webrtc/common_video/h265/h265_vps_parser.h: Added.
319         * Source/webrtc/media/base/media_constants.cc:
320         * Source/webrtc/media/base/media_constants.h:
321         * Source/webrtc/modules/rtp_rtcp/BUILD.gn:
322         * Source/webrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc:
323         * Source/webrtc/modules/rtp_rtcp/source/h265_sps_parser.cc: Added.
324         * Source/webrtc/modules/rtp_rtcp/source/h265_sps_parser.h: Added.
325         (webrtc::H265SpsParser::width):
326         (webrtc::H265SpsParser::height):
327         * Source/webrtc/modules/rtp_rtcp/source/rtp_format.cc:
328         * Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.cc: Added.
329         * Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.h: Added.
330         (webrtc::RtpPacketizerH265::Packet::Packet):
331         (webrtc::RtpPacketizerH265::PacketUnit::PacketUnit):
332         (webrtc::VideoRtpDepacketizerH265::~VideoRtpDepacketizerH265):
333         * Source/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc:
334         * Source/webrtc/modules/rtp_rtcp/source/rtp_video_header.h:
335         * Source/webrtc/modules/video_coding/BUILD.gn:
336         * Source/webrtc/modules/video_coding/codecs/h265/include/h265_globals.h: Added.
337         * Source/webrtc/modules/video_coding/encoded_frame.cc:
338         * Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc: Added.
339         * Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.h: Added.
340         * Source/webrtc/modules/video_coding/include/video_codec_interface.h:
341         * Source/webrtc/modules/video_coding/jitter_buffer_common.h:
342         * Source/webrtc/modules/video_coding/packet.cc:
343         * Source/webrtc/modules/video_coding/packet_buffer.cc:
344         * Source/webrtc/modules/video_coding/session_info.cc:
345         * Source/webrtc/modules/video_coding/session_info.h:
346         * Source/webrtc/rtc_base/experiments/min_video_bitrate_experiment.cc:
347         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
348         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
349         (webrtc::createWebKitEncoderFactory):
350         (webrtc::createWebKitDecoderFactory):
351         * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265+Private.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
352         * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265.h: Added.
353         * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265.mm: Added.
354         (-[RTCCodecSpecificInfoH265 nativeCodecSpecificInfo]):
355         * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
356         * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
357         (-[RTCDefaultVideoDecoderFactory initWithH265:]):
358         (-[RTCDefaultVideoDecoderFactory supportedCodecs]):
359         (-[RTCDefaultVideoDecoderFactory createDecoder:]):
360         * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
361         * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
362         (-[RTCDefaultVideoEncoderFactory initWithH265:]):
363         (+[RTCDefaultVideoEncoderFactory supportedCodecs]):
364         (-[RTCDefaultVideoEncoderFactory createEncoder:]):
365         (-[RTCDefaultVideoEncoderFactory supportedCodecs]):
366         * Source/webrtc/sdk/objc/components/video_codec/RTCH265ProfileLevelId.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
367         * Source/webrtc/sdk/objc/components/video_codec/RTCH265ProfileLevelId.mm: Added.
368         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
369         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm: Added.
370         (RTCH265FrameDecodeParams::RTCH265FrameDecodeParams):
371         (h265DecompressionOutputCallback):
372         (-[RTCVideoDecoderH265 init]):
373         (-[RTCVideoDecoderH265 dealloc]):
374         (-[RTCVideoDecoderH265 startDecodeWithNumberOfCores:]):
375         (-[RTCVideoDecoderH265 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
376         (-[RTCVideoDecoderH265 setCallback:]):
377         (-[RTCVideoDecoderH265 releaseDecoder]):
378         (-[RTCVideoDecoderH265 resetDecompressionSession]):
379         (-[RTCVideoDecoderH265 configureDecompressionSession]):
380         (-[RTCVideoDecoderH265 destroyDecompressionSession]):
381         (-[RTCVideoDecoderH265 setVideoFormat:]):
382         (-[RTCVideoDecoderH265 implementationName]):
383         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
384         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.mm: Added.
385         (-[RTCVideoEncoderH265 initWithCodecInfo:]):
386         (-[RTCVideoEncoderH265 dealloc]):
387         (-[RTCVideoEncoderH265 startEncodeWithSettings:numberOfCores:]):
388         (-[RTCVideoEncoderH265 encode:codecSpecificInfo:frameTypes:]):
389         (-[RTCVideoEncoderH265 setCallback:]):
390         (-[RTCVideoEncoderH265 setBitrate:framerate:]):
391         (-[RTCVideoEncoderH265 releaseEncoder]):
392         (-[RTCVideoEncoderH265 resetCompressionSession]):
393         (-[RTCVideoEncoderH265 configureCompressionSession]):
394         (-[RTCVideoEncoderH265 destroyCompressionSession]):
395         (-[RTCVideoEncoderH265 implementationName]):
396         (-[RTCVideoEncoderH265 setBitrateBps:]):
397         (-[RTCVideoEncoderH265 setEncoderBitrateBps:]):
398         (-[RTCVideoEncoderH265 frameWasEncoded:flags:sampleBuffer:width:height:renderTimeMs:timestamp:rotation:]):
399         (-[RTCVideoEncoderH265 scalingSettings]):
400         * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.cc:
401         * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.h:
402         * Source/webrtc/sdk/objc/native/src/objc_video_decoder_factory.mm:
403         (webrtc::ObjCVideoDecoderFactory::CreateVideoDecoder):
404         * Source/webrtc/sdk/objc/native/src/objc_video_encoder_factory.mm:
405         (webrtc::ObjCVideoEncoderFactory::CreateVideoEncoder):
406         * Source/webrtc/video/rtp_video_stream_receiver.cc:
407         * Source/webrtc/video/rtp_video_stream_receiver.h:
408         * Source/webrtc/video/send_statistics_proxy.cc:
409         * Source/webrtc/video/video_receive_stream.cc:
410         * Source/webrtc/video/video_stream_encoder.cc:
411         * libwebrtc.xcodeproj/project.pbxproj:
412
413 2020-04-02  Keith Rollin  <krollin@apple.com>
414
415         Sort libwebrtc Xcode project file
416
417         * libwebrtc.xcodeproj/project.pbxproj:
418
419 2020-04-02  Simon Fraser  <simon.fraser@apple.com>
420
421         Build fix after r259385.
422
423         Reviewed by David Kilzer, Youenn Fablet.
424
425         Convert isStandardFrameSize() into a lambda function since it only has one call site.
426
427         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
428         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
429         (isStandardFrameSize): Deleted.
430
431 2020-04-02  Youenn Fablet  <youenn@apple.com>
432
433         Temporarily restrict kVTVideoEncoderSpecification_RequiredLowLatency use to iOS
434         https://bugs.webkit.org/show_bug.cgi?id=209902
435
436         Reviewed by Eric Carlson.
437
438         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
439         Our setup with this key does not work yet on MacOS, disable it for now on MacOS.
440
441 2020-04-02  Zan Dobersek  <zdobersek@igalia.com>
442
443         Unreviewed, fix libwebrtc build with GCC 9 after the M82 bump.
444
445         GCC 9 fails to process the FrameGeneratorCapturerConfig::ImageSlides::Crop
446         class, throwing an error due to the default member initializer for the
447         `scroll_duration` member being required before the end of the
448         encapsulating FrameGeneratorCapturerConfig::ImageSlides class.
449
450         This can be avoided by default-initializing the
451         FrameGeneratorCapturerConfig::ImageSlides::Crop member variable instead
452         of specific members of that class.
453
454         Similar fix will be pushed to the upstream repository.
455
456         * Source/webrtc/test/frame_generator_capturer.h:
457
458 2020-04-01  youenn fablet  <youenn@apple.com> and Victor M. Jaquez <vjaquez@igalia.com>
459
460         Bump libwebrtc to M82
461         https://bugs.webkit.org/show_bug.cgi?id=209542
462
463         Reviewed by Eric Carlson.
464
465         * CMakeLists.txt:
466         * Source/webrtc: Updated.
467         * Source/webrtc/audio/utility/channel_mixer.cc: Added cstring.h include.
468         * Source/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h: Added memoty.h include.
469         * libwebrtc.xcodeproj/project.pbxproj:
470
471 2020-04-01  Youenn Fablet  <youenn@apple.com>
472
473         Use kVTVideoEncoderSpecification_RequiredLowLatency instead of kVTVideoEncoderList_EncoderID
474         https://bugs.webkit.org/show_bug.cgi?id=209800
475
476         Reviewed by Eric Carlson.
477
478         For recent OS versions, disable use of VCP.
479         Instead, use VTB compression session with kVTVideoEncoderSpecification_RequiredLowLatency set to true.
480         We keep MacOS code path checking frame size for public builds running on devices without hardware encoders.
481
482         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
483         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
484         (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
485         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
486         (isStandardFrameSize): Deleted.
487
488 2020-03-27  youenn fablet  <youenn@apple.com>
489
490         Bump boringssl version to M82
491         https://bugs.webkit.org/show_bug.cgi?id=209538
492
493         Reviewed by Eric Carlson.
494
495         * CMakeLists.txt:
496         * Source/third_party/boringssl: Updated.
497         * WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
498         * libwebrtc.xcodeproj/project.pbxproj:
499
500 2020-03-26  Alexey Proskuryakov  <ap@apple.com>
501
502         REGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
503         Roll back the patch.
504
505 2020-03-26  youenn fablet  <youenn@apple.com>
506
507         Bump boringssl version to M82
508         https://bugs.webkit.org/show_bug.cgi?id=209538
509
510         Reviewed by Eric Carlson.
511
512         * CMakeLists.txt:
513         * Source/third_party/boringssl: Updated.
514         * WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
515         * libwebrtc.xcodeproj/project.pbxproj:
516
517 2020-03-25  youenn fablet  <youenn@apple.com>
518
519         Bump opus to M82
520         https://bugs.webkit.org/show_bug.cgi?id=209540
521
522         Reviewed by Eric Carlson.
523
524         * Source/third_party/opus: Updated.
525
526 2020-03-25  youenn fablet  <youenn@apple.com>
527
528         Bump libyuv to M82
529         https://bugs.webkit.org/show_bug.cgi?id=209539
530
531         Reviewed by Eric Carlson.
532
533         * Source/third_party/libyuv: Updated.
534
535 2020-03-25  youenn fablet  <youenn@apple.com>
536
537         Bump rnnoise to M82
538         https://bugs.webkit.org/show_bug.cgi?id=209541
539
540         Reviewed by Eric Carlson.
541
542         * CMakeLists.txt:
543         * Source/third_party/rnnoise: Updated.
544         * libwebrtc.xcodeproj/project.pbxproj:
545
546 2020-03-19  Alex Christensen  <achristensen@webkit.org>
547
548         Cherry pick usrsctp commit 790a7a2555aefb392a5a69923f1e9d17b4968467
549         https://bugs.webkit.org/show_bug.cgi?id=209204
550         <rdar://problem/59362671>
551
552         Reviewed by Youenn Fablet.
553
554         * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
555         * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
556
557 2020-03-17  Carlos Alberto Lopez Perez  <clopez@igalia.com>
558
559         [CMake] libopus 1.1 its enough for building WebKitGTK with ENABLE_WEB_RTC
560         https://bugs.webkit.org/show_bug.cgi?id=209209
561
562         Reviewed by Konstantin Tokarev.
563
564         Ubuntu 18.04 ships libopus 1.1.2 which its enough for building with -DENABLE_WEB_RTC=ON
565
566         * CMakeLists.txt:
567
568 2020-03-13  Konstantin Tokarev  <annulen@yandex.ru>
569
570         [CMake] Eleminate mismatches between Find* module names and variables they set
571         https://bugs.webkit.org/show_bug.cgi?id=208948
572
573         Reviewed by Michael Catanzaro.
574
575         * CMakeLists.txt:
576         * cmake/FindAlsaLib.cmake:
577         * cmake/FindLibEvent.cmake:
578         * cmake/FindLibOpus.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindOpus.cmake.
579         * cmake/FindLibVpx.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindVpx.cmake.
580
581 2020-03-02  Alan Coon  <alancoon@apple.com>
582
583         Add new Mac target numbers
584         https://bugs.webkit.org/show_bug.cgi?id=208398
585
586         Reviewed by Alexey Proskuryakov.
587
588         * Configurations/Base.xcconfig:
589         * Configurations/DebugRelease.xcconfig:
590         * Configurations/Version.xcconfig:
591         * Configurations/WebKitTargetConditionals.xcconfig:
592
593 2020-02-09  Keith Rollin  <krollin@apple.com>
594
595         Re-enable LTO for ARM builds
596         https://bugs.webkit.org/show_bug.cgi?id=207402
597         <rdar://problem/49190767>
598
599         Reviewed by Sam Weinig.
600
601         Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
602         Enabling it for ARM was left out due to a compiler issue. That issue
603         has been fixed, and so now we can re-enable LTO for ARM.
604
605         * Configurations/Base.xcconfig:
606
607 2020-02-03  youenn fablet  <youenn@apple.com>
608
609         Make sure RTCVideoEncoderH264 generate a keyframe even if the frame that was supposed to be a key frame was dropped
610         https://bugs.webkit.org/show_bug.cgi?id=207108
611
612         Reviewed by Eric Carlson.
613
614         Add a parameter telling whether a frame to be encoded should be a key frame.
615         In encoder callback, if the frame is expected to be a key frame, set a flag to force the next frame to be a key frame.
616         This ensures that keyframe sending is not delayed in case encoding is dropping or failing to encode frames.
617
618         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
619         (-[RTCVideoEncoderH264 initWithCodecInfo:]):
620         (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
621         (-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:isKeyFrameRequired:]):
622
623 2020-01-20  youenn fablet  <youenn@apple.com>
624
625         Setting kVTCompressionPropertyKey_DataRateLimits on RTCVideoEncoderH264 fails
626         https://bugs.webkit.org/show_bug.cgi?id=206402
627
628         Reviewed by Eric Carlson.
629
630         Add helper routine dedicated to setting VTB/VCP array value properties.
631         Logging shows the bitrate is then set appropriately.
632
633         * Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
634         * Source/webrtc/sdk/objc/components/video_codec/helpers.h:
635
636 2020-01-06  youenn fablet  <youenn@apple.com>
637
638         Implement RTC VTB encoders in GPUProcess
639         https://bugs.webkit.org/show_bug.cgi?id=205713
640
641         Reviewed by Eric Carlson.
642
643         Add support for remote video encoders created and used through simple routines.
644         Add factory to create video encoders implemented elsewhere than in WebRTC backend.
645         This is used for H264 encoders.
646
647         * Configurations/libwebrtc.iOS.exp:
648         * Configurations/libwebrtc.iOSsim.exp:
649         * Configurations/libwebrtc.mac.exp:
650         * Source/webrtc/sdk/WebKit/WebKitEncoder.h: Added.
651         (webrtc::WebKitRTPFragmentationHeader::value):
652         (webrtc::WebKitEncodedFrameInfo::decode):
653         (webrtc::WebKitEncodedFrameInfo::encode const):
654         (webrtc::WebKitRTPFragmentationHeader::WebKitRTPFragmentationHeader):
655         (webrtc::WebKitRTPFragmentationHeader::encode const):
656         (webrtc::WebKitRTPFragmentationHeader::decode):
657         * Source/webrtc/sdk/WebKit/WebKitEncoder.mm: Added.
658         (webrtc::VideoEncoderFactoryWithSimulcast::CreateVideoEncoder):
659         (webrtc::videoEncoderCallbacks):
660         (webrtc::setVideoEncoderCallbacks):
661         (webrtc::RemoteVideoEncoder::RemoteVideoEncoder):
662         (webrtc::RemoteVideoEncoder::InitEncode):
663         (webrtc::RemoteVideoEncoder::Release):
664         (webrtc::RemoteVideoEncoder::Encode):
665         (webrtc::RemoteVideoEncoder::SetRates):
666         (webrtc::RemoteVideoEncoder::GetEncoderInfo const):
667         (webrtc::RemoteVideoEncoder::RegisterEncodeCompleteCallback):
668         (webrtc::RemoteVideoEncoder::encodeComplete):
669         (webrtc::createLocalEncoder):
670         (webrtc::releaseLocalEncoder):
671         (webrtc::initializeLocalEncoder):
672         (webrtc::encodeLocalEncoderFrame):
673         (webrtc::setLocalEncoderRates):
674         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
675         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
676         * libwebrtc.xcodeproj/project.pbxproj:
677
678 2020-01-01  youenn fablet  <youenn@apple.com>
679
680         Implement transceiver setCodecPreferences
681         https://bugs.webkit.org/show_bug.cgi?id=190840
682         <rdar://problem/45496326>
683
684         Reviewed by Eric Carlson.
685
686         * Configurations/libwebrtc.iOS.exp:
687         * Configurations/libwebrtc.iOSsim.exp:
688         * Configurations/libwebrtc.mac.exp:
689
690 2019-12-31  youenn fablet  <youenn@apple.com>
691
692         Implement RTC VTB decoders in GPUProcess
693         https://bugs.webkit.org/show_bug.cgi?id=205607
694
695         Reviewed by Eric Carlson.
696
697         Expose remote decoder abilities with C like functions.
698         This allows WebProcess to implement IPC-based decoders.
699         Expose VTB H264 decoder as C like functions.
700         This allows GPU process to instantiate wasily H2664 decoders.
701
702         * Configurations/libwebrtc.iOS.exp:
703         * Configurations/libwebrtc.iOSsim.exp:
704         * Configurations/libwebrtc.mac.exp:
705         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
706         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
707         (webrtc::videoDecoderCallbacks):
708         (webrtc::setVideoDecoderCallbacks):
709         (webrtc::RemoteVideoDecoder::RemoteVideoDecoder):
710         (webrtc::RemoteVideoDecoder::decodeComplete):
711         (webrtc::RemoteVideoDecoder::InitDecode):
712         (webrtc::RemoteVideoDecoder::Decode):
713         (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback):
714         (webrtc::RemoteVideoDecoder::Release):
715         (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory):
716         (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
717         (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder):
718         (webrtc::createWebKitDecoderFactory):
719         (webrtc::createLocalDecoder):
720         (webrtc::releaseLocalDecoder):
721         (webrtc::decodeFrame):
722         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.h:
723         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
724         (-[RTCVideoDecoderH264 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
725         (-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):
726
727 2019-12-30  youenn fablet  <youenn@apple.com>
728
729         Do not build yasm for iOS and iOS simulator
730         https://bugs.webkit.org/show_bug.cgi?id=205556
731         <rdar://problem/58159497>
732
733         Reviewed by Eric Carlson.
734
735         We want to stop compiling yasm for iOS/iOS simulator but we do not have a good way to do so right now.
736         Instead, compile a dummy main_noop.c for iOS/iOS simulator and build the executable with it.
737         This executable wil anyway not be used on these platforms.
738
739         * Configurations/yasm.xcconfig:
740         * Source/third_party/yasm/main_noop.c: Added.
741         (main):
742         * libwebrtc.xcodeproj/project.pbxproj:
743
744 2019-12-23  Commit Queue  <commit-queue@webkit.org>
745
746         Unreviewed, rolling out r253884.
747         https://bugs.webkit.org/show_bug.cgi?id=205565
748
749         Broke production builds (Requested by ap on #webkit).
750
751         Reverted changeset:
752
753         "Do not build yasm for iOS and iOS simulator"
754         https://bugs.webkit.org/show_bug.cgi?id=205556
755         https://trac.webkit.org/changeset/253884
756
757 2019-12-23  youenn fablet  <youenn@apple.com>
758
759         Do not build yasm for iOS and iOS simulator
760         https://bugs.webkit.org/show_bug.cgi?id=205556
761         <rdar://problem/58159497>
762
763         Reviewed by Eric Carlson.
764
765         Now that we no longer need yasm for iOS simulator, we can stop building it for iOS and iOS simulator.
766         We can also remove the hack to run yasm.
767
768         * Configurations/yasm.xcconfig:
769         * libwebrtc.xcodeproj/project.pbxproj:
770
771 2019-12-22  youenn fablet  <youenn@apple.com>
772
773         Compile libwebrtc without hardware acceleration for iOS simulator
774         https://bugs.webkit.org/show_bug.cgi?id=205491
775
776         Reviewed by Alex Christensen.
777
778         Use c routines instead of optimized versions for iOS simulator.
779
780         * Configurations/libvpx.xcconfig:
781         * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
782         * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd_no_acceleration.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h.
783         * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
784         * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
785         * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd_no_acceleration.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h.
786         * Source/third_party/libvpx/source/libvpx/vpx_ports/system_state.h:
787         * libwebrtc.xcodeproj/project.pbxproj:
788
789 2019-12-08  youenn fablet  <youenn@apple.com>
790
791         Add more logging to physical socket server when a socket file descriptor is invalid
792         https://bugs.webkit.org/show_bug.cgi?id=204948
793
794         Reviewed by Darin Adler.
795
796         * Source/webrtc/rtc_base/physical_socket_server.cc:
797
798 2019-11-15  Philippe Normand  <pnormand@igalia.com>
799
800         Unreviewed, GTK/WPE Debug build fix after r252472.
801
802         * CMakeLists.txt:
803
804 2019-11-07  Youenn Fablet  <youenn@apple.com> and Thibault Saunier <tsaunier@igalia.com>
805
806         Update libwebrtc to M78
807         https://bugs.webkit.org/show_bug.cgi?id=203897
808
809         Reviewed by Eric Carlson.
810
811         * webrtc: Updated
812
813 2019-11-04  Youenn Fablet  <youenn@apple.com>
814
815         Update libwebrtc third-party boringssl to M78
816         https://bugs.webkit.org/show_bug.cgi?id=202731
817
818         Reviewed by Alex Christensen.
819
820         * CMakeLists.txt:
821         * Source/third_party/boringssl: Updated.
822         * libwebrtc.xcodeproj/project.pbxproj:
823
824 2019-11-04  youenn fablet  <youenn@apple.com>
825
826         Unreviewed.
827         Revert https://trac.webkit.org/changeset/251980 since commit queue actually succeeded to land it previously.
828
829         * Source/third_party/yasm-1.3.0: removed.
830
831 2019-11-04  youenn fablet  <youenn@apple.com>
832
833         Rename yasm-1.3.0 folder to yasm
834         https://bugs.webkit.org/show_bug.cgi?id=202725
835
836         Reviewed by Eric Carlson.
837
838         To align with upstream repository.
839
840         * Configurations/yasm.xcconfig:
841         * Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
842         * libwebrtc.xcodeproj/project.pbxproj:
843
844 2019-10-18  youenn fablet  <youenn@apple.com>
845
846         Update libwebrtc third-party abseilcpp to M78
847         https://bugs.webkit.org/show_bug.cgi?id=202726
848         <rdar://problem/56147823>
849
850         Unreviewed.
851
852         * Source/third_party/abseil-cpp/absl/strings/string_view.h:
853         (absl::string_view::CheckLengthInternal):
854         Build fix for debug bots.
855
856 2019-10-17  Youenn Fablet  <youenn@apple.com>
857
858         Add libwebrtc third-party pfft
859         https://bugs.webkit.org/show_bug.cgi?id=202733
860
861         Reviewed by Eric Carlson.
862
863         Initial check-in of pfft which is now used in libwebrtc.
864
865         * Source/third_party/pffft: Added.
866
867 2019-10-10  Youenn Fablet  <youenn@apple.com>
868
869         Update libwebrtc third-party jsoncpp to M78
870         https://bugs.webkit.org/show_bug.cgi?id=202729
871
872         Reviewed by Eric Carlson.
873
874         * Source/third_party/jsoncpp: Updated.
875
876 2019-10-10  youenn fablet  <youenn@apple.com>
877
878         Rename yasm-1.3.0 folder to yasm
879         https://bugs.webkit.org/show_bug.cgi?id=202725
880
881         Reviewed by Eric Carlson.
882
883         To align with upstream repository.
884
885         * Configurations/yasm.xcconfig:
886         * Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
887         * libwebrtc.xcodeproj/project.pbxproj:
888
889 2019-10-10  Youenn Fablet  <youenn@apple.com>
890
891         Update libwebrtc third-party abseilcpp to M78
892         https://bugs.webkit.org/show_bug.cgi?id=202726
893
894         Reviewed by Alex Christensen.
895
896         * CMakeLists.txt: Remove optional.cc.
897         * Source/third_party/abseil-cpp: Updated.
898         * libwebrtc.xcodeproj/project.pbxproj: Remove optional.cc.
899
900 2019-10-10  Youenn Fablet  <youenn@apple.com>
901
902         Update libwebrtc third-party opus to M78
903         https://bugs.webkit.org/show_bug.cgi?id=202728
904
905         Reviewed by Alex Christensen.
906
907         * Source/third_party/opus: Updated.
908
909 2019-10-10  Youenn Fablet  <youenn@apple.com>
910
911         Update libwebrtc third-arty libyuv to M78
912         https://bugs.webkit.org/show_bug.cgi?id=202727
913
914         Reviewed by Alex Christensen.
915
916         libyuv
917
918         * Source/third_party/libyuv: Updated.
919
920 2019-10-04  youenn fablet  <youenn@apple.com>
921
922         Allow to suspend RTCPeerConnection when not connected
923         https://bugs.webkit.org/show_bug.cgi?id=202403
924
925         Reviewed by Chris Dumez.
926
927         Export rtc::TimeMillis()
928
929         * Configurations/libwebrtc.iOS.exp:
930         * Configurations/libwebrtc.iOSsim.exp:
931         * Configurations/libwebrtc.mac.exp:
932
933 2019-09-11  Youenn Fablet  <youenn@apple.com>
934
935         Disable DTLS1.0
936         https://bugs.webkit.org/show_bug.cgi?id=201679
937
938         Reviewed by Alex Christensen.
939
940         * Source/webrtc/rtc_base/opensslstreamadapter.cc:
941         Set minimum version to DTLS1.2 when DTLS1.2 is supported.
942         This makes sure any client will never downgrade to DTLS1.0.
943
944 2019-08-29  Keith Rollin  <krollin@apple.com>
945
946         Update .xcconfig symbols to reflect the current set of past and future product versions.
947         https://bugs.webkit.org/show_bug.cgi?id=200720
948         <rdar://problem/54305032>
949
950         Reviewed by Alex Christensen.
951
952         Remove version symbols related to old OS's we no longer support,
953         ensure that version symbols are defined for OS's we do support.
954
955         * Configurations/Base.xcconfig:
956         * Configurations/DebugRelease.xcconfig:
957         * Configurations/Version.xcconfig:
958
959 2019-08-29  Keith Rollin  <krollin@apple.com>
960
961         Remove support for macOS < 10.13 (part 3)
962         https://bugs.webkit.org/show_bug.cgi?id=201224
963         <rdar://problem/54795934>
964
965         Reviewed by Darin Adler.
966
967         Remove symbols in WebKitTargetConditionals.xcconfig related to macOS
968         10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes
969         like _MACOS_SINCE_1013.
970
971         * Configurations/WebKitTargetConditionals.xcconfig:
972
973 2019-08-15  Youenn Fablet  <youenn@apple.com>
974
975         Make mock libwebrtc tests run with unified plan
976         https://bugs.webkit.org/show_bug.cgi?id=200713
977
978         Reviewed by Alex Christensen.
979
980         * Configurations/libwebrtc.iOS.exp:
981         * Configurations/libwebrtc.iOSsim.exp:
982         * Configurations/libwebrtc.mac.exp:
983
984 2019-08-14  Keith Rollin  <krollin@apple.com>
985
986         Remove support for macOS < 10.13
987         https://bugs.webkit.org/show_bug.cgi?id=200694
988         <rdar://problem/54278851>
989
990         Reviewed by Youenn Fablet.
991
992         Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and
993         __MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
994         101300. This means that expressions like
995         "__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
996         "__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.
997
998         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
999         * WebKit/libwebrtc.diff:
1000
1001 2019-08-13  Youenn Fablet  <youenn@apple.com>
1002
1003         User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information
1004         https://bugs.webkit.org/show_bug.cgi?id=200583
1005
1006         Reviewed by Eric Carlson.
1007
1008         Export of some symbols.
1009
1010         * Configurations/libwebrtc.iOS.exp:
1011         * Configurations/libwebrtc.iOSsim.exp:
1012         * Configurations/libwebrtc.mac.exp:
1013
1014 2019-08-02  Youenn Fablet  <youenn@apple.com>
1015
1016         Add build check for libwebrtc ObjectiveC names
1017         https://bugs.webkit.org/show_bug.cgi?id=200365
1018
1019         Reviewed by Eric Carlson.
1020
1021         Only allow ObjectiveC names starting with WK_RTC.
1022
1023         * libwebrtc.xcodeproj/project.pbxproj:
1024
1025 2019-08-02  Commit Queue  <commit-queue@webkit.org>
1026
1027         Unreviewed, rolling out r248156.
1028         https://bugs.webkit.org/show_bug.cgi?id=200393
1029
1030         It broke internal bots (Requested by youenn on #webkit).
1031
1032         Reverted changeset:
1033
1034         "Add build check for libwebrtc ObjectiveC names"
1035         https://bugs.webkit.org/show_bug.cgi?id=200365
1036         https://trac.webkit.org/changeset/248156
1037
1038 2019-08-02  Youenn Fablet  <youenn@apple.com>
1039
1040         Add build check for libwebrtc ObjectiveC names
1041         https://bugs.webkit.org/show_bug.cgi?id=200365
1042
1043         Reviewed by Eric Carlson.
1044
1045         Only allow ObjectiveC names starting with WK_RTC.
1046
1047         * libwebrtc.xcodeproj/project.pbxproj:
1048
1049 2019-08-01  Loïc Yhuel  <loic.yhuel@softathome.com>
1050
1051         Fix libwebrtc build with Linux 5.2 headers
1052         https://bugs.webkit.org/show_bug.cgi?id=200342
1053
1054         Reviewed by Eric Carlson.
1055
1056         We need to include linux/sockios.h for SIOCGSTAMP.
1057         Take upstream fix from https://bugs.chromium.org/p/webrtc/issues/detail?id=10677.
1058
1059         * Source/webrtc/rtc_base/physicalsocketserver.cc:
1060
1061 2019-07-31  Youenn Fablet  <youenn@apple.com>
1062
1063         ObjC RTCCVPixelBuffer should be prefixed to not conflict with other apps
1064         https://bugs.webkit.org/show_bug.cgi?id=200289
1065         <rdar://problem/49554670>
1066
1067         Reviewed by Darin Adler.
1068
1069         * Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.h:
1070
1071 2019-07-17  Youenn Fablet  <youenn@apple.com>
1072
1073         Use VCP SPI in case creation of a compression session with VTB for 'h264.rtvc' fails
1074         https://bugs.webkit.org/show_bug.cgi?id=199863
1075         <rdar://problem/52922217>
1076
1077         Reviewed by Darin Adler.
1078
1079         Calling VTCompressionSessionCreate with kVTVideoEncoderList_EncoderID "com.apple.videotoolbox.videoencoder.h264.rtvc"
1080         fails on some platforms. In such a case, use VCP SPI if available as a fallback.
1081         Covered by exisiting webrtc tests on these specific platforms.
1082
1083         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1084         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1085
1086 2019-07-15  Youenn Fablet  <youenn@apple.com>
1087
1088         Enable a debug WebRTC mode without any encryption
1089         https://bugs.webkit.org/show_bug.cgi?id=199177
1090         <rdar://problem/52074986>
1091
1092         Reviewed by Eric Carlson.
1093
1094         * Configurations/libwebrtc.iOS.exp:
1095         * Configurations/libwebrtc.iOSsim.exp:
1096         * Configurations/libwebrtc.mac.exp:
1097
1098 2019-06-28  Dean Jackson  <dino@apple.com>
1099
1100         unable to build WebRTC for iOS Simulator
1101         https://bugs.webkit.org/show_bug.cgi?id=199337
1102         <rdar://problem/52020841>
1103
1104         Reviewed by Tim Horton.
1105
1106         Run the compiled yasm with DYLD_ROOT_PATH=/
1107         in order to convince dyld that it can load
1108         the simulator binary on macOS.
1109
1110         * libwebrtc.xcodeproj/project.pbxproj:
1111
1112 2019-06-27  Beth Dakin  <bdakin@apple.com>
1113
1114         Upstream use of MACCATALYST
1115         https://bugs.webkit.org/show_bug.cgi?id=199245
1116         rdar://problem/51687723
1117
1118         Reviewed by Tim Horton.
1119
1120         * Configurations/SDKVariant.xcconfig:
1121
1122 2019-06-25  Youenn Fablet  <youenn@apple.com>
1123
1124         Close sockets with too high file descriptor
1125         https://bugs.webkit.org/show_bug.cgi?id=199116
1126
1127         Reviewed by Eric Carlson.
1128
1129         * Source/webrtc/rtc_base/physicalsocketserver.cc:
1130         * WebKit/0001-Close-sockets-with-file-descriptors-above-FD_SETSIZE.patch: Added.
1131
1132 2019-06-21  Youenn Fablet  <youenn@apple.com>
1133
1134         Make sure to check for file descriptor value before using FD_CLR
1135         https://bugs.webkit.org/show_bug.cgi?id=199097
1136         <rdar://problem/51479074>
1137
1138         Reviewed by Eric Carlson.
1139
1140         * Source/webrtc/rtc_base/physicalsocketserver.cc:
1141         * WebKit/0001-fix-fd-clr.patch: Added.
1142
1143 2019-06-12  Youenn Fablet  <youenn@apple.com>
1144
1145         Make sure libwebrtc ObjC codec interfaces do not conflict
1146         https://bugs.webkit.org/show_bug.cgi?id=198782
1147         <rdar://problem/51503247>
1148
1149         Reviewed by Eric Carlson.
1150
1151         Rename some ObjC interfaces that we are now using in libwebrtc.
1152
1153         * Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP8.h:
1154         * Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.h:
1155         * Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.h:
1156         * libwebrtc.xcodeproj/project.pbxproj:
1157
1158 2019-06-10  Youenn Fablet  <youenn@apple.com>
1159
1160         Call was negotiated with H264 Base Profile 42e01f but encoded in High Profile
1161         https://bugs.webkit.org/show_bug.cgi?id=195124
1162         <rdar://problem/48453085>
1163
1164         Reviewed by Eric Carlson.
1165
1166         Use VTB directly instead of VCP when baseline is requested.
1167         For platforms supporting the VCP-in-VTB API, use VCP for high profile, VTB for baseline.
1168         For platforms not supporting the VCP-in-VTB API, use regular VTB for both baseline and high profile.
1169         On MacOS, if VTB session creation fails, use VCP as a fallback.
1170         Keep VTB-only code path for non internal builds.
1171
1172         * Source/webrtc/sdk/WebKit/EncoderUtilities.h: Removed.
1173         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
1174         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1175         (-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
1176         (-[RTCSingleVideoEncoderH264 hasCompressionSession]):
1177         (-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
1178         (-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
1179         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1180         (-[RTCSingleVideoEncoderH264 configureCompressionSession]):
1181         (-[RTCSingleVideoEncoderH264 destroyCompressionSession]):
1182         (-[RTCSingleVideoEncoderH264 setEncoderBitrateBps:]):
1183         * Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
1184         * Source/webrtc/sdk/objc/components/video_codec/helpers.h:
1185
1186 2019-05-28  Youenn Fablet  <youenn@apple.com>
1187
1188         createAnswer() SDP Rejected by setLocalDescription()
1189         https://bugs.webkit.org/show_bug.cgi?id=195930
1190         <rdar://problem/49030489>
1191
1192         Reviewed by Eric Carlson.
1193
1194         Make sure to check packetization mode parameter when matching H264 video codec.
1195
1196         * Source/webrtc/media/base/codec.cc:
1197         * WebKit/0001-fix-195930.patch: Added.
1198
1199 2019-05-09  Andy Estes  <aestes@apple.com>
1200
1201         Fix 32-bit watchOS engineering builds after r244726.
1202
1203         Unreviewed.
1204
1205         * Configurations/DebugRelease.xcconfig:
1206
1207 2019-05-03  Youenn Fablet  <youenn@apple.com>
1208
1209         Do not require log_to_stderr for WebRTC logging through WebKit
1210         https://bugs.webkit.org/show_bug.cgi?id=197560
1211
1212         Reviewed by Eric Carlson.
1213
1214         * Source/webrtc/rtc_base/logging.cc:
1215
1216 2019-04-29  Alex Christensen  <achristensen@webkit.org>
1217
1218         <rdar://problem/50299396> Fix internal High Sierra build
1219         https://bugs.webkit.org/show_bug.cgi?id=197388
1220
1221         * Configurations/Base.xcconfig:
1222
1223 2019-04-28  Andy Estes  <aestes@apple.com>
1224
1225         Fix the watchOS engineering build.
1226
1227         * Makefile: Set OTHER_OPTIONS to build libwebrtc's boringssl target on watchOS, which is a
1228         dependency for TestWebKitAPI's TCPServer.
1229
1230 2019-04-26  Jessie Berlin  <jberlin@webkit.org>
1231
1232         Add new mac target numbers
1233         https://bugs.webkit.org/show_bug.cgi?id=197313
1234
1235         Reviewed by Alex Christensen.
1236
1237         * Configurations/Version.xcconfig:
1238         * Configurations/WebKitTargetConditionals.xcconfig:
1239
1240 2019-04-25  Youenn Fablet  <youenn@apple.com>
1241
1242         Make sure sockets file descriptors are in the correct range
1243         https://bugs.webkit.org/show_bug.cgi?id=197301
1244         <rdar://problem/48389381>
1245
1246         Reviewed by Chris Dumez.
1247
1248         * Source/webrtc/rtc_base/physicalsocketserver.cc:
1249         * WebKit/0001-fix-197301.patch: Added.
1250
1251 2019-04-25  Alex Christensen  <achristensen@webkit.org>
1252
1253         Start using C++17
1254         https://bugs.webkit.org/show_bug.cgi?id=197131
1255
1256         Reviewed by Darin Adler.
1257
1258         * Configurations/Base.xcconfig:
1259
1260 2019-04-23  Alex Christensen  <achristensen@webkit.org>
1261
1262         Add unit tests for WKWebView.serverTrust
1263         https://bugs.webkit.org/show_bug.cgi?id=197202
1264
1265         Reviewed by Youenn Fablet.
1266
1267         * libwebrtc.xcodeproj/project.pbxproj:
1268         Move boringssl files from libwebrtc target to boringssl target.
1269         Also, add pkcs7 files to boringssl static library.
1270
1271 2019-04-08  Justin Fan  <justin_fan@apple.com>
1272
1273         [Web GPU] Fix Web GPU experimental feature on iOS
1274         https://bugs.webkit.org/show_bug.cgi?id=196632
1275
1276         Reviewed by Myles C. Maxfield.
1277
1278         Add conditionals for iOS 11.
1279
1280         * Configurations/WebKitTargetConditionals.xcconfig:
1281
1282 2019-04-04  Youenn Fablet  <youenn@apple.com>
1283
1284         Log the error if VideoProcessing library cannot be dlopen
1285         https://bugs.webkit.org/show_bug.cgi?id=196609
1286
1287         Reviewed by Eric Carlson.
1288
1289         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
1290         (webrtc::initVideoProcessingVPModuleInitialize):
1291
1292 2019-04-03  Youenn Fablet  <youenn@apple.com>
1293
1294         Add logging and ASSERTs to investigate issue with VPModuleInitialize
1295         https://bugs.webkit.org/show_bug.cgi?id=196573
1296
1297         Reviewed by Eric Carlson.
1298
1299         Expand macros directly to add some logging.
1300         Removed the dispatch_once since VPModuleInitialize is already called in one.
1301
1302         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
1303         (webrtc::initVideoProcessingVPModuleInitialize):
1304
1305 2019-04-03  Youenn Fablet  <youenn@apple.com>
1306
1307         Remove unneeded libwebrtc files
1308         https://bugs.webkit.org/show_bug.cgi?id=196553
1309
1310         Reviewed by Eric Carlson.
1311
1312         * Source/third_party/boringssl/src/fuzz: Removed.
1313         * Source/third_party/protobuf/csharp/keys: Removed.
1314
1315 2019-04-03  Youenn Fablet  <youenn@apple.com>
1316
1317         Adopt new VCP SPI
1318         https://bugs.webkit.org/show_bug.cgi?id=193357
1319         <rdar://problem/43656651>
1320
1321         Reviewed by Eric Carlson.
1322
1323        Enable VCP through VTB API with specific encoder id.
1324
1325         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
1326         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
1327         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
1328         (webrtc::setApplicationStatus):
1329         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1330         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1331
1332 2019-04-02  Thibault Saunier  <tsaunier@igalia.com>
1333
1334         [GSteamer][WebRTC] Fix building libwebrtc on ARM
1335         https://bugs.webkit.org/show_bug.cgi?id=196157
1336
1337         Reviewed by Philippe Normand.
1338
1339         Making sure neon files are built as required
1340
1341         * CMakeLists.txt:
1342
1343 2019-03-22  Keith Rollin  <krollin@apple.com>
1344
1345         Enable ThinLTO support in Production builds
1346         https://bugs.webkit.org/show_bug.cgi?id=190758
1347         <rdar://problem/45413233>
1348
1349         Reviewed by Daniel Bates.
1350
1351         Enable building with Thin LTO in Production when using Xcode 10.2 or
1352         later. This change results in a 1.45% progression in PLT5. Full
1353         Production build times increase about 2-3%. Incremental build times
1354         are more severely affected, and so LTO is not enabled for local
1355         engineering builds.
1356
1357         LTO is enabled only on macOS for now, until rdar://problem/49013399,
1358         which affects ARM builds, is fixed.
1359
1360         To change the LTO setting when building locally:
1361
1362         - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
1363           command line.
1364         - If building with `build-webkit`, specify --lto-mode={none,thin,full}
1365           on the command line.
1366         - If building with `build-root`, specify --lto={none,thin,full} on the
1367           command line.
1368         - If building with Xcode, create a LocalOverrides.xcconfig file at the
1369           top level of your repository directory (if needed) and define
1370           WK_LTO_MODE to full, thin, or none.
1371
1372         * Configurations/Base.xcconfig:
1373
1374 2019-03-13  Keith Rollin  <krollin@apple.com>
1375
1376         Add support for new StagedFrameworks layout
1377         https://bugs.webkit.org/show_bug.cgi?id=195543
1378
1379         Reviewed by Alexey Proskuryakov.
1380
1381         When creating the WebKit layout for out-of-band Safari/WebKit updates,
1382         use an optional path prefix when called for.
1383
1384         * Configurations/Base.xcconfig:
1385
1386 2019-03-13  Youenn Fablet  <youenn@apple.com>
1387
1388         Enable libwebrtc logging control through WebCore
1389         https://bugs.webkit.org/show_bug.cgi?id=195658
1390
1391         Reviewed by Eric Carlson.
1392
1393         Add a callback to get access to libwebrtc log messages.
1394
1395         * Configurations/libwebrtc.iOS.exp:
1396         * Configurations/libwebrtc.iOSsim.exp:
1397         * Configurations/libwebrtc.mac.exp:
1398         * Source/webrtc/rtc_base/logging.cc:
1399         * Source/webrtc/rtc_base/logging.h:
1400
1401 2019-03-07  Youenn Fablet  <youenn@apple.com>
1402
1403         Skip compilation of unused audio device files for Mac and iOS
1404         https://bugs.webkit.org/show_bug.cgi?id=195412
1405
1406         Reviewed by Eric Carlson.
1407
1408         Stop compiling audio_device_mac.cc, audio_mixer_manager_mac.cc and voice_processing_audio_unit.mm
1409         as unused in WebKit.
1410         * libwebrtc.xcodeproj/project.pbxproj:
1411
1412 2019-02-23  Keith Miller  <keith_miller@apple.com>
1413
1414         Add new mac target numbers
1415         https://bugs.webkit.org/show_bug.cgi?id=194955
1416
1417         Reviewed by Tim Horton.
1418
1419         * Configurations/Base.xcconfig:
1420         * Configurations/DebugRelease.xcconfig:
1421
1422 2019-02-20  Andy Estes  <aestes@apple.com>
1423
1424         [Xcode] Add SDKVariant.xcconfig to various Xcode projects
1425         https://bugs.webkit.org/show_bug.cgi?id=194869
1426
1427         Rubber-stamped by Jer Noble.
1428
1429         * libwebrtc.xcodeproj/project.pbxproj:
1430
1431 2019-02-04  David Kilzer  <ddkilzer@apple.com>
1432
1433         vp8e_mr_alloc_mem() leaks LOWER_RES_FRAME_INFO if second memory allocation fails
1434         <https://webkit.org/b/194265>
1435
1436         Reviewed by Youenn Fablet.
1437
1438         * Source/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:
1439         (vp8e_mr_alloc_mem):
1440         - Initialize `res` to VPX_CODEC_OK instead of 0.
1441         - Return early if first calloc() fails instead of trying the
1442           second calloc().  The function would crash dereferencing
1443           nullptr in `shared_mem_loc->mb_info` otherwise.
1444         - Call free(shared_mem_loc) if the second call to calloc()
1445           fails.  This fixes the leak.
1446         * WebKit/0003-libwebrtc-fix-vp8e_mr_alloc_mem-leak.diff: Add.
1447
1448 2019-01-30  Commit Queue  <commit-queue@webkit.org>
1449
1450         Unreviewed, rolling out r240665.
1451         https://bugs.webkit.org/show_bug.cgi?id=194039
1452
1453         "Better to postpone SPI adoption" (Requested by youenn on
1454         #webkit).
1455
1456         Reverted changeset:
1457
1458         "Adopt new VCP SPI"
1459         https://bugs.webkit.org/show_bug.cgi?id=193357
1460         https://trac.webkit.org/changeset/240665
1461
1462 2019-01-29  Youenn Fablet  <youenn@apple.com>
1463
1464         Adopt new VCP SPI
1465         https://bugs.webkit.org/show_bug.cgi?id=193357
1466         <rdar://problem/43656651>
1467
1468         Reviewed by Eric Carlson.
1469
1470         Enable VCP through VTB API with specific encoder id.
1471         If encoder id is not supported, fallback to VCP.
1472         A specific routine is added to check for encoder id presence.
1473
1474         * Source/webrtc/sdk/WebKit/EncoderUtilities.h:
1475         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
1476         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
1477         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
1478         (webrtc::setApplicationStatus):
1479         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1480         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1481
1482 2019-01-25  Keith Rollin  <krollin@apple.com>
1483
1484         Update WebKitAdditions.xcconfig with correct order of variable definitions
1485         https://bugs.webkit.org/show_bug.cgi?id=193793
1486         <rdar://problem/47532439>
1487
1488         Reviewed by Alex Christensen.
1489
1490         XCBuild changes the way xcconfig variables are evaluated. In short,
1491         all config file assignments are now considered in part of the
1492         evaluation. When using the new build system and an .xcconfig file
1493         contains multiple assignments of the same build setting:
1494
1495         - Later assignments using $(inherited) will inherit from earlier
1496           assignments in the xcconfig file.
1497         - Later assignments not using $(inherited) will take precedence over
1498           earlier assignments. An assignment to a more general setting will
1499           mask an earlier assignment to a less general setting. For example,
1500           an assignment without a condition ('FOO = bar') will completely mask
1501           an earlier assignment with a condition ('FOO[sdk=macos*] = quux').
1502
1503         This affects some of our .xcconfig files, in that sometimes platform-
1504         or sdk-specific definitions appear before the general definitions.
1505         Under the new evaluations rules, the general definitions alway take
1506         effect because they always overwrite the more-specific definitions. The
1507         solution is to swap the order, so that the general definitions are
1508         established first, and then conditionally overwritten by the
1509         more-specific definitions.
1510
1511         * Configurations/Version.xcconfig:
1512
1513 2019-01-22  Youenn Fablet  <youenn@apple.com>
1514
1515         Resync libwebrtc with latest M72 branch
1516         https://bugs.webkit.org/show_bug.cgi?id=193693
1517
1518         Reviewed by Eric Carlson.
1519
1520         Update libwebrtc up to latest M72 branch to fix some identified issues:
1521         - Bad bandwidth estimation in case of multiple transceivers
1522         - mid handling for legacy endpoints
1523         - msid handling for updating mediastreams accordingly.
1524
1525         * Source/webrtc/modules/congestion_controller/goog_cc/delay_based_bwe.cc:
1526         * Source/webrtc/modules/congestion_controller/goog_cc/delay_based_bwe.h:
1527         * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc:
1528         * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc:
1529         * Source/webrtc/modules/congestion_controller/send_side_congestion_controller_unittest.cc:
1530         * Source/webrtc/pc/jsepsessiondescription_unittest.cc:
1531         * Source/webrtc/pc/mediasession.cc:
1532         * Source/webrtc/pc/mediasession_unittest.cc:
1533         * Source/webrtc/pc/peerconnection.cc:
1534         * Source/webrtc/pc/peerconnection.h:
1535         * Source/webrtc/pc/peerconnection_jsep_unittest.cc:
1536         * Source/webrtc/pc/peerconnection_media_unittest.cc:
1537         * Source/webrtc/pc/peerconnection_rtp_unittest.cc:
1538         * Source/webrtc/pc/sessiondescription.cc:
1539         * Source/webrtc/pc/sessiondescription.h:
1540         * Source/webrtc/pc/webrtcsdp.cc:
1541         * Source/webrtc/pc/webrtcsdp_unittest.cc:
1542         * Source/webrtc/system_wrappers/include/metrics.h:
1543         * Source/webrtc/video/BUILD.gn:
1544
1545 2019-01-18  Jer Noble  <jer.noble@apple.com>
1546
1547         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1548         https://bugs.webkit.org/show_bug.cgi?id=189553
1549
1550         Reviewed by Tim Horton.
1551
1552         * Configurations/Base.xcconfig:
1553         * Configurations/SDKVariant.xcconfig: Added.
1554
1555 2019-01-17  Truitt Savell  <tsavell@apple.com>
1556
1557         Unreviewed, rolling out r240124.
1558
1559         This commit broke an internal build.
1560
1561         Reverted changeset:
1562
1563         "SDK_VARIANT build destinations should be separate from non-
1564         SDK_VARIANT builds"
1565         https://bugs.webkit.org/show_bug.cgi?id=189553
1566         https://trac.webkit.org/changeset/240124
1567
1568 2019-01-17  Jer Noble  <jer.noble@apple.com>
1569
1570         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
1571         https://bugs.webkit.org/show_bug.cgi?id=189553
1572
1573         Reviewed by Tim Horton.
1574
1575         * Configurations/Base.xcconfig:
1576         * Configurations/SDKVariant.xcconfig: Added.
1577
1578 2019-01-16  David Kilzer  <ddkilzer@apple.com>
1579
1580         clang-tidy: Fix unnecessary copy/ref churn of for loop variables in libwebrtc
1581         <https://webkit.org/b/193498>
1582
1583         Reviewed by Youenn Fablet.
1584
1585         Fix unwanted copying/ref churn of loop variables by making them
1586         const references.
1587
1588         * Source/webrtc/modules/bitrate_controller/loss_based_bandwidth_estimation.cc:
1589         * Source/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:
1590         * Source/webrtc/p2p/base/mdns_message.cc:
1591         * Source/webrtc/p2p/base/port.cc:
1592         * Source/webrtc/p2p/base/stunrequest.cc:
1593         * Source/webrtc/pc/jseptransportcontroller.cc:
1594         * Source/webrtc/pc/peerconnection.cc:
1595         * Source/webrtc/pc/rtcstatscollector.cc:
1596         * Source/webrtc/pc/rtpreceiver.cc:
1597         * Source/webrtc/pc/rtptransceiver.cc:
1598         * Source/webrtc/pc/statscollector.cc:
1599         * Source/webrtc/pc/trackmediainfomap.cc:
1600         * Source/webrtc/rtc_base/filerotatingstream.cc:
1601         * Source/webrtc/rtc_base/opensslsessioncache.cc:
1602         * Source/webrtc/video/receive_statistics_proxy.cc:
1603         * WebKit/0002-libwebrtc-fix-unnecessary-copy-of-for-loop-variables.diff: Added.
1604
1605 2019-01-15  David Kilzer  <ddkilzer@apple.com>
1606
1607         REGRESSION (r239510): Remove duplicate copy of srtpsession.cc from 'webrtcpcrtc' target in Xcode project
1608
1609         Fixes the following Xcode warning:
1610
1611             warning: Skipping duplicate build file in Compile Sources build phase: Source/ThirdParty/libwebrtc/Source/webrtc/pc/srtpsession.cc (in target 'webrtcpcrtc')
1612
1613         * libwebrtc.xcodeproj/project.pbxproj: Remove duplicate copy of
1614         srtpsession.cc from 'webrtcpcrtc' target.
1615
1616 2019-01-10  Youenn Fablet  <youenn@apple.com>
1617
1618         VPModuleInitialize should be called when VCP is enabled
1619         https://bugs.webkit.org/show_bug.cgi?id=193299
1620
1621         Reviewed by Eric Carlson.
1622
1623         Add the necessary include to make sure ENABLE_VCP_ENCODER is defined appropriately.
1624
1625         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
1626
1627 2018-12-22  Dan Bernstein  <mitz@apple.com>
1628
1629         Fixed Apple production builds.
1630
1631         * Configurations/Base.xcconfig: Exclude the Source/third_party/boringssl/src/util
1632           subdirectory, which contains binaries, from installsrc. Its contents are not used for
1633           building any of the targets in the project.
1634
1635 2018-12-21  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>
1636
1637         Resync BoringSSL to M72
1638         https://bugs.webkit.org/show_bug.cgi?id=192860
1639
1640         Reviewed by Eric Carlson.
1641
1642         * Source/third_party/boringssl: Resynced to Chrome M72 branch.
1643
1644 2018-12-21  Youenn Fablet  <youenn@apple.com>
1645
1646         Resync opus to M72
1647         https://bugs.webkit.org/show_bug.cgi?id=192867
1648
1649         Reviewed by Alex Christensen.
1650
1651         * Configurations/opus.xcconfig: Updated compilation flag.
1652         * Source/third_party/opus: Resynced to Chrome M72 branch.
1653
1654 2018-12-21  Youenn Fablet  <youenn@apple.com>
1655
1656         Resync libsrtp to M72
1657         https://bugs.webkit.org/show_bug.cgi?id=192861
1658
1659         Reviewed by Eric Carlson.
1660
1661         * Source/third_party/libsrtp/: Resynced to Chrome M72 branch.
1662
1663 2018-12-21  Youenn Fablet  <youenn@apple.com>
1664
1665         Use kVTCompressionPropertyKey_Usage instead of kVTVideoEncoderSpecification_Usage
1666         https://bugs.webkit.org/show_bug.cgi?id=192885
1667
1668         Reviewed by Eric Carlson.
1669
1670         When VCP is enabled, use kVTCompressionPropertyKey_Usage as this is
1671         kVTVideoEncoderSpecification_Usage no longer works to activate VCP on iOS.
1672         Tested manually.
1673
1674         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1675         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1676         (-[RTCSingleVideoEncoderH264 configureCompressionSession]):
1677
1678 2018-12-19  Youenn Fablet  <youenn@apple.com>
1679
1680         Refresh usrsctplib to M72
1681         https://bugs.webkit.org/show_bug.cgi?id=192863
1682
1683         Reviewed by Alex Christensen.
1684
1685         * Source/third_party/usrsctp/: Resynced to Chrome M72 branch.
1686
1687 2018-12-19  Youenn Fablet  <youenn@apple.com>
1688
1689         Refresh libyuv to M72
1690         https://bugs.webkit.org/show_bug.cgi?id=192864
1691
1692         Reviewed by Alex Christensen.
1693
1694         * Source/third_party/libyuv: Resynced.
1695
1696 2018-12-19  Youenn Fablet  <youenn@apple.com>
1697
1698         Resync libwebrtc with M72 branch
1699         https://bugs.webkit.org/show_bug.cgi?id=192858
1700
1701         Reviewed by Eric Carlson.
1702
1703         Merge changes made upstream.
1704         Some of these changes improve support of unified plan and backward compatiblity.
1705
1706         * Source/webrtc/api/candidate.cc:
1707         * Source/webrtc/api/candidate.h:
1708         * Source/webrtc/api/rtpreceiverinterface.h:
1709         * Source/webrtc/api/umametrics.h:
1710         * Source/webrtc/media/engine/webrtcvideoengine.cc:
1711         * Source/webrtc/media/engine/webrtcvideoengine_unittest.cc:
1712         * Source/webrtc/modules/audio_processing/agc2/agc2_common.h:
1713         * Source/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc:
1714         * Source/webrtc/modules/video_coding/BUILD.gn:
1715         * Source/webrtc/modules/video_coding/codecs/vp9/svc_config.cc:
1716         * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.cc:
1717         * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.h:
1718         * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc:
1719         * Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
1720         * Source/webrtc/modules/video_coding/codecs/vp9/vp9.cc:
1721         * Source/webrtc/modules/video_coding/video_codec_initializer.cc:
1722         * Source/webrtc/modules/video_coding/video_codec_initializer_unittest.cc:
1723         * Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
1724         * Source/webrtc/p2p/base/port.cc:
1725         * Source/webrtc/p2p/base/port.h:
1726         * Source/webrtc/p2p/base/portallocator.cc:
1727         * Source/webrtc/p2p/client/basicportallocator.cc:
1728         * Source/webrtc/p2p/client/basicportallocator_unittest.cc:
1729         * Source/webrtc/pc/peerconnection.cc:
1730         * Source/webrtc/pc/peerconnection.h:
1731         * Source/webrtc/pc/peerconnection_integrationtest.cc:
1732         * Source/webrtc/pc/peerconnectioninternal.h:
1733         * Source/webrtc/pc/statscollector.cc:
1734         * Source/webrtc/pc/statscollector.h:
1735         * Source/webrtc/pc/test/fakepeerconnectionbase.h:
1736         * Source/webrtc/pc/test/fakepeerconnectionforstats.h:
1737         * Source/webrtc/pc/test/mockpeerconnectionobservers.h:
1738         (webrtc::MockStatsObserver::OnComplete):
1739         (webrtc::MockStatsObserver::TrackIds const):
1740         * Source/webrtc/pc/webrtcsdp_unittest.cc:
1741         * Source/webrtc/rtc_base/fake_mdns_responder.h:
1742         (webrtc::FakeMdnsResponder::GetMappedAddressForName const):
1743         * Source/webrtc/rtc_base/fakenetwork.h:
1744         (rtc::FakeNetworkManager::CreateMdnsResponder):
1745         (rtc::FakeNetworkManager::GetMdnsResponderForTesting const):
1746         * Source/webrtc/video/video_send_stream_impl.cc:
1747         * Source/webrtc/video/video_stream_encoder.cc:
1748
1749 2018-12-15  Youenn Fablet  <youenn@apple.com>
1750
1751         Make RTCRtpSender.setParameters to activate specific encodings
1752         https://bugs.webkit.org/show_bug.cgi?id=192732
1753
1754         Reviewed by Eric Carlson.
1755
1756         * Configurations/libwebrtc.iOS.exp:
1757         * Configurations/libwebrtc.iOSsim.exp:
1758         * Configurations/libwebrtc.mac.exp:
1759
1760 2018-12-14  Youenn Fablet  <youenn@apple.com>
1761
1762         kVTVideoEncoderSpecification_Usage should not be set if VCP is not enabled
1763         https://bugs.webkit.org/show_bug.cgi?id=192716
1764
1765         Reviewed by Eric Carlson.
1766
1767         https://trac.webkit.org/changeset/239220 sets the usage value for all platforms, but we should only enable it for VCP.
1768         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1769         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1770
1771 2018-12-14  Youenn Fablet  <youenn@apple.com>
1772
1773         Set kVTVideoEncoderSpecification_Usage both when creating the compression session and once created
1774         https://bugs.webkit.org/show_bug.cgi?id=192700
1775
1776         Reviewed by Eric Carlson.
1777
1778         Previously we were setting the usage value once the compression session is created.
1779         We now also set it at creation time.
1780
1781         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
1782         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
1783
1784 2018-12-12  Youenn Fablet  <youenn@apple.com>
1785
1786         Recycling the m section should work if it was rejected remotely
1787         https://bugs.webkit.org/show_bug.cgi?id=192636
1788
1789         Reviewed by Eric Carlson.
1790
1791         Changes merged from https://webrtc.googlesource.com/src.git/+/5c72e71e14cfa76a2d1b0979d6b918abe187c208
1792
1793         * Source/webrtc/pc/mediasession.cc:
1794         * Source/webrtc/pc/mediasession.h:
1795         * Source/webrtc/pc/mediasession_unittest.cc:
1796         * Source/webrtc/pc/peerconnection.cc:
1797         * Source/webrtc/pc/peerconnection_jsep_unittest.cc:
1798
1799 2018-12-07  Youenn Fablet  <youenn@apple.com>
1800
1801         Update libwebrtc up to 2fb890f08c
1802         https://bugs.webkit.org/show_bug.cgi?id=192517
1803
1804         Reviewed by Eric Carlson.
1805
1806         Merge changes to track libwebrtc M72.
1807
1808         * Source/webrtc/DEPS:
1809         * Source/webrtc/api/audio/echo_canceller3_config.h:
1810         * Source/webrtc/api/rtp_headers.h:
1811         * Source/webrtc/api/video/encoded_frame.h:
1812         * Source/webrtc/api/video/encoded_image.h:
1813         * Source/webrtc/call/rtp_transport_controller_send_interface.h:
1814         * Source/webrtc/call/video_receive_stream.h:
1815         * Source/webrtc/call/video_send_stream.h:
1816         * Source/webrtc/common_types.h:
1817         (webrtc::RtcpStatistics::RtcpStatistics):
1818         (webrtc::RtcpStatisticsCallback::~RtcpStatisticsCallback):
1819         * Source/webrtc/logging/rtc_event_log/rtc_event_log_impl.cc:
1820         * Source/webrtc/media/engine/webrtcvideoengine.cc:
1821         * Source/webrtc/modules/audio_coding/BUILD.gn:
1822         * Source/webrtc/modules/audio_coding/neteq/neteq_unittest.cc:
1823         * Source/webrtc/modules/audio_processing/aec3/BUILD.gn:
1824         * Source/webrtc/modules/audio_processing/aec3/aec_state.cc:
1825         * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.cc: Removed.
1826         * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.h: Removed.
1827         * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics_unittest.cc: Removed.
1828         * Source/webrtc/modules/audio_processing/aec3/echo_canceller3.cc:
1829         * Source/webrtc/modules/audio_processing/aec3/echo_canceller3.h:
1830         * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:
1831         * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.h:
1832         * Source/webrtc/modules/audio_processing/aec3/suppression_gain.cc:
1833         * Source/webrtc/modules/rtp_rtcp/BUILD.gn:
1834         * Source/webrtc/modules/rtp_rtcp/include/receive_statistics.h:
1835         * Source/webrtc/modules/rtp_rtcp/include/rtcp_statistics.h: Removed.
1836         * Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp.h:
1837         * Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h:
1838         * Source/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h:
1839         * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
1840         * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc:
1841         * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h:
1842         (webrtc::HdrMetadataExtension::ValueSize):
1843         * Source/webrtc/modules/rtp_rtcp/source/rtp_packet_received.cc:
1844         * Source/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc:
1845         * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
1846         * Source/webrtc/modules/video_coding/codecs/test/videocodec_test_libvpx.cc:
1847         * Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
1848         * Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc:
1849         * Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h:
1850         * Source/webrtc/modules/video_coding/encoded_frame.h:
1851         (webrtc::VCMEncodedFrame::video_timing_mutable):
1852         (webrtc::VCMEncodedFrame::SetCodecSpecific):
1853         * Source/webrtc/modules/video_coding/frame_buffer2.cc:
1854         * Source/webrtc/modules/video_coding/frame_buffer2.h:
1855         * Source/webrtc/modules/video_coding/frame_buffer2_unittest.cc:
1856         * Source/webrtc/modules/video_coding/frame_object.cc:
1857         * Source/webrtc/modules/video_coding/rtp_frame_reference_finder.cc:
1858         * Source/webrtc/p2p/base/p2ptransportchannel.cc:
1859         * Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
1860         * Source/webrtc/p2p/base/port.cc:
1861         * Source/webrtc/p2p/base/port.h:
1862         * Source/webrtc/p2p/client/basicportallocator.cc:
1863         * Source/webrtc/p2p/client/basicportallocator.h:
1864         * Source/webrtc/p2p/client/basicportallocator_unittest.cc:
1865         * Source/webrtc/pc/peerconnection.cc:
1866         * Source/webrtc/pc/rtcstats_integrationtest.cc:
1867         * Source/webrtc/pc/test/peerconnectiontestwrapper.cc:
1868         * Source/webrtc/pc/test/peerconnectiontestwrapper.h:
1869         * Source/webrtc/rtc_base/stringize_macros.h:
1870         * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter_unittest.cc: Removed.
1871         * Source/webrtc/test/fuzzers/rtp_packet_fuzzer.cc:
1872         * Source/webrtc/tools_webrtc/ios/internal.client.webrtc/iOS64_Perf.json:
1873         * Source/webrtc/tools_webrtc/ios/internal.tryserver.webrtc/ios_arm64_perf.json:
1874         * Source/webrtc/tools_webrtc/whitespace.txt:
1875         * Source/webrtc/video/report_block_stats.h:
1876         * Source/webrtc/video/rtp_video_stream_receiver.cc:
1877         * Source/webrtc/video/video_receive_stream.cc:
1878
1879 2018-12-07  Youenn Fablet  <youenn@apple.com>
1880
1881         Update libwebrtc up to 0d007d7c4f
1882         https://bugs.webkit.org/show_bug.cgi?id=192316
1883         <rdar://problem/46563726>
1884
1885         Unreviewed.
1886
1887         * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
1888         Unneeded file.
1889
1890 2018-12-07  Youenn Fablet  <youenn@apple.com>
1891
1892         Update libwebrtc up to 0d007d7c4f
1893         https://bugs.webkit.org/show_bug.cgi?id=192316
1894
1895         Reviewed by Eric Carlson.
1896
1897         Updating to latest libwebrtc will allows cherry-picking important bug fixes.
1898
1899         * Configurations/libwebrtc.iOS.exp:
1900         * Configurations/libwebrtc.iOSsim.exp:
1901         * Configurations/libwebrtc.mac.exp:
1902         * Source/third_party/abseil-cpp: refreshed.
1903         * Source/webrtc: refreshed.
1904         * WebKit/0001-libwebrtc-changes.patch: Removed.
1905         * libwebrtc.xcodeproj/project.pbxproj:
1906
1907 2018-12-01  Thibault Saunier  <tsaunier@igalia.com>
1908
1909         [GStreamer][WebRTC] Build opus decoder support in libwebrtc
1910         https://bugs.webkit.org/show_bug.cgi?id=192226
1911
1912         Reviewed by Philippe Normand.
1913
1914         Somehow that was overlooked at some point (it used to work).
1915
1916         * CMakeLists.txt:
1917
1918 2018-11-27  Thibault Saunier  <tsaunier@igalia.com>
1919
1920         [GStreamer][WebRTC] Use LibWebRTC provided vp8 decoders and encoders
1921         https://bugs.webkit.org/show_bug.cgi?id=191861
1922
1923         Reviewed by Philippe Normand.
1924
1925         * CMakeLists.txt: Build LibVPX vp8 encoder and decoders.
1926
1927 2018-11-14  Youenn Fablet  <youenn@apple.com>
1928
1929         Convert libwebrtc error types to DOM exceptions
1930         https://bugs.webkit.org/show_bug.cgi?id=191590
1931
1932         Reviewed by Alex Christensen.
1933
1934         * Configurations/libwebrtc.iOS.exp:
1935         * Configurations/libwebrtc.iOSsim.exp:
1936         * Configurations/libwebrtc.mac.exp:
1937
1938 2018-11-14  Youenn Fablet  <youenn@apple.com>
1939
1940         Add support for transport and peerConnection stats
1941         https://bugs.webkit.org/show_bug.cgi?id=191592
1942
1943         Reviewed by Alex Christensen.
1944
1945         * Configurations/libwebrtc.iOS.exp:
1946         * Configurations/libwebrtc.iOSsim.exp:
1947         * Configurations/libwebrtc.mac.exp:
1948
1949 2018-11-07  Youenn Fablet  <youenn@apple.com>
1950
1951         webrtc/datachannel/basic-tcp.html will crash with an invalid crash
1952         https://bugs.webkit.org/show_bug.cgi?id=178285
1953         <rdar://problem/34985374>
1954
1955         Reviewed by Eric Carlson.
1956
1957         Reintroduce change made to libwebrtc and erroneously removed when refreshing libwebrtc.
1958
1959         * Source/webrtc/rtc_base/physicalsocketserver.cc:
1960
1961 2018-10-30  Alexey Proskuryakov  <ap@apple.com>
1962
1963         Clean up some obsolete MAX_ALLOWED macros
1964         https://bugs.webkit.org/show_bug.cgi?id=190916
1965
1966         Reviewed by Tim Horton.
1967
1968         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
1969
1970 2018-10-29  Youenn Fablet  <youenn@apple.com>
1971
1972         Handle MDNS resolution of candidates through libwebrtc directly
1973         https://bugs.webkit.org/show_bug.cgi?id=190681
1974
1975         Reviewed by Eric Carlson.
1976
1977         * Configurations/libwebrtc.iOS.exp:
1978         * Configurations/libwebrtc.iOSsim.exp:
1979         * Configurations/libwebrtc.mac.exp:
1980
1981 2018-10-23  Ryan Haddad  <ryanhaddad@apple.com>
1982
1983         Unreviewed, rolling out r237261.
1984
1985         The layout test for this change crashes under GuardMalloc.
1986
1987         Reverted changeset:
1988
1989         "Handle MDNS resolution of candidates through libwebrtc
1990         directly"
1991         https://bugs.webkit.org/show_bug.cgi?id=190681
1992         https://trac.webkit.org/changeset/237261
1993
1994 2018-10-18  Youenn Fablet  <youenn@apple.com>
1995
1996         Handle MDNS resolution of candidates through libwebrtc directly
1997         https://bugs.webkit.org/show_bug.cgi?id=190681
1998
1999         Reviewed by Eric Carlson.
2000
2001         * Configurations/libwebrtc.iOS.exp:
2002         * Configurations/libwebrtc.iOSsim.exp:
2003         * Configurations/libwebrtc.mac.exp:
2004
2005 2018-10-17  Youenn Fablet  <youenn@apple.com>
2006
2007         Remove unneeded .rej files from libwebrtc
2008         https://bugs.webkit.org/show_bug.cgi?id=190670
2009
2010         Reviewed by Mark Lam.
2011
2012         * Source/third_party/boringssl/src/.github/PULL_REQUEST_TEMPLATE.rej: Removed.
2013         * Source/third_party/boringssl/src/third_party/googletest/.gitignore.rej: Removed.
2014
2015 2018-10-17  Youenn Fablet  <youenn@apple.com>
2016
2017         REGRESSION (r237075): webrtc/video-replace-muted-track.html is Crashing
2018         https://bugs.webkit.org/show_bug.cgi?id=190646
2019
2020         Reviewed by Eric Carlson.
2021
2022         Do not use VCP pixel buffer pool at all.
2023         RealtimeOutgoingVideoSource makes sure to send the frame in the right format.
2024         Tested by ensuring test no longer crashes.
2025
2026         * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
2027         (-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
2028         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
2029
2030 2018-10-16  Youenn Fablet  <youenn@apple.com>
2031
2032         Support RTCConfiguration.certificates
2033         https://bugs.webkit.org/show_bug.cgi?id=190603
2034
2035         Reviewed by Eric Carlson.
2036
2037         * Configurations/libwebrtc.iOS.exp:
2038         * Configurations/libwebrtc.iOSsim.exp:
2039         * Configurations/libwebrtc.mac.exp:
2040
2041 2018-10-16  Alejandro G. Castro  <alex@igalia.com>
2042
2043         [GTK][WPE] Make libwebrtc compile using the system opus library
2044         https://bugs.webkit.org/show_bug.cgi?id=190573
2045
2046         Reviewed by Philippe Normand.
2047
2048         We found some situations where gstreamer gets confused when it
2049         tries to use opus because it finds opus symbols compiled for
2050         liwebrtc. We are going to try the option to use the system opus
2051         library also for libwebrtc.
2052
2053         * CMakeLists.txt: Added opus dependency.
2054         * cmake/FindOpus.cmake: Added the hints to find the opus library
2055         in the compilation.
2056
2057 2018-10-15  Youenn Fablet  <youenn@apple.com>
2058
2059         RTCPeerConnection.generateCertificate is not a function
2060         https://bugs.webkit.org/show_bug.cgi?id=173541
2061         <rdar://problem/32638029>
2062
2063         Reviewed by Eric Carlson.
2064
2065         * Configurations/libwebrtc.iOS.exp:
2066         * Configurations/libwebrtc.iOSsim.exp:
2067         * Configurations/libwebrtc.mac.exp:
2068
2069 2018-10-12  Ryan Haddad  <ryanhaddad@apple.com>
2070
2071         Unreviewed build fix, remove executable file imported with r237075.
2072
2073         * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
2074
2075 2018-10-12  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>
2076
2077         Refresh libwebrtc up to 343f4144be
2078         https://bugs.webkit.org/show_bug.cgi?id=190361
2079
2080         Reviewed by Chris Dumez.
2081
2082         * Configurations/libwebrtc.iOS.exp:
2083         * Configurations/libwebrtc.iOSsim.exp:
2084         * Configurations/libwebrtc.mac.exp:
2085         * Configurations/libwebrtc.xcconfig:
2086         * Source/webrtc: Resynced.
2087         * WebKit/0001-Updating-webrtc.patch: Removed.
2088         * libwebrtc.xcodeproj/project.pbxproj:
2089
2090 2018-10-09  Youenn Fablet  <youenn@apple.com>
2091
2092         Add support for IceCandidate stats
2093         https://bugs.webkit.org/show_bug.cgi?id=190329
2094
2095         Reviewed by Eric Carlson.
2096
2097         Export new stats kType values.
2098
2099         * Configurations/libwebrtc.iOS.exp:
2100         * Configurations/libwebrtc.iOSsim.exp:
2101         * Configurations/libwebrtc.mac.exp:
2102
2103 2018-10-06  Dan Bernstein  <mitz@apple.com>
2104
2105         [Xcode] Never build yasm with ASAN
2106         https://bugs.webkit.org/show_bug.cgi?id=190327
2107
2108         Reviewed by Youenn Fablet.
2109
2110         * Configurations/yasm.xcconfig: Set WK_ASAN_DISALLOWED to YES.
2111
2112 2018-10-06  Dan Bernstein  <mitz@apple.com>
2113
2114         Fixed iOS device production builds after r236896.
2115
2116         * Configurations/yasm.xcconfig: Excluding all sources when building for an iOS device meant
2117           that nothing got built, which caused the install action to fail when it tried to copy
2118           the built product. Just put things back the way they were for now.
2119
2120 2018-10-06  Dan Bernstein  <mitz@apple.com>
2121
2122         [Xcode] Don’t install yasm and don’t compile it in iOS device builds
2123         https://bugs.webkit.org/show_bug.cgi?id=190326
2124
2125         Reviewed by Youenn Fablet.
2126
2127         * Configurations/yasm.xcconfig: Set SKIP_INSTALL to YES, and excluded all source files when
2128           targeting iOS devices.
2129
2130 2018-10-04  Dan Bernstein  <mitz@apple.com>
2131
2132         Fixed engineering builds using the Apple internal SDK as well as building with older
2133         versions of Xcode.
2134
2135         * Configurations/yasm.xcconfig: Migrated some build settings that were defined at the target
2136           level in the project file. Some didn’t make sense to migrate, because they could be
2137           inherited, or because they were warnings that were then being negated by OTHER_CFLAGS.
2138         * libwebrtc.xcodeproj/project.pbxproj:
2139
2140 2018-10-03  Dan Bernstein  <mitz@apple.com>
2141
2142         Addressed the warning “no rule to process file 'Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0/modules/objfmts/macho/Makefile.inc' of type sourcecode.pascal for architecture x86_64”
2143
2144         * libwebrtc.xcodeproj/project.pbxproj: Removed Makefile.inc from the yasm target’s Compile
2145           Sources build phase.
2146
2147 2018-10-03  Youenn Fablet  <youenn@apple.com>
2148
2149         Add VP8 support to WebRTC
2150         https://bugs.webkit.org/show_bug.cgi?id=189976
2151
2152         Reviewed by Eric Carlson.
2153
2154         Add support for conditional VP8 support for both encoding and decoding.
2155         This boolean is used by WebCore based on the new VP8 runtime flag.
2156
2157         Enable yasm compilation as a dependency of libvpx.
2158
2159         Compilation is done without using SSE4/AVX2 optimizations.
2160
2161         * Configurations/libvpx.xcconfig: Added.
2162         * Configurations/libwebrtc.iOS.exp:
2163         * Configurations/libwebrtc.iOSsim.exp:
2164         * Configurations/libwebrtc.mac.exp:
2165         * Configurations/libwebrtc.xcconfig:
2166         * Configurations/libwebrtcpcrtc.xcconfig:
2167         * Source/third_party/libvpx/run_yasm_webkit.py: Added.
2168         * Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
2169         * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
2170         * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
2171         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
2172         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
2173         (webrtc::createWebKitEncoderFactory):
2174         (webrtc::createWebKitDecoderFactory):
2175         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
2176         * libwebrtc.xcodeproj/project.pbxproj:
2177
2178 2018-10-03  Dan Bernstein  <mitz@apple.com>
2179
2180         libwebrtc part of [Xcode] Update some build settings as recommended by Xcode 10
2181         https://bugs.webkit.org/show_bug.cgi?id=190250
2182
2183         Reviewed by Andy Estes.
2184
2185         * Configurations/Base.xcconfig: Removed a duplicate reference to x_all.c and let Xcode
2186           update LastUpgradeCheck.
2187
2188         * libwebrtc.xcodeproj/project.pbxproj: Enabled CLANG_WARN_INFINITE_RECURSION,
2189           CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and
2190           CLANG_WARN_SUSPICIOUS_MOVE. Other warnings that Xcode 10 recommended were incompatible
2191           with one or more source files in the project.
2192
2193 2018-10-03  Youenn Fablet  <youenn@apple.com>
2194
2195         Enable H264 simulcast
2196         https://bugs.webkit.org/show_bug.cgi?id=190167
2197
2198         Reviewed by Eric Carlson.
2199
2200         Rename .m files to .mm to enable C++ compilation of included header files.
2201         Rename RTCH264VideoEncoder to RTCSingleH264Encoder.
2202         Implement a new RTCH264VideoEncoder that spawns as many RTCSingleH264Encoder as needed for simulcast.
2203         Update ObjC API to allow passing simulcast parameters to/from RTCH264VideoEncoder.
2204
2205         * Configurations/libwebrtc.iOS.exp:
2206         * Configurations/libwebrtc.iOSsim.exp:
2207         * Configurations/libwebrtc.mac.exp:
2208         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m.
2209         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m.
2210         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h:
2211         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm:
2212         (-[RTCCodecSpecificInfoH264 nativeCodecSpecificInfo]):
2213         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm:
2214         (-[RTCVideoEncoderSettings initWithNativeVideoCodec:]):
2215         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm:
2216         (-[RTCWrappedNativeVideoEncoder setBitrate:framerate:]):
2217         (-[RTCWrappedNativeVideoEncoder setRateAllocation:framerate:]):
2218         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
2219         (-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
2220         (-[RTCSingleVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
2221         (-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
2222         (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
2223         (-[RTCSingleVideoEncoderH264 scalingSettings]):
2224         (-[RTCSingleVideoEncoderH264 setRateAllocation:framerate:]):
2225         (-[RTCVideoEncoderH264 initWithCodecInfo:]):
2226         (-[RTCVideoEncoderH264 setCallback:]):
2227         (-[RTCVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
2228         (-[RTCVideoEncoderH264 releaseEncoder]):
2229         (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
2230         (-[RTCVideoEncoderH264 setRateAllocation:framerate:]):
2231         (-[RTCVideoEncoderH264 implementationName]):
2232         (-[RTCVideoEncoderH264 scalingSettings]):
2233         (-[RTCVideoEncoderH264 setBitrate:framerate:]):
2234         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
2235         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
2236         * Source/webrtc/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm:
2237         * libwebrtc.xcodeproj/project.pbxproj:
2238
2239 2018-09-29  Youenn Fablet  <youenn@apple.com>
2240
2241         Add yasm as third party tool for libwebrtc compilation
2242         https://bugs.webkit.org/show_bug.cgi?id=190025
2243
2244         Reviewed by Eric Carlson.
2245
2246         Add yasm source code and build the yasm executable as it is needed for libvpx compilation.
2247
2248         * Source/third_party/yasm-1.3.0: Added.
2249         * libwebrtc.xcodeproj/project.pbxproj:
2250
2251 2018-09-28  David Fenton  <david_fenton@apple.com>
2252
2253         Unreviewed, rolling out r236620.
2254
2255         broke internal Mac and iOS builds
2256
2257         Reverted changeset:
2258
2259         "Add yasm as third party tool for libwebrtc compilation"
2260         https://bugs.webkit.org/show_bug.cgi?id=190025
2261         https://trac.webkit.org/changeset/236620
2262
2263 2018-09-28  Youenn Fablet  <youenn@apple.com>
2264
2265         Add yasm as third party tool for libwebrtc compilation
2266         https://bugs.webkit.org/show_bug.cgi?id=190025
2267
2268         Reviewed by Eric Carlson.
2269
2270         Add yasm source code and build the yasm executable as it is needed for libvpx compilation.
2271
2272         * Source/third_party/yasm-1.3.0: Added.
2273         * libwebrtc.xcodeproj/project.pbxproj:
2274
2275 2018-09-27  Ryan Haddad  <ryanhaddad@apple.com>
2276
2277         Unreviewed, rolling out r236557.
2278
2279         Really roll out r236557 this time because it breaks internal
2280         builds.
2281
2282         Reverted changeset:
2283
2284         "Add VP8 support to WebRTC"
2285         https://bugs.webkit.org/show_bug.cgi?id=189976
2286         https://trac.webkit.org/changeset/236557
2287
2288 2018-09-27  Commit Queue  <commit-queue@webkit.org>
2289
2290         Unreviewed, rolling out r236558.
2291         https://bugs.webkit.org/show_bug.cgi?id=190044
2292
2293          236557  Broke internal builds (Requested by ryanhaddad on
2294         #webkit).
2295
2296         Reverted changeset:
2297
2298         "Unreviewed build fix, remove *.o files that were committed in
2299         r236557."
2300         https://trac.webkit.org/changeset/236558
2301
2302 2018-09-27  Ryan Haddad  <ryanhaddad@apple.com>
2303
2304         Unreviewed build fix, remove *.o files that were committed in r236557.
2305
2306         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse2.asm.o: Removed.
2307         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse3.asm.o: Removed.
2308         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/dequantize_mmx.asm.o: Removed.
2309         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_mmx.asm.o: Removed.
2310         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_sse2.asm.o: Removed.
2311         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/iwalsh_sse2.asm.o: Removed.
2312         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm.o: Removed.
2313         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_sse2.asm.o: Removed.
2314         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/mfqe_sse2.asm.o: Removed.
2315         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_mmx.asm.o: Removed.
2316         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_sse2.asm.o: Removed.
2317         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_mmx.asm.o: Removed.
2318         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_sse2.asm.o: Removed.
2319         * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_ssse3.asm.o: Removed.
2320
2321 2018-09-27  Youenn Fablet  <youenn@apple.com>
2322
2323         Add VP8 support to WebRTC
2324         https://bugs.webkit.org/show_bug.cgi?id=189976
2325
2326         Reviewed by Eric Carlson.
2327
2328         Add support for conditional VP8 support for both encoding and decoding.
2329         This boolean is used by WebCore based on the new VP8 runtime flag.
2330
2331         Compilation is done without using SSE4/AVX2 optimizations.
2332
2333         * Configurations/libvpx.xcconfig: Added.
2334         * Configurations/libwebrtc.iOS.exp:
2335         * Configurations/libwebrtc.iOSsim.exp:
2336         * Configurations/libwebrtc.mac.exp:
2337         * Configurations/libwebrtc.xcconfig:
2338         * Configurations/libwebrtcpcrtc.xcconfig:
2339         * Source/third_party/libvpx/run_yasm_webkit.py: Added.
2340         * Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
2341         * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
2342         * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
2343         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
2344         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
2345         (webrtc::createWebKitEncoderFactory):
2346         (webrtc::createWebKitDecoderFactory):
2347         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
2348         * libwebrtc.xcodeproj/project.pbxproj:
2349
2350 2018-09-26  Ryan Haddad  <ryanhaddad@apple.com>
2351
2352         Unreviewed, rolling out r236498.
2353
2354         This wasn't intentionally committed
2355
2356         Reverted changeset:
2357
2358         "Import libvpx source code"
2359         https://bugs.webkit.org/show_bug.cgi?id=189954
2360         https://trac.webkit.org/changeset/236498
2361
2362 2018-09-25  Youenn Fablet  <youenn@apple.com>
2363
2364         Import libvpx source code
2365         https://bugs.webkit.org/show_bug.cgi?id=189954
2366
2367         Reviewed by Eric Carlson.
2368
2369         * Source/third_party/libvpx: Added.
2370         * .gitignore: Added.
2371
2372 2018-09-25  Ryan Haddad  <ryanhaddad@apple.com>
2373
2374         Import libvpx source code
2375         https://bugs.webkit.org/show_bug.cgi?id=189954
2376
2377         Another unreviewed build fix attempt.
2378
2379         * Source/third_party/libvpx/source/libvpx/VPX.framework: Remove unneeded folder.
2380
2381 2018-09-25  Youenn Fablet  <youenn@apple.com>
2382
2383         Import libvpx source code
2384         https://bugs.webkit.org/show_bug.cgi?id=189954
2385
2386         Unreviewed, internal build fix.
2387
2388         * Source/third_party/libvpx/source/libvpx/_iosbuild: Removed.
2389         Folder is unneeded.
2390
2391 2018-09-25  Youenn Fablet  <youenn@apple.com>
2392
2393         Import libvpx source code
2394         https://bugs.webkit.org/show_bug.cgi?id=189954
2395
2396         Reviewed by Eric Carlson.
2397
2398         * Source/third_party/libvpx: Added.
2399         * .gitignore: Added.
2400
2401 2018-09-24  Youenn Fablet  <youenn@apple.com>
2402
2403         Enable conversion of libwebrtc internal frames as CVPixelBuffer
2404         https://bugs.webkit.org/show_bug.cgi?id=189892
2405
2406         Reviewed by Eric Carlson.
2407
2408         Renamed encoder/decoder factory creation routine.
2409         Make pixelBufferFromFrame take a function to create a CVPixelBuffer
2410         if the frame does not wrap one.
2411         Initialize the CVPixelBuffer with libwebrtc internal frame.
2412
2413         * Configurations/libwebrtc.iOS.exp:
2414         * Configurations/libwebrtc.iOSsim.exp:
2415         * Configurations/libwebrtc.mac.exp:
2416         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
2417         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
2418         (webrtc::createWebKitEncoderFactory):
2419         (webrtc::createWebKitDecoderFactory):
2420         (webrtc::CopyVideoFrameToPixelBuffer):
2421         (webrtc::pixelBufferFromFrame):
2422         (webrtc::createVideoToolboxEncoderFactory): Deleted.
2423         (webrtc::createVideoToolboxDecoderFactory): Deleted.
2424
2425 2018-09-21  Thibault Saunier  <tsaunier@igalia.com>
2426
2427         [libwebrtc] Allow IP mismatch for local connections on localhost
2428         https://bugs.webkit.org/show_bug.cgi?id=189828
2429
2430         Reviewed by Alejandro G. Castro.
2431
2432         The rest of the code allows it, but there was an unecessary assert
2433
2434         See Bug 187302
2435
2436         * Source/webrtc/p2p/base/tcpport.cc:
2437
2438 2018-09-18  Youenn Fablet  <youenn@apple.com>
2439
2440         Implement RTCRtpReceiver getContributingSources/getSynchronizationSources
2441         https://bugs.webkit.org/show_bug.cgi?id=189671
2442
2443         Reviewed by Eric Carlson.
2444
2445         * Configurations/libwebrtc.iOS.exp:
2446         * Configurations/libwebrtc.iOSsim.exp:
2447         * Configurations/libwebrtc.mac.exp:
2448
2449 2018-09-17  Youenn Fablet  <youenn@apple.com>
2450
2451         Build fix after https://trac.webkit.org/changeset/236070
2452         https://bugs.webkit.org/show_bug.cgi?id=189635
2453         <rdar://problem/44361849>
2454
2455         Unreviewed.
2456         Fix for iOS internal builds.
2457
2458         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
2459         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
2460
2461 2018-09-17  Youenn Fablet  <youenn@apple.com>
2462
2463         Enable VCP for iOS and reenable it for MacOS
2464         https://bugs.webkit.org/show_bug.cgi?id=189635
2465         <rdar://problem/43621029>
2466
2467         Unreviewed, build fix for iOS simulator.
2468
2469         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
2470
2471 2018-09-17  Youenn Fablet  <youenn@apple.com>
2472
2473         Enable VCP for iOS and reenable it for MacOS
2474         https://bugs.webkit.org/show_bug.cgi?id=189635
2475         <rdar://problem/43621029>
2476
2477         Reviewed by Eric Carlson.
2478
2479         Make sure VCP API is used to set encoding session parameters.
2480
2481         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
2482         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
2483         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
2484         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.cc:
2485         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.h:
2486
2487 2018-09-07  Youenn Fablet  <youenn@apple.com>
2488
2489         Add support for unified plan transceivers
2490         https://bugs.webkit.org/show_bug.cgi?id=189390
2491
2492         Reviewed by Eric Carlson.
2493
2494         Expose more symbols.
2495         * Configurations/libwebrtc.iOS.exp:
2496         * Configurations/libwebrtc.iOSsim.exp:
2497         * Configurations/libwebrtc.mac.exp:
2498
2499 2018-09-05  Youenn Fablet  <youenn@apple.com>
2500
2501         Expose RTCRtpSender.setParameters
2502         https://bugs.webkit.org/show_bug.cgi?id=189307
2503
2504         Reviewed by Eric Carlson.
2505
2506         * Configurations/libwebrtc.iOS.exp:
2507         * Configurations/libwebrtc.iOSsim.exp:
2508         * Configurations/libwebrtc.mac.exp:
2509
2510 2018-08-29  David Kilzer  <ddkilzer@apple.com>
2511
2512         Remove empty directories from from svn.webkit.org repository
2513         <https://webkit.org/b/189081>
2514
2515         * Source/webrtc/base: Removed.
2516         * Source/webrtc/media/devices: Removed.
2517         * Source/webrtc/modules/audio_conference_mixer: Removed.
2518         * Source/webrtc/modules/remote_bitrate_estimator/include/mock: Removed.
2519         * Source/webrtc/system_wrappers/test: Removed.
2520         * Source/webrtc/test/testsupport/mac: Removed.
2521         * Source/webrtc/voice_engine: Removed.
2522
2523 2018-08-28  David Kilzer  <ddkilzer@apple.com>
2524
2525         [libwebrtc] Remove references to Source/webrtc/modules/audio_coding/codecs/isac/main/source/fft.h
2526
2527         Found by tidy-Xcode-project-file script (see Bug 188754).
2528
2529         * libwebrtc.xcodeproj/project.pbxproj:
2530         (Source/webrtc/modules/audio_coding/codecs/isac/main/source/fft.h):
2531         Remove references to this file since it doesn't exist.
2532
2533 2018-08-28  Youenn Fablet  <youenn@apple.com>
2534
2535         Reenable -Wexit-time-destructors -and Wglobal-constructors in libwebrtc
2536         https://bugs.webkit.org/show_bug.cgi?id=189036
2537
2538         Reviewed by Geoffrey Garen.
2539
2540         Renable these compilation warnings and introduce rtc::NeverDestroyed as helper.
2541
2542         * Configurations/Base.xcconfig:
2543         * Source/webrtc/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc:
2544         * Source/webrtc/modules/congestion_controller/bbr/bbr_network_controller.cc:
2545         * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc:
2546         * Source/webrtc/pc/peerconnection.cc:
2547         * Source/webrtc/rtc_base/flags.h:
2548         * Source/webrtc/rtc_base/logging.cc:
2549         * Source/webrtc/rtc_base/never_destroyed.h: Added.
2550         (rtc::NeverDestroyed::NeverDestroyed):
2551         (rtc::NeverDestroyed::operator T&):
2552         (rtc::NeverDestroyed::get):
2553         (rtc::NeverDestroyed::operator const T& const):
2554         (rtc::NeverDestroyed::get const):
2555         (rtc::NeverDestroyed::storagePointer const):
2556         (rtc::makeNeverDestroyed):
2557         * Source/webrtc/rtc_base/virtualsocketserver.cc:
2558         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm:
2559         * Source/webrtc/system_wrappers/source/clock.cc:
2560         * Source/webrtc/system_wrappers/source/runtime_enabled_features_default.cc:
2561         * libwebrtc.xcodeproj/project.pbxproj:
2562
2563 2018-08-27  Keith Rollin  <krollin@apple.com>
2564
2565         Unreviewed build fix -- disable LTO for production builds
2566
2567         * Configurations/Base.xcconfig:
2568
2569 2018-08-27  Keith Rollin  <krollin@apple.com>
2570
2571         Build system support for LTO
2572         https://bugs.webkit.org/show_bug.cgi?id=187785
2573         <rdar://problem/42353132>
2574
2575         Reviewed by Dan Bernstein.
2576
2577         Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
2578         LTO.
2579
2580         * Configurations/Base.xcconfig:
2581         * Configurations/DebugRelease.xcconfig:
2582
2583 2018-08-23  youenn fablet  <youennf@gmail.com>
2584
2585         Remove libwebrtc unneeded .exe file.
2586         Unreviewed.
2587
2588         * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
2589
2590 2018-08-23  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>
2591
2592         Update libwebrtc up to 984f1a80c0
2593         https://bugs.webkit.org/show_bug.cgi?id=188745
2594         <rdar://problem/43539177>
2595
2596         Reviewed by Eric Carlson.
2597
2598         Update libwebrtc main code.
2599         Update exported symbols and related applied modifications.
2600
2601         * CMakeLists.txt:
2602         * Configurations/libwebrtc.iOS.exp:
2603         * Configurations/libwebrtc.iOSsim.exp:
2604         * Configurations/libwebrtc.mac.exp:
2605         * Configurations/libwebrtc.xcconfig:
2606         * Source/webrtc: refreshed
2607         * WebKit/0001-Updating-webrtc.patch: Added.
2608         * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed.
2609         * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed.
2610         * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed.
2611         * WebKit/0001-Using-VCP.patch: Removed.
2612         * WebKit/0003-Fixing-VP8-files.patch: Removed.
2613         * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed.
2614         * WebKit/0005-Fix-RTC_FATAL.patch: Removed.
2615         * WebKit/0006-Disabling-VP8.patch: Removed.
2616         * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed.
2617         * WebKit/0008-Fix-sanitizer.patch: Removed.
2618         * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed.
2619         * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed.
2620         * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed.
2621         * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed.
2622         * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed.
2623         * libwebrtc.xcodeproj/project.pbxproj:
2624
2625 2018-08-21  Youenn Fablet  <youenn@apple.com>
2626
2627         Update some libwebrtc third party libraries as per libwebrtc 984f1a80c0c
2628         https://bugs.webkit.org/show_bug.cgi?id=188751
2629
2630         Reviewed by Eric Carlson.
2631
2632         Added rnnoise and abseil which will be used by latest libwebrtc.
2633         Updated libyuv as it is also required by latest libwebrtc.
2634
2635         * Source/third_party/abseil-cpp: Added.
2636         * Source/third_party/libyuv: Refreshed.
2637         * Source/third_party/rnnoise: Added.
2638
2639 2018-08-06  David Kilzer  <ddkilzer@apple.com>
2640
2641         [libwebrtc] SafeSetError() in peerconnection.cc contains use-after-move of webrtc::RTCError variable
2642         <https://webkit.org/b/188337>
2643         <rdar://problem/42882908>
2644
2645         Reviewed by Eric Carlson.
2646
2647         * Source/webrtc/pc/peerconnection.cc:
2648         (webrtc::SafeSetError): Make static since it's not used outside
2649         this translation unit.
2650         (webrtc::SafeSetError): Ditto.  Change first argument to
2651         webrtc::RTCError&& to prevent unnecessary copying of std::move()
2652         argument.  Fix bug by saving value of `error.ok()` before moving
2653         to `*error_out`.
2654         * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Add patch.
2655
2656 2018-08-03  Alex Christensen  <achristensen@webkit.org>
2657
2658         Fix spelling of "overridden"
2659         https://bugs.webkit.org/show_bug.cgi?id=188315
2660
2661         Reviewed by Darin Adler.
2662
2663         * Source/webrtc/p2p/client/basicportallocator.h:
2664
2665 2018-07-24  Thibault Saunier  <tsaunier@igalia.com>
2666
2667         [WPE][GTK] Implement PeerConnection API on top of libwebrtc
2668         https://bugs.webkit.org/show_bug.cgi?id=186932
2669
2670         Reviewed by Philippe Normand.
2671
2672         * CMakeLists.txt: Properly set our build as `WEBRTC_WEBKIT_BUILD`
2673
2674 2018-07-19  Youenn Fablet  <youenn@apple.com>
2675
2676         PlatformThread::Run does not need to log the fact that it is running
2677         https://bugs.webkit.org/show_bug.cgi?id=187801i
2678         <rdar://problem/40331421>
2679
2680         Reviewed by Chris Dumez.
2681
2682         * Source/webrtc/rtc_base/platform_thread.cc:
2683
2684 2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>
2685
2686         Ensure WebKit stack is ad-hoc signed
2687         https://bugs.webkit.org/show_bug.cgi?id=187667
2688
2689         Reviewed by Alexey Proskuryakov.
2690
2691         * Configurations/Base.xcconfig:
2692
2693 2018-07-13  David Kilzer  <ddkilzer@apple.com>
2694
2695         libwebrtc.dylib Objective-C classes conflict with third-party frameworks
2696         <https://webkit.org/b/187653>
2697
2698         Reviewed by Alex Christensen.
2699
2700         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
2701         - Manually add an attribute to change the class name.
2702
2703         * Source/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.h:
2704         * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLI420Renderer.h:
2705         * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h:
2706         * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h:
2707         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDtmfSender+Private.h:
2708         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h:
2709         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h:
2710         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h:
2711         * Source/webrtc/sdk/objc/Framework/Classes/UI/RTCEAGLVideoView.m:
2712         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.h:
2713         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCDefaultShader.h:
2714         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCI420TextureCache.h:
2715         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCNV12TextureCache.h:
2716         * Source/webrtc/sdk/objc/Framework/Classes/Video/objc_frame_buffer.h:
2717         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.h:
2718         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.h:
2719         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h:
2720         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h:
2721         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h:
2722         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h:
2723         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioTrack.h:
2724         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h:
2725         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h:
2726         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h:
2727         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannel.h:
2728         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h:
2729         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDispatcher.h:
2730         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDtmfSender.h:
2731         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h:
2732         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileLogger.h:
2733         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileVideoCapturer.h:
2734         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceCandidate.h:
2735         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceServer.h:
2736         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h:
2737         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h:
2738         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h:
2739         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h:
2740         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaConstraints.h:
2741         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaSource.h:
2742         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStream.h:
2743         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h:
2744         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h:
2745         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h:
2746         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnection.h:
2747         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h:
2748         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactoryOptions.h:
2749         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h:
2750         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h:
2751         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpParameters.h:
2752         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpReceiver.h:
2753         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpSender.h:
2754         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCSessionDescription.h:
2755         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCapturer.h:
2756         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
2757         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
2758         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
2759         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h:
2760         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h:
2761         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h:
2762         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h:
2763         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrame.h:
2764         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h:
2765         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoRenderer.h:
2766         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoSource.h:
2767         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoTrack.h:
2768         * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShading.h:
2769         - Apply two shell scripts (see bug) to add an attribute to
2770           change the name of all classes and protocols.
2771
2772         * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Add.
2773
2774 2018-07-13  David Kilzer  <ddkilzer@apple.com>
2775
2776         REGRESSION (r233155): Remove last references to click_annotate.cc and rtpcat.cc
2777
2778         * libwebrtc.xcodeproj/project.pbxproj: Let Xcode have its way
2779         with the project file by removing orphaned entries.
2780
2781 2018-07-13  David Kilzer  <ddkilzer@apple.com>
2782
2783         REGRESSION (r222476): Add missing semi-colons to EXPORTED_SYMBOLS_FILE variables
2784
2785         * Configurations/libwebrtc.xcconfig:
2786         (EXPORTED_SYMBOLS_FILE): Add missing semi-colons.
2787
2788 2018-07-06  Youenn Fablet  <youenn@apple.com>
2789
2790         libWebRTC GetThreadCpuTimeNanos() leaks mach_ports
2791         https://bugs.webkit.org/show_bug.cgi?id=187403
2792         <rdar://problem/41741599>
2793
2794         Reviewed by Simon Fraser.
2795
2796         * Source/webrtc/rtc_base/cpu_time.cc: Call mach_port_deallocate to
2797         to ensure mach_port is deleted.
2798         * libwebrtc.xcodeproj/project.pbxproj: Stop compiling this file since
2799         this is not used except by libwebrtc tests.
2800
2801 2018-07-04  Thibault Saunier  <tsaunier@igalia.com>
2802
2803         [libwebrtc] Allow IP mismatch for local connections on localhost
2804         https://bugs.webkit.org/show_bug.cgi?id=187302
2805
2806         Reviewed by Youenn Fablet.
2807
2808         The rest of the code allows it, but there was an unecessary assert
2809
2810         * Source/webrtc/p2p/base/tcpport.cc:
2811
2812 2018-06-26  Yusuke Suzuki  <utatane.tea@gmail.com>
2813
2814         [GTK][WPE] Remove gflags from libwebrtc build
2815         https://bugs.webkit.org/show_bug.cgi?id=187078
2816
2817         Reviewed by Alejandro G. Castro.
2818
2819         gflags is used only in libyuv unit tests. So the Apple ports do not build & link it.
2820         GTK and WPE can do the same thing: not building gflags. By doing so, we can achieve
2821         the following results.
2822
2823         1. Remove static initializers defined for gflags.
2824         2. Reduce binary size.
2825
2826         * CMakeLists.txt:
2827
2828 2018-06-25  Keith Rollin  <krollin@apple.com>
2829
2830         Adjust webrtc library for LTO
2831         https://bugs.webkit.org/show_bug.cgi?id=186952
2832         <rdar://problem/41387815>
2833
2834         Reviewed by Youenn Fablet.
2835
2836         There are a number of files in webrtc that have main() functions (in
2837         particular, rtpcat.cc and click_annotate.cc). When compiling with LTO,
2838         these symbols are exposed to each other, leading to the following
2839         build failure:
2840
2841             Ld libwebrtc.dylib
2842             duplicate symbol _main in:
2843             ld: 1 duplicate symbol for architecture x86_64
2844             clang: error: linker command failed with exit code 1 (use -v to see invocation)
2845             ** BUILD FAILED **
2846
2847         Address this by removing the indicated files from the build.
2848
2849         * libwebrtc.xcodeproj/project.pbxproj:
2850
2851 2018-06-14  Youenn Fablet  <youenn@apple.com>
2852
2853         Activate -Wexit-time-destructors -and Wglobal-constructors in libwebrtc
2854         https://bugs.webkit.org/show_bug.cgi?id=186615
2855
2856         Reviewed by Darin Adler.
2857
2858         Update xcconfig files to activate these compile flags.
2859         Also enable -Wthread-safety since libwebrtc code is using some related attributes.
2860         Update libwebrtc code base to accomodate these flags.
2861
2862         * Configurations/libwebrtc.xcconfig:
2863         * Configurations/opus.xcconfig:
2864         * Configurations/usrsctp.xcconfig:
2865         * Source/webrtc/modules/audio_processing/beamformer/array_util.h:
2866         (webrtc::DegreesToRadians): Make function constexpr.
2867         * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
2868         Make sure the destructor is never called.
2869         * Source/webrtc/rtc_base/logging.cc:
2870         Update code to move streams_ from a static class member to a regular static function variable.
2871         * Source/webrtc/rtc_base/logging.h:
2872         * Source/webrtc/system_wrappers/source/clock.cc:
2873         Make sure the destructor is never called.
2874
2875 2018-06-14  Youenn Fablet  <youenn@apple.com>
2876
2877         Eliminate static initializers in libwebrtc.dylib
2878         https://bugs.webkit.org/show_bug.cgi?id=186570
2879         <rdar://problem/41054874>
2880
2881         Reviewed by Darin Adler.
2882
2883         * Source/webrtc/rtc_base/flags.h:
2884         Fix memory corruption error by having the actual flag value be static.
2885
2886 2018-06-13  Youenn Fablet  <youenn@apple.com>
2887
2888         Eliminate static initializers in libwebrtc.dylib
2889         https://bugs.webkit.org/show_bug.cgi?id=186570
2890
2891         Reviewed by Darin Adler.
2892
2893         * Source/webrtc/rtc_base/flags.h: Changed macro to create the static into a function.
2894         * Source/webrtc/rtc_base/logging.cc: Ditto.
2895         Made sure that the scope is created on instantiation of the first Log instance that might use it.
2896         * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm:
2897         * Source/webrtc/system_wrappers/source/runtime_enabled_features_default.cc:
2898
2899 2018-06-09  Dan Bernstein  <mitz@apple.com>
2900
2901         [Xcode] Clean up and modernize some build setting definitions
2902         https://bugs.webkit.org/show_bug.cgi?id=186463
2903
2904         Reviewed by Sam Weinig.
2905
2906         * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
2907         * Configurations/DebugRelease.xcconfig: Ditto.
2908         * Configurations/Version.xcconfig: Removed definitions for macOS 10.10 and 10.11, and added
2909           definitions for later versions.
2910         * Configurations/WebKitTargetConditionals.xcconfig: Removed definitions for macOS 10.11.
2911         * Configurations/opus.xcconfig: Simplified the definition of SSE4_FLAG now that macOS 10.12
2912           is the earliest supported version.
2913
2914 2018-06-09  Dan Bernstein  <mitz@apple.com>
2915
2916         Added missing file references to the Configuration group.
2917
2918         * libwebrtc.xcodeproj/project.pbxproj:
2919
2920 2018-06-07  Darin Adler  <darin@apple.com>
2921
2922         [Cocoa] Minor ARC tidying of libwebrtc
2923         https://bugs.webkit.org/show_bug.cgi?id=186396
2924
2925         Reviewed by Dan Bernstein.
2926
2927         * Configurations/Base.xcconfig: Set CLANG_ENABLE_OBJC_ARC here as we will eventually be
2928         doing in all the various Base.xcconfig files as we make progress on conversion.
2929
2930         * Configurations/libwebrtc.xcconfig: Removed override of CLANG_ENABLE_OBJC_ARC here and
2931         also removed five other redundant settings that match Base.xcconfig.
2932
2933         * libwebrtc.xcodeproj/project.pbxproj: Removed explicit -fobjc-arc that was set on
2934         one particular source file, since that's already the default for the project.
2935
2936 2018-06-04  Youenn Fablet  <youenn@apple.com>
2937
2938         [WK1] Add an option to restrict communication to localhost sockets
2939         https://bugs.webkit.org/show_bug.cgi?id=186249
2940
2941         Reviewed by Eric Carlson.
2942
2943         Export new symbols used for WK1.
2944
2945         * Configurations/libwebrtc.iOS.exp:
2946         * Configurations/libwebrtc.iOSsim.exp:
2947         * Configurations/libwebrtc.mac.exp:
2948
2949 2018-05-31  David Kilzer  <ddkilzer@apple.com>
2950
2951         Fix leak of AudioDeviceID array due to an early return in AudioDeviceMac::GetNumberDevices()
2952         <https://webkit.org/b/186152>
2953         <rdar://problem/40692824>
2954
2955         Reviewed by Alex Christensen.
2956
2957         * Source/webrtc/modules/audio_device/mac/audio_device_mac.cc:
2958         Use std::make_unique<> so that memory is allocated and
2959         deallocated automatically.  Remove manual calls to free().
2960         * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Add.
2961
2962 2018-05-30  David Kilzer  <ddkilzer@apple.com>
2963
2964         Fix leak of a CVPixelBufferRef due to early rerturn in -[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]
2965         <https://webkit.org/b/186114>
2966         <rdar://problem/40668097>
2967
2968         Reviewed by Eric Carlson.
2969
2970         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
2971         (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
2972         Call CVBufferRelease(pixelBuffer) before early return to free
2973         it.
2974         * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Add.
2975
2976 2018-05-27  David Kilzer  <ddkilzer@apple.com>
2977
2978         [iOS] Fix warnings about leaks found by clang static analyzer
2979         <https://webkit.org/b/186009>
2980         <rdar://problem/40574267>
2981
2982         Reviewed by Daniel Bates.
2983
2984         * Source/third_party/opus/src/src/opus_compare.c:
2985         * Source/third_party/opus/src/src/opus_demo.c:
2986         (main):
2987         - Free allocated memory on early returns.
2988         * Source/third_party/usrsctp/usrsctplib/user_mbuf.c:
2989         (clust_constructor_dup):
2990         (mb_ctor_clust):
2991         - Free allocated memory if `m` is NULL.
2992         * Source/third_party/usrsctp/usrsctplib/user_socket.c:
2993         (usrsctp_connect): Free `sa` memory if getsockaddr() returns an
2994         error, but still allocates memory for `sa`.
2995         * WebKit/patch-opus.diff: Add patch for opus changes.
2996         * WebKit/patch-usrsctp: Rename empty file to patch-usrsctp.diff.
2997         * WebKit/patch-usrsctp.diff: Add patch for usrsctp changes.
2998         * libwebrtc.xcodeproj/project.pbxproj: Remove opus_compare.c,
2999         opus_demo.c, and repacketizer_demo.c from opus target.  This
3000         code is for stand-alone tools, and although it may be removed
3001         during dead code linking, we don't need to spend time compiling
3002         it.
3003
3004 2018-05-07  Youenn Fablet  <youenn@apple.com>
3005
3006         Activate ARC for libwebrtc Objective C files
3007         https://bugs.webkit.org/show_bug.cgi?id=185324
3008
3009         Reviewed by David Kilzer.
3010
3011         Revert changes made to libwebrtc to accomodate from not using ARC.
3012         Use ARC for all libwebrtc objective C files.
3013
3014         Remove no longer needed export symbols and stop compiling the related files.
3015
3016         * Configurations/libwebrtc.iOS.exp:
3017         * Configurations/libwebrtc.iOSsim.exp:
3018         * Configurations/libwebrtc.mac.exp:
3019         * Configurations/libwebrtc.xcconfig:
3020         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
3021         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
3022         (-[RTCCVPixelBuffer dealloc]):
3023         * Source/webrtc/sdk/objc/Framework/Classes/Video/objc_frame_buffer.mm:
3024         (webrtc::ObjCFrameBuffer::~ObjCFrameBuffer):
3025         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
3026         (-[RTCVideoDecoderH264 dealloc]):
3027         (-[RTCVideoDecoderH264 setCallback:]):
3028         (-[RTCVideoDecoderH264 releaseDecoder]):
3029         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3030         (-[RTCVideoEncoderH264 dealloc]):
3031         (-[RTCVideoEncoderH264 setCallback:]):
3032         (-[RTCVideoEncoderH264 releaseEncoder]):
3033         * libwebrtc.xcodeproj/project.pbxproj:
3034
3035 2018-05-02  Youenn Fablet  <youenn@apple.com>
3036
3037         Disable VCP for iOS until it is fully working
3038         https://bugs.webkit.org/show_bug.cgi?id=185201
3039         <rdar://problem/39773857>
3040
3041         Reviewed by Eric Carlson.
3042
3043         Disable VCP for iOS unconditionally.
3044         Add check to getkVTVideoEncoderSpecification_Usage to not set this property if not defined as it is optional soft linked.
3045         Replace use of VTSessionSetProperty by CompressionSessionSetProperty as the latter is a macro
3046         that works for both VT and VCP.
3047
3048         * Source/webrtc/sdk/WebKit/EncoderUtilities.h:
3049         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
3050         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3051         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3052         (-[RTCVideoEncoderH264 configureCompressionSession]):
3053         (-[RTCVideoEncoderH264 setEncoderBitrateBps:]):
3054         (-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:]):
3055         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.cc:
3056         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.h:
3057
3058 2018-04-30  Youenn Fablet  <youenn@apple.com>
3059
3060         Mandate H264 hardware encoder for Mac in libwebrtc
3061         https://bugs.webkit.org/show_bug.cgi?id=184835
3062
3063         Reviewed by Eric Carlson.
3064
3065         Tested manually through console traces that hardware VCP encoder code path is actually used instead of software VCP encoder code path.
3066
3067         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3068         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3069         * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Added to cover this change and changes made in bug 184668 and 183961.
3070
3071 2018-04-20  Commit Queue  <commit-queue@webkit.org>
3072
3073         Unreviewed, rolling out r230862.
3074         https://bugs.webkit.org/show_bug.cgi?id=184855
3075
3076         it is making some tests to time out on bots (Requested by
3077         youenn on #webkit).
3078
3079         Reverted changeset:
3080
3081         "Mandate H264 hardware encoder for Mac in libwebrtc"
3082         https://bugs.webkit.org/show_bug.cgi?id=184835
3083         https://trac.webkit.org/changeset/230862
3084
3085 2018-04-20  Youenn Fablet  <youenn@apple.com>
3086
3087         Mandate H264 hardware encoder for Mac in libwebrtc
3088         https://bugs.webkit.org/show_bug.cgi?id=184835
3089
3090         Reviewed by Eric Carlson.
3091
3092         Tested manually through console traces that hardware VCP encoder code path is actually used instead of software VCP encoder code path.
3093
3094         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3095         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3096         * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Added to cover this change and changes made in bug 184668 and 183961.
3097
3098 2018-04-19  David Kilzer  <ddkilzer@apple.com>
3099
3100         Enable Objective-C weak references
3101         <https://webkit.org/b/184789>
3102         <rdar://problem/39571716>
3103
3104         Reviewed by Dan Bernstein.
3105
3106         * Configurations/Base.xcconfig:
3107         (CLANG_ENABLE_OBJC_WEAK): Enable.
3108
3109 2018-04-16  Youenn Fablet  <youenn@apple.com>
3110
3111         Set H264 VT encoder usage to 1
3112         https://bugs.webkit.org/show_bug.cgi?id=184668
3113
3114         Reviewed by Eric Carlson.
3115
3116         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3117         (-[RTCVideoEncoderH264 configureCompressionSession]):
3118
3119 2018-04-10  Youenn Fablet  <youenn@apple.com>
3120
3121         webrtc/datachannel/basic-tcp.html will crash with an invalid crash
3122         https://bugs.webkit.org/show_bug.cgi?id=178285
3123         <rdar://problem/34985374>
3124
3125         Reviewed by Eric Carlson.
3126
3127         Disable SIGPIPE for WebRTC sockets on Mac as well.
3128
3129         * Source/webrtc/rtc_base/physicalsocketserver.cc:
3130         * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Added.
3131
3132 2018-04-09  Youenn Fablet  <youenn@apple.com>
3133
3134         Use special software encoder mode in case there is no VCP not hardware encoder
3135         https://bugs.webkit.org/show_bug.cgi?id=183961
3136
3137         Reviewed by Eric Carlson.
3138
3139         In case a compression session is not using a hardware encoder and VCP is not active
3140         use a specific mode if the resolution is standard.
3141
3142         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
3143         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3144
3145 2018-04-05  Alejandro G. Castro  <alex@igalia.com>
3146
3147         [GTK] Add CMake package search for vpx and libevent libraries
3148         https://bugs.webkit.org/show_bug.cgi?id=184257
3149
3150         Reviewed by Michael Catanzaro.
3151
3152         Add new cmake search files for libevent, vpx and alsa-lib, this
3153         makes a cleaner detection of the libraries.
3154
3155         * CMakeLists.txt: Use the new cmake find files to detect the
3156         package and add a better error message when the library is not
3157         there.
3158         * Source/cmake/FindAlsaLib.cmake: Added.
3159         * Source/cmake/FindLibEvent.cmake: Added.
3160         * Source/cmake/FindVpx.cmake: Added.
3161
3162 2018-04-03  Youenn Fablet  <youenn@apple.com>
3163
3164         RealtimeOutgoingVideoSourceMac should pass a ObjCFrameBuffer buffer
3165         https://bugs.webkit.org/show_bug.cgi?id=184281
3166         rdar://problem/39153262
3167
3168         Reviewed by Jer Noble.
3169
3170         Introduce a routine to create the wrapper around native pixel buffers as expected by the new libwebrtc H264 encoder.
3171
3172         * Configurations/libwebrtc.iOS.exp:
3173         * Configurations/libwebrtc.iOSsim.exp:
3174         * Configurations/libwebrtc.mac.exp:
3175         * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
3176         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
3177         (webrtc::pixelBufferToFrame):
3178
3179 2018-04-02  Alejandro G. Castro  <alex@igalia.com>
3180
3181         Unreviewed fixing GTK port X86 32bits compilation after r230152.
3182
3183         * CMakeLists.txt:
3184
3185 2018-04-02  Alejandro G. Castro  <alex@igalia.com>
3186
3187         Unreviewed fixing GTK port ARM compilation after r230152.
3188
3189         * CMakeLists.txt: Properly avoid SSE implementations for ARM.
3190
3191 2018-04-02  Alejandro G. Castro  <alex@igalia.com>
3192
3193         [GTK] Make libwebrtc backend buildable for GTK  port
3194         https://bugs.webkit.org/show_bug.cgi?id=178860
3195
3196         Reviewed by Youenn Fablet.
3197
3198         Modified the cmake file and added some assembly code to the
3199         boringssl compilation required for the linux compilation generated
3200         by libwebrtc.
3201
3202         * CMakeLists.txt: This cmake file was unused so we have modified
3203         it completely to make it work for our port. It was originally
3204         generated from the libwebrtc json file but not anymore. We could
3205         change its structure at some point but current one seems a good
3206         option for the moment.
3207         * Source/webrtc/base/task_queue_libevent.cc: We use system
3208         libevent for the moment so we needed to adapt the includes in this file.
3209         * Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:
3210         Readded lines removed by mistake in a previous commit.
3211
3212 2018-03-26  Youenn Fablet  <youennf@gmail.com>
3213
3214         Make VCP encoder usage conditional on using internal SDK
3215         https://bugs.webkit.org/show_bug.cgi?id=184009
3216
3217         Reviewed by Eric Carlson.
3218
3219         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
3220
3221 2018-03-23  Youenn Fablet  <youenn@apple.com>
3222
3223         Add support for VCP encoder on MacOS and iOS
3224         Build fix.
3225
3226         Unreviewed.
3227
3228         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
3229
3230 2018-03-23  Youenn Fablet  <youenn@apple.com>
3231
3232         Add support for VCP encoder on MacOS and iOS
3233         https://bugs.webkit.org/show_bug.cgi?id=183924
3234
3235         Reviewed by Eric Carlson.
3236
3237         Soft-Link VideoProcessing functions and use them in H264 encoder.
3238         This is conditional on recent MacOS and iOS platforms.
3239
3240         * Source/webrtc/sdk/WebKit/EncoderUtilities.h: Added.
3241         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp: Added.
3242         * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h: Added.
3243         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
3244         (webrtc::createVideoToolboxEncoderFactory):
3245         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3246         (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
3247         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3248         (-[RTCVideoEncoderH264 destroyCompressionSession]):
3249         * WebKit/0001-Using-VCP.patch: Added.
3250         * libwebrtc.xcodeproj/project.pbxproj:
3251
3252 2018-03-23  David Kilzer  <ddkilzer@apple.com>
3253
3254         Stop using dispatch_set_target_queue()
3255         <https://webkit.org/b/183908>
3256         <rdar://problem/33553533>
3257
3258         Reviewed by Daniel Bates.
3259
3260         * Source/webrtc/rtc_base/task_queue_gcd.cc: Remove use of
3261         dispatch_set_target_queue() by changing dispatch_queue_create()
3262         to dispatch_queue_create_with_target().
3263         * WebKit/0009-Remove-dispatch_set_target_queue.patch: Add patch.
3264         Filed this to track upstreaming the change:
3265         <https://bugs.chromium.org/p/webrtc/issues/detail?id=9055>
3266         * WebKit/patch-libwebrtc: Delete empty patch file.
3267
3268 2018-03-23  Youenn Fablet  <youenn@apple.com>
3269
3270         Use libwebrtc ObjectiveC H264 encoder and decoder
3271         https://bugs.webkit.org/show_bug.cgi?id=183912
3272
3273         Reviewed by Eric Carlson.
3274
3275         Add utilities inside libwebrtc to be used by WebKit:
3276         - Create ObjectiveC encoder/decoder factories
3277         - Notify of application status to invalidate encoders/decoders when in background
3278         Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
3279         This allows limiting the changes made to libwebrtc codec implementations.
3280
3281         Minor modifications done to libwebrtc to fix compilation.
3282         Add Block_copy/Block_release to codec callbacks.
3283
3284         * Configurations/libwebrtc.iOS.exp:
3285         * Configurations/libwebrtc.iOSsim.exp:
3286         * Configurations/libwebrtc.mac.exp:
3287         * Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
3288         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.
3289         (+[RTCUIApplicationStatusObserver sharedInstance]):
3290         (+[RTCUIApplicationStatusObserver prepareForUse]):
3291         (-[RTCUIApplicationStatusObserver setActive]):
3292         (-[RTCUIApplicationStatusObserver setInactive]):
3293         (-[RTCUIApplicationStatusObserver isApplicationActive]):
3294         (webrtc::setApplicationStatus):
3295         (webrtc::createVideoToolboxEncoderFactory):
3296         (webrtc::createVideoToolboxDecoderFactory):
3297         (webrtc::setH264HardwareEncoderAllowed):
3298         (webrtc::isH264HardwareEncoderAllowed):
3299         (webrtc::pixelBufferFromFrame):
3300         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
3301         (-[RTCCVPixelBuffer dealloc]):
3302         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
3303         (-[RTCVideoDecoderH264 dealloc]):
3304         (-[RTCVideoDecoderH264 setCallback:]):
3305         (-[RTCVideoDecoderH264 releaseDecoder]):
3306         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3307         (-[RTCVideoEncoderH264 dealloc]):
3308         (-[RTCVideoEncoderH264 setCallback:]):
3309         (-[RTCVideoEncoderH264 releaseEncoder]):
3310         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3311         * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
3312         * libwebrtc.xcodeproj/project.pbxproj:
3313
3314 2018-03-22  Commit Queue  <commit-queue@webkit.org>
3315
3316         Unreviewed, rolling out r229876.
3317         https://bugs.webkit.org/show_bug.cgi?id=183929
3318
3319         Some webrtc tests are timing out on iOS simulator (Requested
3320         by youenn on #webkit).
3321
3322         Reverted changeset:
3323
3324         "Use libwebrtc ObjectiveC H264 encoder and decoder"
3325         https://bugs.webkit.org/show_bug.cgi?id=183912
3326         https://trac.webkit.org/changeset/229876
3327
3328 2018-03-22  Youenn Fablet  <youenn@apple.com>
3329
3330         Use libwebrtc ObjectiveC H264 encoder and decoder
3331         https://bugs.webkit.org/show_bug.cgi?id=183912
3332
3333         Reviewed by Eric Carlson.
3334
3335         Add utilities inside libwebrtc to be used by WebKit:
3336         - Create ObjectiveC encoder/decoder factories
3337         - Notify of application status to invalidate encoders/decoders when in background
3338         Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
3339         This allows limiting the changes made to libwebrtc codec implementations.
3340
3341         Minor modifications done to libwebrtc to fix compilation.
3342         Add Block_copy/Block_release to codec callbacks.
3343
3344         * Configurations/libwebrtc.iOS.exp:
3345         * Configurations/libwebrtc.iOSsim.exp:
3346         * Configurations/libwebrtc.mac.exp:
3347         * Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
3348         * Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.
3349         (+[RTCUIApplicationStatusObserver sharedInstance]):
3350         (+[RTCUIApplicationStatusObserver prepareForUse]):
3351         (-[RTCUIApplicationStatusObserver setActive]):
3352         (-[RTCUIApplicationStatusObserver setInactive]):
3353         (-[RTCUIApplicationStatusObserver isApplicationActive]):
3354         (webrtc::setApplicationStatus):
3355         (webrtc::createVideoToolboxEncoderFactory):
3356         (webrtc::createVideoToolboxDecoderFactory):
3357         (webrtc::setH264HardwareEncoderAllowed):
3358         (webrtc::isH264HardwareEncoderAllowed):
3359         (webrtc::pixelBufferFromFrame):
3360         * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
3361         (-[RTCCVPixelBuffer dealloc]):
3362         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
3363         (-[RTCVideoDecoderH264 dealloc]):
3364         (-[RTCVideoDecoderH264 setCallback:]):
3365         (-[RTCVideoDecoderH264 releaseDecoder]):
3366         * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
3367         (-[RTCVideoEncoderH264 dealloc]):
3368         (-[RTCVideoEncoderH264 setCallback:]):
3369         (-[RTCVideoEncoderH264 releaseEncoder]):
3370         (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
3371         * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
3372         * libwebrtc.xcodeproj/project.pbxproj:
3373
3374 2018-03-14  Youenn Fablet  <youenn@apple.com>
3375
3376         Update libwebrtc up to 36af4e9614f707f733eb2340fae66d6325aaac5b
3377         https://bugs.webkit.org/show_bug.cgi?id=183481
3378
3379         Reviewed by Eric Carlson.
3380
3381         * Configurations/libwebrtc.iOS.exp:
3382         * Configurations/libwebrtc.iOSsim.exp:
3383         * Configurations/libwebrtc.mac.exp:
3384         * Source/webrtc/: refreshed
3385         * libwebrtc.xcodeproj/project.pbxproj:
3386
3387 2018-03-12  Tim Horton  <timothy_horton@apple.com>
3388
3389         Stop using SDK conditionals to control feature definitions
3390         https://bugs.webkit.org/show_bug.cgi?id=183430
3391         <rdar://problem/38251619>
3392
3393         Reviewed by Dan Bernstein.
3394
3395         * Configurations/WebKitTargetConditionals.xcconfig: Renamed.
3396         * Configurations/opus.xcconfig:
3397
3398 2018-03-12  Youenn Fablet  <youenn@apple.com>
3399
3400         Remove empty cpp files in Source/ThirdParty/libwebrtc
3401         https://bugs.webkit.org/show_bug.cgi?id=183529
3402
3403         Unreviewed.
3404         Removing further empty files.