Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 14becf89d9ce9dc33b74d5aa778b1dd21d162ef1
https://github.com/WebKit/WebKit/commit/14becf89d9ce9dc33b74d5aa778b1dd21d162ef1
Author: Jean-Yves Avenard <[email protected]>
Date: 2024-12-18 (Wed, 18 Dec 2024)
Changed paths:
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.cpp
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.h
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateWriter.cpp
M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateWriter.h
M
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.h
M
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.mm
M
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterWebM.cpp
M
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterWebM.h
Log Message:
-----------
Stop using CMSampleBuffer in MediaRecorderPrivateWriter
https://bugs.webkit.org/show_bug.cgi?id=284700
rdar://141498525
Reviewed by Youenn Fablet and Eric Carlson.
CMSampleBuffer and its CMFormatDescription aren't serialisable over IPC. They
also
have a fairly high memory requirement due to their complexity.
We move over to the platform-agnostic MediaSamplesBlock (CMSampleBuffer
replacement)
and TrackInfo (CMFormatDescription replacement). Those two objects can be
serialised
to be transmitted over IPC. They were currently in use by the WeBM
SourceBufferParser,
we now use them in both the MediaRecorderPrivateEncoder and its
MediaRecorderPrivateWriter.
For storage in the MediaRecorderPrivateEncoder we use Vector of
UniqueRef<MediaRecorderPrivateEncoder>
so that they can be moved between queues with less complexity.
No change in observable behaviour, covered by existing tests.
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.cpp:
(WebCore::MediaRecorderPrivateEncoder::audioSamplesDescriptionChanged):
(WebCore::MediaRecorderPrivateEncoder::enqueueCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateEncoder::maybeStartWriter):
(WebCore::MediaRecorderPrivateEncoder::processVideoEncoderActiveConfiguration):
(WebCore::MediaRecorderPrivateEncoder::enqueueCompressedVideoFrame):
(WebCore::MediaRecorderPrivateEncoder::waitForMatchingAudio):
(WebCore::MediaRecorderPrivateEncoder::flushToEndSegment):
(WebCore::MediaRecorderPrivateEncoder::interleaveAndEnqueueNextFrame):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateEncoder.h:
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateWriter.cpp:
(WebCore::MediaRecorderPrivateWriter::create):
(WebCore::MediaRecorderPrivateWriter::writeFrames):
* Source/WebCore/platform/mediarecorder/MediaRecorderPrivateWriter.h:
*
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.h:
*
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterAVFObjC.mm:
(WebCore::MediaRecorderPrivateWriterAVFObjC::addAudioTrack):
(WebCore::MediaRecorderPrivateWriterAVFObjC::addVideoTrack):
(WebCore::MediaRecorderPrivateWriterAVFObjC::writeFrame):
*
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterWebM.cpp:
(WebCore::mkvCodeIcForMediaVideoCodecId): Move method at the top as it needs to
be declared before its users.
(WebCore::MediaRecorderPrivateWriterWebMDelegate::addAudioTrack):
(WebCore::MediaRecorderPrivateWriterWebMDelegate::addVideoTrack):
(WebCore::MediaRecorderPrivateWriterWebM::addAudioTrack):
(WebCore::MediaRecorderPrivateWriterWebM::addVideoTrack):
(WebCore::MediaRecorderPrivateWriterWebM::writeFrame):
* Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterWebM.h:
Canonical link: https://commits.webkit.org/287994@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes