Bug 206582

Summary: [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
Product: WebKit Reporter: youenn fablet <youennf>
Component: WebRTCAssignee: youenn fablet <youennf>
Status: RESOLVED FIXED    
Severity: Normal CC: benjamin, cdumez, cmarcelo, commit-queue, dbates, eric.carlson, ews-watchlist, glenn, jer.noble, peng.liu6, philipj, sergio, webkit-bug-importer, youennf, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 206933, 207270, 207345    
Bug Blocks:    
Attachments:
Description Flags
WIP
none
WIP
none
Rebasing
none
Patch
none
Patch
none
Patch for landing
none
Patch
none
Patch for landing
none
Patch for landing
none
Fix include path and commented out code
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Build fix
none
A follow-up patch to fix a build failure
youennf: review+, ews-feeder: commit-queue-
One more reserveCapacity
none
Rebasing none

youenn fablet
Reported 2020-01-22 08:10:31 PST
[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
Attachments
WIP (80.21 KB, patch)
2020-01-22 08:34 PST, youenn fablet
no flags
WIP (97.22 KB, patch)
2020-01-22 09:15 PST, youenn fablet
no flags
Rebasing (96.24 KB, patch)
2020-01-22 10:01 PST, youenn fablet
no flags
Patch (95.31 KB, patch)
2020-01-22 11:47 PST, youenn fablet
no flags
Patch (122.64 KB, patch)
2020-01-24 02:00 PST, youenn fablet
no flags
Patch for landing (129.08 KB, patch)
2020-01-27 05:03 PST, youenn fablet
no flags
Patch (136.97 KB, patch)
2020-01-27 09:18 PST, youenn fablet
no flags
Patch for landing (135.78 KB, patch)
2020-01-27 11:11 PST, youenn fablet
no flags
Patch for landing (134.16 KB, patch)
2020-01-28 08:00 PST, youenn fablet
no flags
Fix include path and commented out code (134.02 KB, patch)
2020-01-30 05:20 PST, youenn fablet
no flags
Patch (135.04 KB, patch)
2020-02-03 05:32 PST, youenn fablet
no flags
Patch (148.68 KB, patch)
2020-02-03 09:38 PST, youenn fablet
no flags
Patch (146.92 KB, patch)
2020-02-04 01:39 PST, youenn fablet
no flags
Patch (146.98 KB, patch)
2020-02-04 01:54 PST, youenn fablet
no flags
Patch (137.71 KB, patch)
2020-02-04 05:18 PST, youenn fablet
no flags
Patch (142.07 KB, patch)
2020-02-05 06:47 PST, youenn fablet
no flags
Patch (142.06 KB, patch)
2020-02-05 23:21 PST, youenn fablet
no flags
Patch (142.04 KB, patch)
2020-02-06 23:14 PST, youenn fablet
no flags
Patch (141.73 KB, patch)
2020-06-05 05:19 PDT, youenn fablet
no flags
Build fix (1.70 KB, patch)
2020-06-05 09:14 PDT, youenn fablet
no flags
A follow-up patch to fix a build failure (1.70 KB, patch)
2020-06-05 11:50 PDT, Peng Liu
youennf: review+
ews-feeder: commit-queue-
One more reserveCapacity (141.89 KB, patch)
2020-06-07 23:22 PDT, youenn fablet
no flags
Rebasing (141.81 KB, patch)
2020-06-08 02:41 PDT, youenn fablet
no flags
youenn fablet
Comment 1 2020-01-22 08:34:03 PST
youenn fablet
Comment 2 2020-01-22 09:15:41 PST
Eric Carlson
Comment 3 2020-01-22 09:17:14 PST
Comment on attachment 388423 [details] WIP View in context: https://bugs.webkit.org/attachment.cgi?id=388423&action=review At some point it would be nice to have VideoSampleBufferCompressor and AudioSampleBufferCompressor as C++ classes so they can be reused more easily. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:90 > + m_serialDispatchQueue = dispatch_queue_create([@"com.apple.WebAudioSampleBufferCompressor" UTF8String], DISPATCH_QUEUE_SERIAL); Nit: no need to round trip through an NSString, a char* should work. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:112 > + auto error = CMBufferQueueMarkEndOfData(m_outputBufferQueue.get()); This should be added to CoreMediaSoftLink > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:127 > + const auto *audioFormatListItem = CMAudioFormatDescriptionGetRichestDecodableFormat(formatDescription); Ditto > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:134 > + if (auto error = AudioFormatGetProperty(kAudioFormatProperty_FormatInfo, 0, NULL, &size, &m_destinationFormat)) { This should be soft linked, maybe create a new AudioToolboxSoftLink file? > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:140 > + if (auto error = AudioConverterNew(&m_sourceFormat, &m_destinationFormat, &converter)) { Ditto > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:147 > + const void *cookie = CMAudioFormatDescriptionGetMagicCookie(formatDescription, &cookieSize); This should be added to CoreMediaSoftLink > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:149 > + if (auto error = AudioConverterSetProperty(m_converter.get(), kAudioConverterDecompressionMagicCookie, (UInt32)cookieSize, cookie)) { AudioToolboxSoftLink > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:156 > + if (auto error = AudioConverterGetProperty(m_converter.get(), kAudioConverterCurrentInputStreamDescription, &size, &m_sourceFormat)) { Ditto. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:177 > + UInt32 outputBitRate = 64000; > + if (m_destinationFormat.mSampleRate >= 44100) > + outputBitRate = 192000; > + else if (m_destinationFormat.mSampleRate < 22000) > + outputBitRate = 32000; Named constants might help readers understand the values. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:180 > + if (auto error = AudioConverterSetProperty(m_converter.get(), kAudioConverterEncodeBitRate, size, &outputBitRate)) { AudioToolboxSoftLink > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:197 > + m_sourceBuffer.reserveCapacity([self computeBufferSizeForAudioFormat:m_sourceFormat maxOutputPacketSize:0 duration:0.1]); > + m_destinationBuffer.reserveCapacity([self computeBufferSizeForAudioFormat:m_destinationFormat maxOutputPacketSize:m_maxOutputPacketSize duration:0.1]); Named constants would be good here too (is this LOW_WATER_TIME_IN_SECOND?) > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:386 > + while (0 < numBytesToCopy) { This would probably be better as "numBytesToCopy > 0" > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:459 > + // We assume that the source format is PCM, which is not VBR, but CBR. > + // So, there is not packet descriptions describing the layout of each packet. Should we ASSERT this assumption? > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:482 > +- (CMSampleBufferRef)pickOutputSampleBuffer "getOutputSampleBuffer" would be a better match for the typical WebKit naming style. > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:55 > + auto error = CMBufferQueueCreate(kCFAllocatorDefault, 0, CMBufferQueueGetCallbacksForUnsortedSampleBuffers(), &m_outputBufferQueue); CoreMediaSoftLink > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:84 > + auto error = VTCompressionSessionCompleteFrames(m_vtSession.get(), kCMTimeInvalid); This should be soft linked, maybe add a VTCompressionSessionSoftLink? > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:87 > + error = CMBufferQueueMarkEndOfData(m_outputBufferQueue); CoreMediaSoftLink > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:112 > + auto error = VTCompressionSessionCreate(kCFAllocatorDefault, dimensions.width, dimensions.height, m_outputCodecType, (__bridge CFDictionaryRef)encoderSpecifications, NULL, NULL, videoCompressionCallback, (__bridge void *)self, &vtSession); VTCompressionSessionSoftLink > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:126 > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_RealTime, kCFBooleanTrue); > + RELEASE_LOG_ERROR_IF(error, MediaStream, "WebVideoSampleBufferCompressor VTSessionSetProperty kVTCompressionPropertyKey_RealTime failed with %d", error); > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration, (__bridge CFTypeRef)@(m_maxKeyFrameIntervalDuration)); > + RELEASE_LOG_ERROR_IF(error, MediaStream, "WebVideoSampleBufferCompressor VTSessionSetProperty kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration failed with %d", error); > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_ExpectedFrameRate, (__bridge CFTypeRef)@(m_expectedFrameRate)); > + RELEASE_LOG_ERROR_IF(error, MediaStream, "WebVideoSampleBufferCompressor VTSessionSetProperty kVTCompressionPropertyKey_ExpectedFrameRate failed with %d", error); > + > + error = VTCompressionSessionPrepareToEncodeFrames(m_vtSession.get()); Ditto > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:142 > + auto error = VTCompressionSessionEncodeFrame(m_vtSession.get(), imageBuffer, presentationTimeStamp, duration, NULL, (__bridge void *)self, NULL); Ditto.
youenn fablet
Comment 4 2020-01-22 10:01:34 PST
Created attachment 388434 [details] Rebasing
youenn fablet
Comment 5 2020-01-22 11:47:07 PST
youenn fablet
Comment 6 2020-01-24 02:00:42 PST
Eric Carlson
Comment 7 2020-01-24 10:24:30 PST
Comment on attachment 388661 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=388661&action=review > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:124 > + const void *cookie = CMAudioFormatDescriptionGetMagicCookie(formatDescription, &cookieSize); This should be added to CoreMediaSoftLink. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:273 > + if (auto error = CMBlockBufferReplaceDataBytes(data, buffer.get(), 0, dataSize)) { Ditto > Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:281 > + if (![m_videoAssetWriterInput isReadyForMoreMediaData]) > + [m_writer flush]; Will the AssetWriter always be ready for more media data after flushing the writer?
youenn fablet
Comment 8 2020-01-27 05:03:03 PST
Created attachment 388847 [details] Patch for landing
youenn fablet
Comment 9 2020-01-27 05:05:45 PST
(In reply to Eric Carlson from comment #7) > Comment on attachment 388661 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=388661&action=review > > > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:124 > > + const void *cookie = CMAudioFormatDescriptionGetMagicCookie(formatDescription, &cookieSize); > > This should be added to CoreMediaSoftLink. Done > > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:273 > > + if (auto error = CMBlockBufferReplaceDataBytes(data, buffer.get(), 0, dataSize)) { > > Ditto Done > > Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:281 > > + if (![m_videoAssetWriterInput isReadyForMoreMediaData]) > > + [m_writer flush]; > > Will the AssetWriter always be ready for more media data after flushing the > writer? This works as per my testing but I do not see any guarantee for that. I guess the other approach is to use requestMediaDataWhenReadyOnQueue.
youenn fablet
Comment 10 2020-01-27 05:21:05 PST
> > Will the AssetWriter always be ready for more media data after flushing the > > writer? > > This works as per my testing but I do not see any guarantee for that. > I guess the other approach is to use requestMediaDataWhenReadyOnQueue. Actually, no this does not work, let's just stop pushing samples when not being ready for now.
youenn fablet
Comment 11 2020-01-27 09:18:58 PST
youenn fablet
Comment 12 2020-01-27 11:11:50 PST
Created attachment 388875 [details] Patch for landing
youenn fablet
Comment 13 2020-01-28 08:00:43 PST
Created attachment 388994 [details] Patch for landing
WebKit Commit Bot
Comment 14 2020-01-29 02:02:44 PST
Comment on attachment 388994 [details] Patch for landing Clearing flags on attachment: 388994 Committed r255345: <https://trac.webkit.org/changeset/255345>
WebKit Commit Bot
Comment 15 2020-01-29 02:02:46 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 16 2020-01-29 02:03:16 PST
zalan
Comment 17 2020-01-29 07:52:45 PST
Any particular reason to land commented out code?
youenn fablet
Comment 18 2020-01-29 07:56:28 PST
(In reply to zalan from comment #17) > Any particular reason to land commented out code? Which code are you referring to?
zalan
Comment 19 2020-01-29 07:57:32 PST
(In reply to youenn fablet from comment #18) > (In reply to zalan from comment #17) > > Any particular reason to land commented out code? > > Which code are you referring to? /* auto block = makeBlockPtr([this, weakThis = makeWeakPtr(this), completionHandler = WTFMove(completionHandler)]() mutable { if (weakThis) { appendEndsPreviousSampleDurationMarker(m_videoAssetWriterInput.get(), m_lastVideoPresentationTime, m_lastVideoDecodingTime); [m_videoAssetWriterInput markAsFinished]; } completionHandler(); }); [m_videoAssetWriterInput requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:block.get()]; */
youenn fablet
Comment 20 2020-01-29 07:59:42 PST
Oh right, should fix that.
WebKit Commit Bot
Comment 21 2020-01-29 08:03:07 PST
Re-opened since this is blocked by bug 206933
youenn fablet
Comment 22 2020-01-30 05:20:41 PST
Created attachment 389240 [details] Fix include path and commented out code
WebKit Commit Bot
Comment 23 2020-01-30 06:18:41 PST
The commit-queue encountered the following flaky tests while processing attachment 389240 [details]: editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 24 2020-01-30 06:19:13 PST
The commit-queue encountered the following flaky tests while processing attachment 389240 [details]: editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org) imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html bug 206554 (authors: shvaikalesh@gmail.com and youennf@gmail.com) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 25 2020-01-30 06:51:53 PST
The commit-queue encountered the following flaky tests while processing attachment 389240 [details]: editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 26 2020-01-30 06:52:35 PST
Comment on attachment 389240 [details] Fix include path and commented out code Clearing flags on attachment: 389240 Committed r255424: <https://trac.webkit.org/changeset/255424>
WebKit Commit Bot
Comment 27 2020-01-30 06:52:37 PST
All reviewed patches have been landed. Closing bug.
Ryan Haddad
Comment 28 2020-01-30 10:57:51 PST
Reverted r255424 for reason: Breaks internal builds. Committed r255439: <https://trac.webkit.org/changeset/255439>
youenn fablet
Comment 29 2020-02-03 05:32:39 PST
youenn fablet
Comment 30 2020-02-03 09:38:51 PST
youenn fablet
Comment 31 2020-02-04 01:39:07 PST
youenn fablet
Comment 32 2020-02-04 01:54:26 PST
youenn fablet
Comment 33 2020-02-04 05:18:01 PST
Eric Carlson
Comment 34 2020-02-04 06:14:28 PST
Comment on attachment 389652 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=389652&action=review > Source/WebCore/ChangeLog:20 > + Note that, whenever we request data, we flush the writer and insert an end of video sample to amke sure video data gets flushed. s/amke/make/ > Source/WebCore/ChangeLog:21 > + Therefore data should not be requested to fast to get adequate video compression. s/to fast/too fast/ > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:38 > +#define LOW_WATER_TIME_IN_SECOND 0.1 s/LOW_WATER_TIME_IN_SECOND/LOW_WATER_TIME_IN_SECONDS/ > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:68 > + if (auto error = CMBufferQueueCreate(kCFAllocatorDefault, 0, CMBufferQueueGetCallbacksForUnsortedSampleBuffers(), &inputBufferQueue)) { CMBufferQueueGetCallbacksForUnsortedSampleBuffers should be soft linked. > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:75 > + if (auto error = CMBufferQueueCreate(kCFAllocatorDefault, 0, CMBufferQueueGetCallbacksForUnsortedSampleBuffers(), &outputBufferQueue)) { Ditto > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:204 > + CMSetAttachment(buffer, kCMSampleBufferAttachmentKey_TrimDurationAtStart, trimAtStartDict, kCMAttachmentMode_ShouldPropagate); This constant should be soft linked > Source/WebCore/platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:287 > + CMSetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_GradualDecoderRefresh, (__bridge CFTypeRef)m_gdrCountNum.get(), kCMAttachmentMode_ShouldPropagate); Ditto. > Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:300 > + CMSetAttachment(sampleBuffer.get(), kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration, kCFBooleanTrue, kCMAttachmentMode_ShouldPropagate); Soft link > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:65 > + if (auto error = CMBufferQueueCreate(kCFAllocatorDefault, 0, CMBufferQueueGetCallbacksForUnsortedSampleBuffers(), &outputBufferQueue)) { Soft link > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:107 > + NSDictionary *encoderSpecifications = @{(__bridge NSString *)kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder:@YES}; Ditto. > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:118 > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_RealTime, kCFBooleanTrue); Ditto. > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:120 > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration, (__bridge CFTypeRef)@(m_maxKeyFrameIntervalDuration)); Ditto. > Source/WebCore/platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:122 > + error = VTSessionSetProperty(m_vtSession.get(), kVTCompressionPropertyKey_ExpectedFrameRate, (__bridge CFTypeRef)@(m_expectedFrameRate)); Ditto.
youenn fablet
Comment 35 2020-02-05 06:47:58 PST
WebKit Commit Bot
Comment 36 2020-02-05 08:53:59 PST
Comment on attachment 389803 [details] Patch Clearing flags on attachment: 389803 Committed r255818: <https://trac.webkit.org/changeset/255818>
WebKit Commit Bot
Comment 37 2020-02-05 08:54:02 PST
All reviewed patches have been landed. Closing bug.
WebKit Commit Bot
Comment 38 2020-02-05 09:12:07 PST
Re-opened since this is blocked by bug 207270
youenn fablet
Comment 39 2020-02-05 23:21:23 PST
WebKit Commit Bot
Comment 40 2020-02-06 00:34:57 PST
Comment on attachment 389938 [details] Patch Clearing flags on attachment: 389938 Committed r255910: <https://trac.webkit.org/changeset/255910>
WebKit Commit Bot
Comment 41 2020-02-06 00:35:00 PST
All reviewed patches have been landed. Closing bug.
Ryan Haddad
Comment 42 2020-02-06 11:53:51 PST
Attempt to fix internal builds: https://trac.webkit.org/changeset/255970/webkit
WebKit Commit Bot
Comment 43 2020-02-06 11:59:45 PST
Re-opened since this is blocked by bug 207345
youenn fablet
Comment 44 2020-02-06 23:14:23 PST
WebKit Commit Bot
Comment 45 2020-02-07 00:48:02 PST
The commit-queue encountered the following flaky tests while processing attachment 390057 [details]: editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org) imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html bug 207335 (author: graouts@apple.com) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 46 2020-02-07 00:48:58 PST
Comment on attachment 390057 [details] Patch Clearing flags on attachment: 390057 Committed r256010: <https://trac.webkit.org/changeset/256010>
WebKit Commit Bot
Comment 47 2020-02-07 00:49:00 PST
All reviewed patches have been landed. Closing bug.
Ryan Haddad
Comment 48 2020-02-12 17:07:05 PST
Rolled out in https://trac.webkit.org/changeset/256493/webkit due to crashes. Details are in radar.
youenn fablet
Comment 49 2020-06-04 06:21:44 PDT
Crashes were probably due to use of reserveCapacity since it is calling asanSetInitialBufferSizeTo. Instead we could use resize.
youenn fablet
Comment 50 2020-06-05 05:19:10 PDT
EWS
Comment 51 2020-06-05 08:18:19 PDT
Committed r262619: <https://trac.webkit.org/changeset/262619> All reviewed patches have been landed. Closing bug and clearing flags on attachment 401142 [details].
youenn fablet
Comment 52 2020-06-05 09:14:05 PDT
Reopening to attach new patch.
youenn fablet
Comment 53 2020-06-05 09:14:09 PDT
Created attachment 401159 [details] Build fix
EWS
Comment 54 2020-06-05 09:47:35 PDT
Committed r262625: <https://trac.webkit.org/changeset/262625> All reviewed patches have been landed. Closing bug and clearing flags on attachment 401159 [details].
Peng Liu
Comment 55 2020-06-05 11:50:26 PDT
Reopening to attach new patch.
Peng Liu
Comment 56 2020-06-05 11:50:27 PDT
Created attachment 401178 [details] A follow-up patch to fix a build failure
EWS
Comment 57 2020-06-05 12:35:30 PDT
Tools/Scripts/svn-apply failed to apply attachment 401178 [details] to trunk. Please resolve the conflicts and upload a new patch.
Peng Liu
Comment 58 2020-06-05 13:44:18 PDT
Ryan Haddad
Comment 59 2020-06-05 15:49:20 PDT
Reverted r262619, r262625, and r262641 for reason: Caused mediarecorder layout test crashes. Committed r262663: <https://trac.webkit.org/changeset/262663>
Ryan Haddad
Comment 60 2020-06-05 15:49:21 PDT
Reverted r262619, r262625, and r262641 for reason: Caused mediarecorder layout test crashes. Committed r262663: <https://trac.webkit.org/changeset/262663>
youenn fablet
Comment 61 2020-06-07 23:22:04 PDT
Created attachment 401312 [details] One more reserveCapacity
youenn fablet
Comment 62 2020-06-08 02:41:32 PDT
Created attachment 401321 [details] Rebasing
EWS
Comment 63 2020-06-08 04:49:20 PDT
Committed r262708: <https://trac.webkit.org/changeset/262708> All reviewed patches have been landed. Closing bug and clearing flags on attachment 401321 [details].
Note You need to log in before you can comment on or make changes to this bug.