Changeset 267366 in webkit
- Timestamp:
- Sep 21, 2020, 1:57:17 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/http/wpt/mediarecorder/video-rotation-expected.txt (added)
-
LayoutTests/http/wpt/mediarecorder/video-rotation.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp (modified) (1 diff)
-
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h (modified) (3 diffs)
-
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r267362 r267366 1 2020-09-21 Youenn Fablet <youenn@apple.com> 2 3 [iOS] MediaRecorder incorrect screen orientation handling 4 https://bugs.webkit.org/show_bug.cgi?id=198912 5 <rdar://problem/51802521> 6 7 Reviewed by Eric Carlson. 8 9 * http/wpt/mediarecorder/video-rotation-expected.txt: Added. 10 * http/wpt/mediarecorder/video-rotation.html: Added. 11 1 12 2020-09-20 Darin Adler <darin@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r267364 r267366 1 2020-09-21 Youenn Fablet <youenn@apple.com> 2 3 [iOS] MediaRecorder incorrect screen orientation handling 4 https://bugs.webkit.org/show_bug.cgi?id=198912 5 <rdar://problem/51802521> 6 7 Reviewed by Eric Carlson. 8 9 Update MediaRecorderPrivateWriterCocoa to pass a MediaSample down to handle rotation. 10 Set AVAssetWriterInput transform according the first MediaSample rotation value. 11 12 Test: http/wpt/mediarecorder/video-rotation.html 13 14 * platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: 15 (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable): 16 * platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h: 17 * platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: 18 (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer): 19 1 20 2020-09-21 Keith Miller <keith_miller@apple.com> 2 21 -
trunk/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp
r266116 r267366 71 71 void MediaRecorderPrivateAVFImpl::videoSampleAvailable(MediaSample& sampleBuffer) 72 72 { 73 m_writer->appendVideoSampleBuffer(sampleBuffer .platformSample().sample.cmSampleBuffer);73 m_writer->appendVideoSampleBuffer(sampleBuffer); 74 74 } 75 75 -
trunk/Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h
r266116 r267366 57 57 class AudioSampleBufferCompressor; 58 58 class AudioStreamDescription; 59 class MediaSample; 59 60 class MediaStreamTrackPrivate; 60 61 class PlatformAudioData; … … 67 68 ~MediaRecorderPrivateWriter(); 68 69 69 void appendVideoSampleBuffer( CMSampleBufferRef);70 void appendVideoSampleBuffer(MediaSample&); 70 71 void appendAudioSampleBuffer(const PlatformAudioData&, const AudioStreamDescription&, const WTF::MediaTime&, size_t); 71 72 void stopRecording(); … … 130 131 bool m_isFlushingSamples { false }; 131 132 bool m_shouldStopAfterFlushingSamples { false }; 133 bool m_firstVideoFrame { false }; 132 134 }; 133 135 -
trunk/Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm
r266116 r267366 422 422 } 423 423 424 void MediaRecorderPrivateWriter::appendVideoSampleBuffer(CMSampleBufferRef sampleBuffer) 425 { 424 void MediaRecorderPrivateWriter::appendVideoSampleBuffer(MediaSample& sample) 425 { 426 if (!m_firstVideoFrame) { 427 m_firstVideoFrame = true; 428 if (sample.videoRotation() != MediaSample::VideoRotation::None || sample.videoMirrored()) { 429 auto videoTransform = CGAffineTransformMakeRotation(static_cast<int>(sample.videoRotation()) * M_PI / 180); 430 if (sample.videoMirrored()) 431 videoTransform = CGAffineTransformScale(videoTransform, -1, 1); 432 m_videoAssetWriterInput.get().transform = videoTransform; 433 } 434 } 426 435 // FIXME: We should not set the timestamps if they are already set. 427 if (auto bufferWithCurrentTime = copySampleBufferWithCurrentTimeStamp(sample Buffer))436 if (auto bufferWithCurrentTime = copySampleBufferWithCurrentTimeStamp(sample.platformSample().sample.cmSampleBuffer)) 428 437 m_videoCompressor->addSampleBuffer(bufferWithCurrentTime.get()); 429 438 } -
trunk/Source/WebKit/ChangeLog
r267364 r267366 1 2020-09-21 Youenn Fablet <youenn@apple.com> 2 3 [iOS] MediaRecorder incorrect screen orientation handling 4 https://bugs.webkit.org/show_bug.cgi?id=198912 5 <rdar://problem/51802521> 6 7 Reviewed by Eric Carlson. 8 9 * GPUProcess/webrtc/RemoteMediaRecorder.cpp: 10 (WebKit::RemoteMediaRecorder::videoSampleAvailable): 11 1 12 2020-09-21 Keith Miller <keith_miller@apple.com> 2 13 -
trunk/Source/WebKit/GPUProcess/webrtc/RemoteMediaRecorder.cpp
r267237 r267366 119 119 } 120 120 121 m_writer->appendVideoSampleBuffer( sampleBuffer->platformSample().sample.cmSampleBuffer);121 m_writer->appendVideoSampleBuffer(*sampleBuffer); 122 122 } 123 123
Note:
See TracChangeset
for help on using the changeset viewer.