Changeset 269907 in webkit
- Timestamp:
- Nov 17, 2020 9:25:27 AM (3 years ago)
- Location:
- trunk/Source
- Files:
-
- 8 added
- 48 edited
- 5 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r269902 r269907 1 2020-11-17 Peng Liu <peng.liu6@apple.com> 2 3 [Media In GPU Process][MSE] Add infrastructure needed to run MediaPlayerPrivateMediaSourceAVFObjC in the GPU process 4 https://bugs.webkit.org/show_bug.cgi?id=218912 5 6 Reviewed by Eric Carlson. 7 8 This patch makes the MSE version of MediaPlayer::load() the same as the one in MediaPlayerPrivate 9 to support running MSE MediaPlayerPrivate(s) in the GPU process. 10 11 No new tests, no functional change yet. 12 13 * Headers.cmake: 14 * Modules/mediasource/MediaSource.cpp: 15 (WebCore::MediaSource::createSourceBufferPrivate): 16 * Modules/mediasource/SourceBuffer.cpp: 17 (WebCore::SourceBuffer::appendBufferTimerFired): 18 (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): 19 * WebCore.xcodeproj/project.pbxproj: 20 * platform/ContentType.h: 21 * platform/graphics/MediaPlayer.cpp: 22 (WebCore::MediaPlayer::load): 23 (WebCore::MediaPlayer::loadWithNextMediaEngine): 24 * platform/graphics/MediaPlayer.h: 25 * platform/graphics/MediaPlayerPrivate.h: 26 * platform/graphics/MediaSourcePrivate.h: 27 * platform/graphics/SourceBufferPrivateClient.h: 28 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: 29 (WebCore::MediaPlayerPrivateAVFoundation::load): 30 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: 31 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: 32 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: 33 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): 34 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: 35 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: 36 (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): 37 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: 38 * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: 39 (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer): 40 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: 41 (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): 42 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: 43 (WebCore::MediaPlayerPrivateGStreamer::load): 44 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 45 * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: 46 (WebCore::MediaPlayerPrivateGStreamerMSE::load): 47 * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: 48 * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: 49 (WebCore::PlaybackPipeline::addSourceBuffer): 50 * platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: 51 (WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples): 52 (WebCore::SourceBufferPrivateGStreamer::appendParsingFailed): 53 * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp: 54 (WebCore::MockMediaPlayerMediaSource::load): 55 * platform/mock/mediasource/MockMediaPlayerMediaSource.h: 56 * platform/mock/mediasource/MockMediaSourcePrivate.cpp: 57 (WebCore::MockMediaSourcePrivate::addSourceBuffer): 58 * platform/mock/mediasource/MockSourceBufferPrivate.cpp: 59 (WebCore::MockSourceBufferPrivate::append): 60 1 61 2020-11-17 Rob Buis <rbuis@igalia.com> 2 62 -
trunk/Source/WebCore/Headers.cmake
r269888 r269907 1224 1224 platform/graphics/MediaPlayerIdentifier.h 1225 1225 platform/graphics/MediaPlayerPrivate.h 1226 platform/graphics/MediaSourcePrivate.h 1227 platform/graphics/MediaSourcePrivateClient.h 1226 1228 platform/graphics/MediaUsageInfo.h 1227 1229 platform/graphics/NativeImage.h … … 1245 1247 platform/graphics/RenderingMode.h 1246 1248 platform/graphics/RoundedRect.h 1249 platform/graphics/SourceBufferPrivate.h 1250 platform/graphics/SourceBufferPrivateClient.h 1247 1251 platform/graphics/StringTruncator.h 1248 1252 platform/graphics/TabSize.h -
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
r265167 r269907 1084 1084 RefPtr<SourceBufferPrivate> sourceBufferPrivate; 1085 1085 switch (m_private->addSourceBuffer(type, sourceBufferPrivate)) { 1086 case MediaSourcePrivate:: Ok:1086 case MediaSourcePrivate::AddStatus::Ok: 1087 1087 return sourceBufferPrivate.releaseNonNull(); 1088 case MediaSourcePrivate:: NotSupported:1088 case MediaSourcePrivate::AddStatus::NotSupported: 1089 1089 // 2.2 https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-source.html#widl-MediaSource-addSourceBuffer-SourceBuffer-DOMString-type 1090 1090 // Step 2: If type contains a MIME type ... that is not supported with the types … … 1092 1092 // a NotSupportedError exception and abort these steps. 1093 1093 return Exception { NotSupportedError }; 1094 case MediaSourcePrivate:: ReachedIdLimit:1094 case MediaSourcePrivate::AddStatus::ReachedIdLimit: 1095 1095 // 2.2 https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-source.html#widl-MediaSource-addSourceBuffer-SourceBuffer-DOMString-type 1096 1096 // Step 3: If the user agent can't handle any more SourceBuffer objects then throw -
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp
r269121 r269907 633 633 // 1. Loop Top: If the input buffer is empty, then jump to the need more data step below. 634 634 if (!m_pendingAppendData.size()) { 635 sourceBufferPrivateAppendComplete(Append Succeeded);635 sourceBufferPrivateAppendComplete(AppendResult::AppendSucceeded); 636 636 return; 637 637 } … … 659 659 // 2. If the input buffer contains bytes that violate the SourceBuffer byte stream format specification, 660 660 // then run the append error algorithm with the decode error parameter set to true and abort this algorithm. 661 if (result == ParsingFailed) {661 if (result == AppendResult::ParsingFailed) { 662 662 ERROR_LOG(LOGIDENTIFIER, "ParsingFailed"); 663 663 appendError(true); … … 672 672 // NOTE: return to Section 3.5.5 673 673 // 2.If the segment parser loop algorithm in the previous step was aborted, then abort this algorithm. 674 if (result != Append Succeeded)674 if (result != AppendResult::AppendSucceeded) 675 675 return; 676 676 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r269888 r269907 4241 4241 CD5FF49E2162E4E8004BD86F /* ISOOriginalFormatBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C671FB52B6800F0B965 /* ISOOriginalFormatBox.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4242 4242 CD62FB961AF018E70012ED7D /* GenericTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CD62FB941AF018E70012ED7D /* GenericTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4243 CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */; };4244 CD641EB41818F5ED00EE4C41 /* SourceBufferPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB21818F5ED00EE4C41 /* SourceBufferPrivate.h */; };4243 CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4244 CD641EB41818F5ED00EE4C41 /* SourceBufferPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB21818F5ED00EE4C41 /* SourceBufferPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4245 4245 CD720B4F2268B51300047FDE /* ISOFairPlayStreamingPsshBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD720B4922682C7F00047FDE /* ISOFairPlayStreamingPsshBox.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4246 4246 CD7D33441C7A123F00041293 /* PixelBufferConformerCV.h in Headers */ = {isa = PBXBuildFile; fileRef = CD7D33421C7A123F00041293 /* PixelBufferConformerCV.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 4319 4319 CDCFABBD18C0AF78006F8450 /* HighlightData.h in Headers */ = {isa = PBXBuildFile; fileRef = CDCFABBB18C0AE31006F8450 /* HighlightData.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4320 4320 CDD7089718359F6F002B3DC6 /* SampleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = CDD7089518359F6F002B3DC6 /* SampleMap.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4321 CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CDDC1E7918A952F30027A9D4 /* MediaSourcePrivateClient.h */; };4321 CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CDDC1E7918A952F30027A9D4 /* MediaSourcePrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4322 4322 CDDE02ED18B3ED6D00CF7FF1 /* CDMSessionAVFoundationObjC.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDDE02EB18B3ED6D00CF7FF1 /* CDMSessionAVFoundationObjC.mm */; }; 4323 4323 CDDE02F018B5651300CF7FF1 /* CDMSessionAVStreamSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDDE02EF18B5651200CF7FF1 /* CDMSessionAVStreamSession.mm */; }; -
trunk/Source/WebCore/platform/ContentType.h
r261014 r269907 48 48 bool isEmpty() const { return m_type.isEmpty(); } 49 49 50 String toJSONString() const;50 WEBCORE_EXPORT String toJSONString() const; 51 51 52 52 template<class Encoder> -
trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp
r269850 r269907 97 97 void load(const String&) final { } 98 98 #if ENABLE(MEDIA_SOURCE) 99 void load(const String&, MediaSourcePrivateClient*) final { }99 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) final { } 100 100 #endif 101 101 #if ENABLE(MEDIA_STREAM) … … 587 587 #if ENABLE(MEDIA_SOURCE) 588 588 if (m_mediaSource) 589 m_private->load(m_url .string(), m_mediaSource.get());589 m_private->load(m_url, m_contentType, m_mediaSource.get()); 590 590 else 591 591 #endif -
trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
r269850 r269907 44 44 45 45 #if ENABLE(MEDIA_SOURCE) 46 virtual void load(const String& url, MediaSourcePrivateClient*) = 0;46 virtual void load(const URL&, const ContentType&, MediaSourcePrivateClient*) = 0; 47 47 #endif 48 48 #if ENABLE(MEDIA_STREAM) -
trunk/Source/WebCore/platform/graphics/MediaSourcePrivate.h
r241148 r269907 28 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 29 */ 30 #ifndef MediaSourcePrivate_h 31 # define MediaSourcePrivate_h30 31 #pragma once 32 32 33 33 #if ENABLE(MEDIA_SOURCE) … … 50 50 virtual ~MediaSourcePrivate() = default; 51 51 52 enum AddStatus { Ok, NotSupported, ReachedIdLimit }; 52 enum class AddStatus : uint8_t { 53 Ok, 54 NotSupported, 55 ReachedIdLimit 56 }; 53 57 virtual AddStatus addSourceBuffer(const ContentType&, RefPtr<SourceBufferPrivate>&) = 0; 54 58 virtual void durationChanged() = 0; … … 89 93 }; 90 94 95 template<> struct EnumTraits<WebCore::MediaSourcePrivate::AddStatus> { 96 using values = EnumValues< 97 WebCore::MediaSourcePrivate::AddStatus, 98 WebCore::MediaSourcePrivate::AddStatus::Ok, 99 WebCore::MediaSourcePrivate::AddStatus::NotSupported, 100 WebCore::MediaSourcePrivate::AddStatus::ReachedIdLimit 101 >; 102 }; 103 91 104 } // namespace WTF 92 105 93 106 #endif 94 #endif -
trunk/Source/WebCore/platform/graphics/SourceBufferPrivateClient.h
r246490 r269907 74 74 virtual MediaTime sourceBufferPrivateFastSeekTimeForMediaTime(const MediaTime&, const MediaTime&, const MediaTime&) = 0; 75 75 76 enum AppendResult { AppendSucceeded, ReadStreamFailed, ParsingFailed }; 76 enum class AppendResult : uint8_t { 77 AppendSucceeded, 78 ReadStreamFailed, 79 ParsingFailed 80 }; 77 81 virtual void sourceBufferPrivateAppendComplete(AppendResult) = 0; 78 82 virtual void sourceBufferPrivateDidReceiveRenderingError(int errorCode) = 0; 79 83 }; 80 84 81 } 85 } // namespace WebCore 86 87 namespace WTF { 88 89 template<> struct EnumTraits<WebCore::SourceBufferPrivateClient::AppendResult> { 90 using values = EnumValues< 91 WebCore::SourceBufferPrivateClient::AppendResult, 92 WebCore::SourceBufferPrivateClient::AppendResult::AppendSucceeded, 93 WebCore::SourceBufferPrivateClient::AppendResult::ReadStreamFailed, 94 WebCore::SourceBufferPrivateClient::AppendResult::ParsingFailed 95 >; 96 }; 97 98 } // namespace WTF 82 99 83 100 #endif // ENABLE(MEDIA_SOURCE) -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
r268970 r269907 182 182 183 183 #if ENABLE(MEDIA_SOURCE) 184 void MediaPlayerPrivateAVFoundation::load(const String&, MediaSourcePrivateClient*)184 void MediaPlayerPrivateAVFoundation::load(const URL&, const ContentType&, MediaSourcePrivateClient*) 185 185 { 186 186 setNetworkState(MediaPlayer::NetworkState::FormatError); -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h
r268607 r269907 159 159 void load(const String& url) override; 160 160 #if ENABLE(MEDIA_SOURCE) 161 void load(const String&, MediaSourcePrivateClient*) override;161 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 162 162 #endif 163 163 #if ENABLE(MEDIA_STREAM) -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
r269850 r269907 149 149 bool shouldCheckHardwareSupport() const; 150 150 151 #if !RELEASE_LOG_DISABLED 151 152 const Logger& logger() const final { return m_logger.get(); } 152 153 const char* logClassName() const override { return "MediaPlayerPrivateMediaSourceAVFObjC"; } … … 156 157 const void* mediaPlayerLogIdentifier() { return logIdentifier(); } 157 158 const Logger& mediaPlayerLogger() { return logger(); } 159 #endif 158 160 159 161 enum SeekState { … … 166 168 // MediaPlayerPrivateInterface 167 169 void load(const String& url) override; 168 void load(const String& url, MediaSourcePrivateClient*) override;170 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 169 171 #if ENABLE(MEDIA_STREAM) 170 172 void load(MediaStreamPrivate&) override; -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
r269850 r269907 267 267 } 268 268 269 void MediaPlayerPrivateMediaSourceAVFObjC::load(const String&, MediaSourcePrivateClient* client)269 void MediaPlayerPrivateMediaSourceAVFObjC::load(const URL&, const ContentType&, MediaSourcePrivateClient* client) 270 270 { 271 271 ALWAYS_LOG(LOGIDENTIFIER); -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
r269614 r269907 99 99 void load(const String&) override; 100 100 #if ENABLE(MEDIA_SOURCE) 101 void load(const String&, MediaSourcePrivateClient*) override;101 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 102 102 #endif 103 103 void load(MediaStreamPrivate&) override; -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm
r269614 r269907 404 404 405 405 #if ENABLE(MEDIA_SOURCE) 406 void MediaPlayerPrivateMediaStreamAVFObjC::load(const String&, MediaSourcePrivateClient*)406 void MediaPlayerPrivateMediaStreamAVFObjC::load(const URL&, const ContentType&, MediaSourcePrivateClient*) 407 407 { 408 408 // This media engine only supports MediaStream URLs. -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h
r259363 r269907 24 24 */ 25 25 26 #ifndef MediaSourcePrivateAVFObjC_h 27 #define MediaSourcePrivateAVFObjC_h 26 #pragma once 28 27 29 28 #if ENABLE(MEDIA_SOURCE) && USE(AVFOUNDATION) … … 150 149 151 150 #endif // ENABLE(MEDIA_SOURCE) && USE(AVFOUNDATION) 152 153 #endif -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm
r269711 r269907 85 85 parameters.type = contentType; 86 86 if (MediaPlayerPrivateMediaSourceAVFObjC::supportsTypeAndCodecs(parameters) == MediaPlayer::SupportsType::IsNotSupported) 87 return NotSupported;87 return AddStatus::NotSupported; 88 88 89 89 auto parser = SourceBufferParser::create(contentType); 90 90 if (!parser) 91 return NotSupported;91 return AddStatus::NotSupported; 92 92 93 93 auto newSourceBuffer = SourceBufferPrivateAVFObjC::create(this, parser.releaseNonNull()); … … 98 98 m_sourceBuffers.append(WTFMove(newSourceBuffer)); 99 99 100 return Ok;100 return AddStatus::Ok; 101 101 } 102 102 -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
r269711 r269907 43 43 #import "MediaSampleAVFObjC.h" 44 44 #import "MediaSourcePrivateAVFObjC.h" 45 #import "NotImplemented.h"46 45 #import "SharedBuffer.h" 47 46 #import "SourceBufferParserAVFObjC.h" … … 587 586 588 587 if (m_client) 589 m_client->sourceBufferPrivateAppendComplete(m_parsingSucceeded ? SourceBufferPrivateClient::Append Succeeded : SourceBufferPrivateClient::ParsingFailed);588 m_client->sourceBufferPrivateAppendComplete(m_parsingSucceeded ? SourceBufferPrivateClient::AppendResult::AppendSucceeded : SourceBufferPrivateClient::AppendResult::ParsingFailed); 590 589 } 591 590 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
r269850 r269907 392 392 393 393 #if ENABLE(MEDIA_SOURCE) 394 void MediaPlayerPrivateGStreamer::load(const String&, MediaSourcePrivateClient*)394 void MediaPlayerPrivateGStreamer::load(const URL&, const ContentType&, MediaSourcePrivateClient*) 395 395 { 396 396 // Properly fail so the global MediaPlayer tries to fallback to the next MediaPlayerPrivate. -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
r269850 r269907 143 143 void load(const String &url) override; 144 144 #if ENABLE(MEDIA_SOURCE) 145 void load(const String& url, MediaSourcePrivateClient*) override;145 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 146 146 #endif 147 147 #if ENABLE(MEDIA_STREAM) -
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
r268576 r269907 139 139 } 140 140 141 void MediaPlayerPrivateGStreamerMSE::load(const String& url, MediaSourcePrivateClient* mediaSource)141 void MediaPlayerPrivateGStreamerMSE::load(const URL& url, const ContentType&, MediaSourcePrivateClient* mediaSource) 142 142 { 143 143 m_mediaSource = mediaSource; 144 load(makeString("mediasource", url ));144 load(makeString("mediasource", url.string())); 145 145 } 146 146 -
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
r264211 r269907 48 48 49 49 void load(const String&) override; 50 void load(const String&, MediaSourcePrivateClient*) override;50 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 51 51 52 52 void updateDownloadBufferingFlag() override { }; -
trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp
r251365 r269907 108 108 if (priv->allTracksConfigured) { 109 109 GST_ERROR_OBJECT(m_webKitMediaSrc.get(), "Adding new source buffers after first data not supported yet"); 110 return MediaSourcePrivate:: NotSupported;110 return MediaSourcePrivate::AddStatus::NotSupported; 111 111 } 112 112 … … 141 141 gst_element_sync_state_with_parent(stream->appsrc); 142 142 143 return MediaSourcePrivate:: Ok;143 return MediaSourcePrivate::AddStatus::Ok; 144 144 } 145 145 -
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
r265494 r269907 195 195 void SourceBufferPrivateGStreamer::didReceiveAllPendingSamples() 196 196 { 197 m_sourceBufferPrivateClient->sourceBufferPrivateAppendComplete(SourceBufferPrivateClient::Append Succeeded);197 m_sourceBufferPrivateClient->sourceBufferPrivateAppendComplete(SourceBufferPrivateClient::AppendResult::AppendSucceeded); 198 198 } 199 199 200 200 void SourceBufferPrivateGStreamer::appendParsingFailed() 201 201 { 202 m_sourceBufferPrivateClient->sourceBufferPrivateAppendComplete(SourceBufferPrivateClient:: ParsingFailed);202 m_sourceBufferPrivateClient->sourceBufferPrivateAppendComplete(SourceBufferPrivateClient::AppendResult::ParsingFailed); 203 203 } 204 204 -
trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp
r253482 r269907 112 112 } 113 113 114 void MockMediaPlayerMediaSource::load(const String&, MediaSourcePrivateClient* source)114 void MockMediaPlayerMediaSource::load(const URL&, const ContentType&, MediaSourcePrivateClient* source) 115 115 { 116 116 m_mediaSourcePrivate = MockMediaSourcePrivate::create(*this, *source); -
trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h
r241148 r269907 66 66 // MediaPlayerPrivate Overrides 67 67 void load(const String& url) override; 68 void load(const String& url, MediaSourcePrivateClient*) override;68 void load(const URL&, const ContentType&, MediaSourcePrivateClient*) override; 69 69 #if ENABLE(MEDIA_STREAM) 70 70 void load(MediaStreamPrivate&) override { } -
trunk/Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp
r253397 r269907 64 64 parameters.type = contentType; 65 65 if (MockMediaPlayerMediaSource::supportsType(parameters) == MediaPlayer::SupportsType::IsNotSupported) 66 return NotSupported;66 return AddStatus::NotSupported; 67 67 68 68 m_sourceBuffers.append(MockSourceBufferPrivate::create(this)); 69 69 outPrivate = m_sourceBuffers.last(); 70 70 71 return Ok;71 return AddStatus::Ok; 72 72 } 73 73 -
trunk/Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
r260415 r269907 140 140 { 141 141 m_inputBuffer.appendVector(data); 142 SourceBufferPrivateClient::AppendResult result = SourceBufferPrivateClient::Append Succeeded;143 144 while (m_inputBuffer.size() && result == SourceBufferPrivateClient::Append Succeeded) {142 SourceBufferPrivateClient::AppendResult result = SourceBufferPrivateClient::AppendResult::AppendSucceeded; 143 144 while (m_inputBuffer.size() && result == SourceBufferPrivateClient::AppendResult::AppendSucceeded) { 145 145 auto buffer = ArrayBuffer::create(m_inputBuffer.data(), m_inputBuffer.size()); 146 146 size_t boxLength = MockBox::peekLength(buffer.ptr()); … … 156 156 didReceiveSample(sampleBox); 157 157 } else 158 result = SourceBufferPrivateClient:: ParsingFailed;158 result = SourceBufferPrivateClient::AppendResult::ParsingFailed; 159 159 160 160 m_inputBuffer.remove(0, boxLength); -
trunk/Source/WebKit/CMakeLists.txt
r269348 r269907 138 138 GPUProcess/media/RemoteMediaPlayerProxy 139 139 GPUProcess/media/RemoteMediaResourceManager 140 GPUProcess/media/RemoteMediaSourceProxy 141 GPUProcess/media/RemoteSourceBufferProxy 140 142 141 143 GPUProcess/webrtc/LibWebRTCCodecsProxy … … 225 227 WebProcess/GPU/media/RemoteCDMInstanceSession 226 228 WebProcess/GPU/media/RemoteLegacyCDMSession 229 WebProcess/GPU/media/SourceBufferPrivateRemote 227 230 228 231 WebProcess/GPU/webrtc/LibWebRTCCodecs -
trunk/Source/WebKit/ChangeLog
r269906 r269907 1 2020-11-17 Peng Liu <peng.liu6@apple.com> 2 3 [Media In GPU Process][MSE] Add infrastructure needed to run MediaPlayerPrivateMediaSourceAVFObjC in the GPU process 4 https://bugs.webkit.org/show_bug.cgi?id=218912 5 6 Reviewed by Eric Carlson. 7 8 Add MediaSourcePrivateRemote/RemoteMediaSourceProxy and SourceBufferPrivateRemote/RemoteSourceBufferProxy, 9 and setup IPC connections for them. 10 11 * CMakeLists.txt: 12 * DerivedSources-input.xcfilelist: 13 * DerivedSources-output.xcfilelist: 14 * DerivedSources.make: 15 * GPUProcess/GPUProcessSessionParameters.h: 16 * GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp: 17 * GPUProcess/media/RemoteMediaPlayerProxy.cpp: 18 (WebKit::RemoteMediaPlayerProxy::loadMediaSource): 19 * GPUProcess/media/RemoteMediaPlayerProxy.h: 20 * GPUProcess/media/RemoteMediaPlayerProxy.messages.in: 21 * GPUProcess/media/RemoteMediaSourceProxy.cpp: Added. 22 (WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy): 23 (WebKit::RemoteMediaSourceProxy::~RemoteMediaSourceProxy): 24 (WebKit::RemoteMediaSourceProxy::setPrivateAndOpen): 25 (WebKit::RemoteMediaSourceProxy::duration const): 26 (WebKit::RemoteMediaSourceProxy::buffered const): 27 (WebKit::RemoteMediaSourceProxy::seekToTime): 28 (WebKit::RemoteMediaSourceProxy::monitorSourceBuffers): 29 (WebKit::RemoteMediaSourceProxy::setLogIdentifier): 30 (WebKit::RemoteMediaSourceProxy::failedToCreateRenderer): 31 (WebKit::RemoteMediaSourceProxy::addSourceBuffer): 32 * GPUProcess/media/RemoteMediaSourceProxy.h: Added. 33 * GPUProcess/media/RemoteMediaSourceProxy.messages.in: Added. 34 * GPUProcess/media/RemoteSourceBufferIdentifier.h: Added. 35 * GPUProcess/media/RemoteSourceBufferProxy.cpp: Added. 36 (WebKit::RemoteSourceBufferProxy::create): 37 (WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy): 38 (WebKit::RemoteSourceBufferProxy::~RemoteSourceBufferProxy): 39 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment): 40 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveSample): 41 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasAudio const): 42 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHasVideo const): 43 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReenqueSamples): 44 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidBecomeReadyForMoreSamples): 45 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateFastSeekTimeForMediaTime): 46 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete): 47 (WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError): 48 (WebKit::RemoteSourceBufferProxy::append): 49 * GPUProcess/media/RemoteSourceBufferProxy.h: Added. 50 * GPUProcess/media/RemoteSourceBufferProxy.messages.in: Added. 51 * GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp: 52 * Scripts/webkit/messages.py: 53 * Sources.txt: 54 * WebKit.xcodeproj/project.pbxproj: 55 * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: 56 (WebKit::MediaPlayerPrivateRemote::load): 57 (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Deleted. 58 * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: 59 * WebProcess/GPU/media/MediaSourcePrivateRemote.cpp: Added. 60 (WebKit::MediaSourcePrivateRemote::create): 61 (WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote): 62 (WebKit::MediaSourcePrivateRemote::~MediaSourcePrivateRemote): 63 (WebKit::MediaSourcePrivateRemote::addSourceBuffer): 64 (WebKit::MediaSourcePrivateRemote::durationChanged): 65 (WebKit::MediaSourcePrivateRemote::markEndOfStream): 66 (WebKit::MediaSourcePrivateRemote::unmarkEndOfStream): 67 (WebKit::MediaSourcePrivateRemote::readyState const): 68 (WebKit::MediaSourcePrivateRemote::setReadyState): 69 (WebKit::MediaSourcePrivateRemote::waitForSeekCompleted): 70 (WebKit::MediaSourcePrivateRemote::seekCompleted): 71 (WebKit::MediaSourcePrivateRemote::logChannel const): 72 * WebProcess/GPU/media/MediaSourcePrivateRemote.h: Added. 73 * WebProcess/GPU/media/RemoteCDMConfiguration.h: 74 * WebProcess/GPU/media/RemoteCDMInstanceConfiguration.h: 75 * WebProcess/GPU/media/RemoteMediaPlayerManager.h: 76 * WebProcess/GPU/media/RemoteMediaSourceIdentifier.h: Added. 77 * WebProcess/GPU/media/SourceBufferPrivateRemote.cpp: Added. 78 (WebKit::SourceBufferPrivateRemote::create): 79 (WebKit::SourceBufferPrivateRemote::SourceBufferPrivateRemote): 80 (WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote): 81 (WebKit::SourceBufferPrivateRemote::setClient): 82 (WebKit::SourceBufferPrivateRemote::append): 83 (WebKit::SourceBufferPrivateRemote::abort): 84 (WebKit::SourceBufferPrivateRemote::resetParserState): 85 (WebKit::SourceBufferPrivateRemote::removedFromMediaSource): 86 (WebKit::SourceBufferPrivateRemote::readyState const): 87 (WebKit::SourceBufferPrivateRemote::setReadyState): 88 (WebKit::SourceBufferPrivateRemote::flush): 89 (WebKit::SourceBufferPrivateRemote::enqueueSample): 90 (WebKit::SourceBufferPrivateRemote::isReadyForMoreSamples): 91 (WebKit::SourceBufferPrivateRemote::setActive): 92 (WebKit::SourceBufferPrivateRemote::notifyClientWhenReadyForMoreSamples): 93 (WebKit::SourceBufferPrivateRemote::canSetMinimumUpcomingPresentationTime const): 94 (WebKit::SourceBufferPrivateRemote::setMinimumUpcomingPresentationTime): 95 (WebKit::SourceBufferPrivateRemote::clearMinimumUpcomingPresentationTime): 96 (WebKit::SourceBufferPrivateRemote::canSwitchToType): 97 (WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete): 98 (WebKit::SourceBufferPrivateRemote::logChannel const): 99 * WebProcess/GPU/media/SourceBufferPrivateRemote.h: Added. 100 * WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in: Added. 101 1 102 2020-11-17 Per Arne Vollan <pvollan@apple.com> 2 103 -
trunk/Source/WebKit/DerivedSources-input.xcfilelist
r269701 r269907 36 36 $(PROJECT_DIR)/GPUProcess/media/RemoteMediaPlayerProxy.messages.in 37 37 $(PROJECT_DIR)/GPUProcess/media/RemoteMediaResourceManager.messages.in 38 $(PROJECT_DIR)/GPUProcess/media/RemoteMediaSourceProxy.messages.in 39 $(PROJECT_DIR)/GPUProcess/media/RemoteSourceBufferProxy.messages.in 38 40 $(PROJECT_DIR)/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.messages.in 39 41 $(PROJECT_DIR)/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in … … 96 98 $(PROJECT_DIR)/UIProcess/GPU/GPUProcessProxy.messages.in 97 99 $(PROJECT_DIR)/UIProcess/Inspector/RemoteWebInspectorProxy.messages.in 100 $(PROJECT_DIR)/UIProcess/Inspector/WebInspectorProxy.messages.in 98 101 $(PROJECT_DIR)/UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.messages.in 99 $(PROJECT_DIR)/UIProcess/Inspector/WebInspectorProxy.messages.in100 102 $(PROJECT_DIR)/UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in 101 103 $(PROJECT_DIR)/UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in … … 137 139 $(PROJECT_DIR)/WebProcess/GPU/media/RemoteCDMInstanceSession.messages.in 138 140 $(PROJECT_DIR)/WebProcess/GPU/media/RemoteLegacyCDMSession.messages.in 141 $(PROJECT_DIR)/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in 139 142 $(PROJECT_DIR)/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in 140 143 $(PROJECT_DIR)/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in … … 144 147 $(PROJECT_DIR)/WebProcess/Inspector/RemoteWebInspectorUI.messages.in 145 148 $(PROJECT_DIR)/WebProcess/Inspector/WebInspector.messages.in 146 $(PROJECT_DIR)/WebProcess/Inspector/WebInspectorUIExtensionController.messages.in147 149 $(PROJECT_DIR)/WebProcess/Inspector/WebInspectorInterruptDispatcher.messages.in 148 150 $(PROJECT_DIR)/WebProcess/Inspector/WebInspectorUI.messages.in 151 $(PROJECT_DIR)/WebProcess/Inspector/WebInspectorUIExtensionController.messages.in 149 152 $(PROJECT_DIR)/WebProcess/Network/NetworkProcessConnection.messages.in 150 153 $(PROJECT_DIR)/WebProcess/Network/WebResourceLoader.messages.in -
trunk/Source/WebKit/DerivedSources-output.xcfilelist
r269701 r269907 216 216 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteMediaSessionHelperProxyMessages.h 217 217 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteMediaSessionHelperProxyMessagesReplies.h 218 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteMediaSourceProxyMessageReceiver.cpp 219 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteMediaSourceProxyMessages.h 220 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteMediaSourceProxyMessagesReplies.h 218 221 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteObjectRegistryMessageReceiver.cpp 219 222 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteObjectRegistryMessages.h … … 234 237 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteScrollingCoordinatorMessages.h 235 238 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteScrollingCoordinatorMessagesReplies.h 239 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteSourceBufferProxyMessageReceiver.cpp 240 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteSourceBufferProxyMessages.h 241 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteSourceBufferProxyMessagesReplies.h 236 242 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteWebInspectorProxyMessageReceiver.cpp 237 243 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteWebInspectorProxyMessages.h … … 252 258 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SmartMagnificationControllerMessages.h 253 259 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SmartMagnificationControllerMessagesReplies.h 260 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SourceBufferPrivateRemoteMessageReceiver.cpp 261 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SourceBufferPrivateRemoteMessages.h 262 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SourceBufferPrivateRemoteMessagesReplies.h 254 263 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SpeechRecognitionServerMessageReceiver.cpp 255 264 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/SpeechRecognitionServerMessages.h … … 349 358 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebIDBServerMessages.h 350 359 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebIDBServerMessagesReplies.h 351 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessageReceiver.cpp352 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessages.h353 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessagesReplies.h354 360 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorInterruptDispatcherMessageReceiver.cpp 355 361 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorInterruptDispatcherMessages.h … … 361 367 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorProxyMessages.h 362 368 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorProxyMessagesReplies.h 369 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessageReceiver.cpp 370 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessages.h 371 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIExtensionControllerMessagesReplies.h 363 372 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIMessageReceiver.cpp 364 373 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/WebInspectorUIMessages.h -
trunk/Source/WebKit/DerivedSources.make
r269701 r269907 175 175 WebProcess/GPU/webrtc/SampleBufferDisplayLayer \ 176 176 WebProcess/GPU/media/MediaPlayerPrivateRemote \ 177 WebProcess/GPU/media/RemoteCDMInstanceSession \178 WebProcess/GPU/media/RemoteLegacyCDMSession \179 WebProcess/GPU/media/ios/RemoteMediaSessionHelper \180 177 WebProcess/GPU/media/RemoteAudioDestinationProxy \ 181 178 WebProcess/GPU/media/RemoteAudioSession \ 182 179 WebProcess/GPU/media/RemoteAudioSourceProviderManager \ 180 WebProcess/GPU/media/RemoteCDMInstanceSession \ 181 WebProcess/GPU/media/RemoteLegacyCDMSession \ 182 WebProcess/GPU/media/SourceBufferPrivateRemote \ 183 WebProcess/GPU/media/ios/RemoteMediaSessionHelper \ 183 184 WebProcess/WebStorage/StorageAreaMap \ 184 185 WebProcess/UserContent/WebUserContentController \ … … 241 242 GPUProcess/media/RemoteCDMProxy \ 242 243 GPUProcess/media/ios/RemoteMediaSessionHelperProxy \ 243 GPUProcess/media/Remote MediaPlayerProxy\244 GPUProcess/media/RemoteAudioDestinationManager \ 244 245 GPUProcess/media/RemoteCDMFactoryProxy \ 245 GPUProcess/media/RemoteMediaResourceManager \246 246 GPUProcess/media/RemoteCDMInstanceProxy \ 247 247 GPUProcess/media/RemoteLegacyCDMProxy \ 248 248 GPUProcess/media/RemoteMediaPlayerManagerProxy \ 249 GPUProcess/media/RemoteAudioDestinationManager \ 249 GPUProcess/media/RemoteMediaPlayerProxy \ 250 GPUProcess/media/RemoteMediaResourceManager \ 251 GPUProcess/media/RemoteMediaSourceProxy \ 252 GPUProcess/media/RemoteSourceBufferProxy \ 250 253 WebAuthnProcess/WebAuthnConnectionToWebProcess \ 251 254 WebAuthnProcess/WebAuthnProcess \ -
trunk/Source/WebKit/GPUProcess/GPUProcessSessionParameters.h
r255346 r269907 29 29 30 30 #include "SandboxExtension.h" 31 #include <WebCore/ContentType.h>32 31 #include <wtf/text/WTFString.h> 33 32 -
trunk/Source/WebKit/GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp
r268118 r269907 137 137 } 138 138 139 140 139 } 141 140 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
r268608 r269907 132 132 } 133 133 134 #if ENABLE(MEDIA_SOURCE) 135 void RemoteMediaPlayerProxy::loadMediaSource(URL&& url, const WebCore::ContentType& contentType, RemoteMediaSourceIdentifier mediaSourceIdentifier) 136 { 137 m_mediaSourceProxy = adoptRef(*new RemoteMediaSourceProxy(mediaSourceIdentifier, m_manager.gpuConnectionToWebProcess())); 138 m_player->load(url, contentType, m_mediaSourceProxy.get()); 139 } 140 #endif 141 134 142 void RemoteMediaPlayerProxy::cancelLoad() 135 143 { -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
r268608 r269907 53 53 #endif 54 54 55 #if ENABLE(MEDIA_SOURCE) 56 #include "RemoteMediaSourceIdentifier.h" 57 #include "RemoteMediaSourceProxy.h" 58 #endif 59 55 60 #if PLATFORM(COCOA) 56 61 #include "SharedRingBufferStorage.h" … … 110 115 111 116 void load(URL&&, Optional<SandboxExtension::Handle>&&, const WebCore::ContentType&, const String&, CompletionHandler<void(RemoteMediaPlayerConfiguration&&)>&&); 117 #if ENABLE(MEDIA_SOURCE) 118 void loadMediaSource(URL&&, const WebCore::ContentType&, RemoteMediaSourceIdentifier); 119 #endif 112 120 void cancelLoad(); 113 121 … … 301 309 RemoteMediaPlayerProxyConfiguration m_configuration; 302 310 CompletionHandler<void(Optional<MediaTime>)> m_performTaskAtMediaTimeCompletionHandler; 311 #if ENABLE(MEDIA_SOURCE) 312 RefPtr<RemoteMediaSourceProxy> m_mediaSourceProxy; 313 #endif 303 314 304 315 WebCore::LayoutRect m_videoContentBoxRect; -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in
r268608 r269907 28 28 29 29 Load(URL url, Optional<WebKit::SandboxExtension::Handle> sandboxExtension, WebCore::ContentType contentType, String keySystem) -> (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Async 30 #if ENABLE(MEDIA_SOURCE) 31 LoadMediaSource(URL url, WebCore::ContentType contentType, WebKit::RemoteMediaSourceIdentifier mediaSourceIdentifier) Synchronous 32 #endif 30 33 CancelLoad() 31 34 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.messages.in
r269906 r269907 24 24 */ 25 25 26 # pragma once26 #if ENABLE(GPU_PROCESS) && ENABLE(MEDIA_SOURCE) 27 27 28 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 29 30 #include <WebCore/ContentType.h> 31 #include <wtf/text/WTFString.h> 32 33 namespace WebKit { 34 35 struct RemoteCDMInstanceConfiguration { 36 String keySystem; 37 38 template<class Encoder> 39 void encode(Encoder& encoder) const 40 { 41 encoder << keySystem; 42 } 43 44 template <class Decoder> 45 static Optional<RemoteCDMInstanceConfiguration> decode(Decoder& decoder) 46 { 47 Optional<String> keySystem; 48 decoder >> keySystem; 49 if (!keySystem) 50 return WTF::nullopt; 51 52 return {{ 53 WTFMove(*keySystem), 54 }}; 55 } 56 }; 57 58 } // namespace WebKit 28 messages -> RemoteMediaSourceProxy NotRefCounted { 29 AddSourceBuffer(WebCore::ContentType contentType) -> (enum:uint8_t WebCore::MediaSourcePrivate::AddStatus status, Optional<WebKit::RemoteSourceBufferIdentifier> remoteSourceBufferIdentifier) Synchronous 30 } 59 31 60 32 #endif -
trunk/Source/WebKit/GPUProcess/media/RemoteSourceBufferIdentifier.h
r269906 r269907 26 26 #pragma once 27 27 28 #if ENABLE(GPU_PROCESS) && ENABLE( ENCRYPTED_MEDIA)28 #if ENABLE(GPU_PROCESS) && ENABLE(MEDIA_SOURCE) 29 29 30 #include <WebCore/ContentType.h> 31 #include <wtf/text/WTFString.h> 30 #include <wtf/ObjectIdentifier.h> 32 31 33 32 namespace WebKit { 34 33 35 struct RemoteCDMInstanceConfiguration { 36 String keySystem; 37 38 template<class Encoder> 39 void encode(Encoder& encoder) const 40 { 41 encoder << keySystem; 42 } 43 44 template <class Decoder> 45 static Optional<RemoteCDMInstanceConfiguration> decode(Decoder& decoder) 46 { 47 Optional<String> keySystem; 48 decoder >> keySystem; 49 if (!keySystem) 50 return WTF::nullopt; 51 52 return {{ 53 WTFMove(*keySystem), 54 }}; 55 } 56 }; 34 enum RemoteSourceBufferIdentifierType { }; 35 using RemoteSourceBufferIdentifier = ObjectIdentifier<RemoteSourceBufferIdentifierType>; 57 36 58 37 } // namespace WebKit -
trunk/Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.messages.in
r269906 r269907 24 24 */ 25 25 26 # pragma once26 #if ENABLE(GPU_PROCESS) && ENABLE(MEDIA_SOURCE) 27 27 28 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 29 30 #include <WebCore/ContentType.h> 31 #include <wtf/text/WTFString.h> 32 33 namespace WebKit { 34 35 struct RemoteCDMInstanceConfiguration { 36 String keySystem; 37 38 template<class Encoder> 39 void encode(Encoder& encoder) const 40 { 41 encoder << keySystem; 42 } 43 44 template <class Decoder> 45 static Optional<RemoteCDMInstanceConfiguration> decode(Decoder& decoder) 46 { 47 Optional<String> keySystem; 48 decoder >> keySystem; 49 if (!keySystem) 50 return WTF::nullopt; 51 52 return {{ 53 WTFMove(*keySystem), 54 }}; 55 } 56 }; 57 58 } // namespace WebKit 28 messages -> RemoteSourceBufferProxy NotRefCounted { 29 Append(IPC::DataReference data) 30 } 59 31 60 32 #endif -
trunk/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp
r267156 r269907 31 31 #include "Decoder.h" 32 32 #include "GPUConnectionToWebProcess.h" 33 #include "GPUProcess.h" 33 34 #include "RemoteSampleBufferDisplayLayer.h" 34 35 #include "RemoteSampleBufferDisplayLayerManagerMessages.h" -
trunk/Source/WebKit/Scripts/webkit/messages.py
r269785 r269907 260 260 'WebKit::RemoteLegacyCDMSessionIdentifier', 261 261 'WebKit::RemoteMediaResourceIdentifier', 262 'WebKit::RemoteMediaSourceIdentifier', 263 'WebKit::RemoteSourceBufferIdentifier', 262 264 'WebKit::RenderingBackendIdentifier', 263 265 'WebKit::RTCDecoderIdentifier', -
trunk/Source/WebKit/Sources.txt
r269810 r269907 43 43 GPUProcess/media/RemoteMediaResourceLoader.cpp 44 44 GPUProcess/media/RemoteMediaResourceManager.cpp 45 GPUProcess/media/RemoteMediaSourceProxy.cpp 46 GPUProcess/media/RemoteSourceBufferProxy.cpp 45 47 GPUProcess/media/RemoteTextTrackProxy.cpp 46 48 GPUProcess/media/RemoteVideoTrackProxy.cpp … … 571 573 WebProcess/GPU/media/AudioTrackPrivateRemote.cpp 572 574 WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp 575 WebProcess/GPU/media/MediaSourcePrivateRemote.cpp 573 576 WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp 574 577 WebProcess/GPU/media/RemoteAudioSession.cpp … … 583 586 WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp @no-unify 584 587 WebProcess/GPU/media/RemoteMediaResourceProxy.cpp 588 WebProcess/GPU/media/SourceBufferPrivateRemote.cpp 585 589 WebProcess/GPU/media/TextTrackPrivateRemote.cpp 586 590 WebProcess/GPU/media/VideoTrackPrivateRemote.cpp -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r269810 r269907 422 422 1DB01943211CF002009FB3E8 /* WKShareSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DE0D095211CC21300439B5F /* WKShareSheet.h */; }; 423 423 1DB01944211CF005009FB3E8 /* WKShareSheet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1DBBB061211CC3CB00502ECC /* WKShareSheet.mm */; }; 424 1DD2A6632561246F00FF7B6F /* RemoteMediaSourceProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1DD2A662256122F100FF7B6F /* RemoteMediaSourceProxyMessageReceiver.cpp */; }; 425 1DD2A66E2562021E00FF7B6F /* RemoteSourceBufferProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1DD2A66B2562021E00FF7B6F /* RemoteSourceBufferProxyMessageReceiver.cpp */; }; 426 1DD2A674256232A100FF7B6F /* SourceBufferPrivateRemoteMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1DD2A6722562324F00FF7B6F /* SourceBufferPrivateRemoteMessageReceiver.cpp */; }; 427 1DD2A68525633C6700FF7B6F /* RemoteMediaSourceProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD2A660256122F100FF7B6F /* RemoteMediaSourceProxyMessages.h */; }; 428 1DD2A68625633C7200FF7B6F /* RemoteSourceBufferProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD2A6692562021E00FF7B6F /* RemoteSourceBufferProxyMessages.h */; }; 429 1DD2A68725633C8700FF7B6F /* RemoteSourceBufferProxyMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD2A66A2562021E00FF7B6F /* RemoteSourceBufferProxyMessagesReplies.h */; }; 430 1DD2A68825633C9500FF7B6F /* RemoteMediaSourceProxyMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD2A661256122F100FF7B6F /* RemoteMediaSourceProxyMessagesReplies.h */; }; 424 431 1F335BC0185B84F0001A201A /* WKWebProcessPlugInLoadDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F335BBF185B84D8001A201A /* WKWebProcessPlugInLoadDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 425 432 1F604BAA1889FBB800EE0395 /* _WKRenderingProgressEventsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F604BA71889FA7400EE0395 /* _WKRenderingProgressEventsInternal.h */; }; … … 2815 2822 1DA4089E23A827780058C950 /* RemoteMediaResourceManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaResourceManager.cpp; sourceTree = "<group>"; }; 2816 2823 1DBBB061211CC3CB00502ECC /* WKShareSheet.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKShareSheet.mm; sourceTree = "<group>"; }; 2824 1DD2A636255DE67500FF7B6F /* MediaSourcePrivateRemote.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MediaSourcePrivateRemote.cpp; path = /Volumes/Data/webkit/OpenSource/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp; sourceTree = "<absolute>"; }; 2825 1DD2A637255DE67500FF7B6F /* MediaSourcePrivateRemote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaSourcePrivateRemote.h; sourceTree = "<group>"; }; 2826 1DD2A639255DE6D100FF7B6F /* SourceBufferPrivateRemote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceBufferPrivateRemote.h; sourceTree = "<group>"; }; 2827 1DD2A63A255DE6D100FF7B6F /* SourceBufferPrivateRemote.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SourceBufferPrivateRemote.cpp; sourceTree = "<group>"; }; 2828 1DD2A63E255E3F1F00FF7B6F /* RemoteMediaSourceProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaSourceProxy.h; sourceTree = "<group>"; }; 2829 1DD2A63F255E3F1F00FF7B6F /* RemoteMediaSourceProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaSourceProxy.cpp; sourceTree = "<group>"; }; 2830 1DD2A642255E3F3D00FF7B6F /* RemoteSourceBufferProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteSourceBufferProxy.h; sourceTree = "<group>"; }; 2831 1DD2A643255E3F3D00FF7B6F /* RemoteSourceBufferProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteSourceBufferProxy.cpp; sourceTree = "<group>"; }; 2832 1DD2A646255F32B100FF7B6F /* RemoteMediaSourceIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaSourceIdentifier.h; sourceTree = "<group>"; }; 2833 1DD2A64A2560F54C00FF7B6F /* RemoteMediaSourceProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = RemoteMediaSourceProxy.messages.in; sourceTree = "<group>"; }; 2834 1DD2A660256122F100FF7B6F /* RemoteMediaSourceProxyMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteMediaSourceProxyMessages.h; path = DerivedSources/WebKit2/RemoteMediaSourceProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2835 1DD2A661256122F100FF7B6F /* RemoteMediaSourceProxyMessagesReplies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteMediaSourceProxyMessagesReplies.h; path = DerivedSources/WebKit2/RemoteMediaSourceProxyMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2836 1DD2A662256122F100FF7B6F /* RemoteMediaSourceProxyMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteMediaSourceProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/RemoteMediaSourceProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; 2837 1DD2A6662561ED0400FF7B6F /* RemoteSourceBufferProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = RemoteSourceBufferProxy.messages.in; sourceTree = "<group>"; }; 2838 1DD2A6682561F68400FF7B6F /* RemoteSourceBufferIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteSourceBufferIdentifier.h; sourceTree = "<group>"; }; 2839 1DD2A6692562021E00FF7B6F /* RemoteSourceBufferProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteSourceBufferProxyMessages.h; path = DerivedSources/WebKit2/RemoteSourceBufferProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2840 1DD2A66A2562021E00FF7B6F /* RemoteSourceBufferProxyMessagesReplies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteSourceBufferProxyMessagesReplies.h; path = DerivedSources/WebKit2/RemoteSourceBufferProxyMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2841 1DD2A66B2562021E00FF7B6F /* RemoteSourceBufferProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteSourceBufferProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/RemoteSourceBufferProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; 2842 1DD2A66F25622F1100FF7B6F /* SourceBufferPrivateRemote.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = SourceBufferPrivateRemote.messages.in; sourceTree = "<group>"; }; 2843 1DD2A6712562324F00FF7B6F /* SourceBufferPrivateRemoteMessagesReplies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SourceBufferPrivateRemoteMessagesReplies.h; path = DerivedSources/WebKit2/SourceBufferPrivateRemoteMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2844 1DD2A6722562324F00FF7B6F /* SourceBufferPrivateRemoteMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SourceBufferPrivateRemoteMessageReceiver.cpp; path = DerivedSources/WebKit2/SourceBufferPrivateRemoteMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; 2845 1DD2A6732562324F00FF7B6F /* SourceBufferPrivateRemoteMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SourceBufferPrivateRemoteMessages.h; path = DerivedSources/WebKit2/SourceBufferPrivateRemoteMessages.h; sourceTree = BUILT_PRODUCTS_DIR; }; 2817 2846 1DE076D92460CCBD00B211E8 /* WebPreferencesDefaultValuesCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPreferencesDefaultValuesCocoa.mm; sourceTree = "<group>"; }; 2818 2847 1DE0D095211CC21300439B5F /* WKShareSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKShareSheet.h; sourceTree = "<group>"; }; … … 5634 5663 07923132239B3B0C009598E2 /* MediaPlayerPrivateRemote.h */, 5635 5664 07B1D04B23D38FCE00399A6E /* MediaPlayerPrivateRemote.messages.in */, 5665 1DD2A636255DE67500FF7B6F /* MediaSourcePrivateRemote.cpp */, 5666 1DD2A637255DE67500FF7B6F /* MediaSourcePrivateRemote.h */, 5636 5667 9B5BEC29240101580070C6EF /* RemoteAudioDestinationProxy.cpp */, 5637 5668 9B5BEC28240101580070C6EF /* RemoteAudioDestinationProxy.h */, … … 5678 5709 1D32F89D23A84C5B00B1EA6A /* RemoteMediaResourceProxy.cpp */, 5679 5710 1D32F89B23A84BA600B1EA6A /* RemoteMediaResourceProxy.h */, 5711 1DD2A646255F32B100FF7B6F /* RemoteMediaSourceIdentifier.h */, 5712 1DD2A63A255DE6D100FF7B6F /* SourceBufferPrivateRemote.cpp */, 5713 1DD2A639255DE6D100FF7B6F /* SourceBufferPrivateRemote.h */, 5714 1DD2A66F25622F1100FF7B6F /* SourceBufferPrivateRemote.messages.in */, 5680 5715 07E19F0823D533B90094FFB4 /* TextTrackPrivateRemote.cpp */, 5681 5716 07E19F0923D533BA0094FFB4 /* TextTrackPrivateRemote.h */, … … 5742 5777 1DA4089423A80A3E0058C950 /* RemoteMediaResourceManager.h */, 5743 5778 1D32F8A623A8601900B1EA6A /* RemoteMediaResourceManager.messages.in */, 5779 1DD2A63F255E3F1F00FF7B6F /* RemoteMediaSourceProxy.cpp */, 5780 1DD2A63E255E3F1F00FF7B6F /* RemoteMediaSourceProxy.h */, 5781 1DD2A64A2560F54C00FF7B6F /* RemoteMediaSourceProxy.messages.in */, 5782 1DD2A6682561F68400FF7B6F /* RemoteSourceBufferIdentifier.h */, 5783 1DD2A643255E3F3D00FF7B6F /* RemoteSourceBufferProxy.cpp */, 5784 1DD2A642255E3F3D00FF7B6F /* RemoteSourceBufferProxy.h */, 5785 1DD2A6662561ED0400FF7B6F /* RemoteSourceBufferProxy.messages.in */, 5744 5786 07E19F0723D4DC880094FFB4 /* RemoteTextTrackProxy.cpp */, 5745 5787 07E19F0623D4DC880094FFB4 /* RemoteTextTrackProxy.h */, … … 10347 10389 1D4D736C23A9DF6000717A25 /* RemoteMediaResourceManagerMessages.h */, 10348 10390 1D4D737523A9EB6800717A25 /* RemoteMediaResourceManagerMessagesReplies.h */, 10391 1DD2A662256122F100FF7B6F /* RemoteMediaSourceProxyMessageReceiver.cpp */, 10392 1DD2A660256122F100FF7B6F /* RemoteMediaSourceProxyMessages.h */, 10393 1DD2A661256122F100FF7B6F /* RemoteMediaSourceProxyMessagesReplies.h */, 10349 10394 1AC1338318590C4600F3EC05 /* RemoteObjectRegistryMessageReceiver.cpp */, 10350 10395 1AC1338418590C4600F3EC05 /* RemoteObjectRegistryMessages.h */, 10351 10396 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */, 10352 10397 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */, 10398 1DD2A66B2562021E00FF7B6F /* RemoteSourceBufferProxyMessageReceiver.cpp */, 10399 1DD2A6692562021E00FF7B6F /* RemoteSourceBufferProxyMessages.h */, 10400 1DD2A66A2562021E00FF7B6F /* RemoteSourceBufferProxyMessagesReplies.h */, 10353 10401 A55BA8211BA25BB8007CD33D /* RemoteWebInspectorProxyMessageReceiver.cpp */, 10354 10402 A55BA8221BA25BB8007CD33D /* RemoteWebInspectorProxyMessages.h */, … … 10358 10406 2DE6943B18BD2A68005C15E5 /* SmartMagnificationControllerMessageReceiver.cpp */, 10359 10407 2DE6943C18BD2A68005C15E5 /* SmartMagnificationControllerMessages.h */, 10408 1DD2A6722562324F00FF7B6F /* SourceBufferPrivateRemoteMessageReceiver.cpp */, 10409 1DD2A6732562324F00FF7B6F /* SourceBufferPrivateRemoteMessages.h */, 10410 1DD2A6712562324F00FF7B6F /* SourceBufferPrivateRemoteMessagesReplies.h */, 10360 10411 93D6B781254CCABC0058DD3A /* SpeechRecognitionServerMessageReceiver.cpp */, 10361 10412 93D6B780254CCABC0058DD3A /* SpeechRecognitionServerMessages.h */, … … 11346 11397 1D4D737123A9E56200717A25 /* RemoteMediaResourceManagerMessages.h in Headers */, 11347 11398 1D4D737623A9ED1800717A25 /* RemoteMediaResourceManagerMessagesReplies.h in Headers */, 11399 1DD2A68525633C6700FF7B6F /* RemoteMediaSourceProxyMessages.h in Headers */, 11400 1DD2A68825633C9500FF7B6F /* RemoteMediaSourceProxyMessagesReplies.h in Headers */, 11348 11401 E1B78471163F24690007B692 /* RemoteNetworkingContext.h in Headers */, 11349 11402 1A5704FC1BE1751100874AF1 /* RemoteObjectInvocation.h in Headers */, … … 11355 11408 0F5947A4187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h in Headers */, 11356 11409 0F59479D187B3B6000437857 /* RemoteScrollingTree.h in Headers */, 11410 1DD2A68625633C7200FF7B6F /* RemoteSourceBufferProxyMessages.h in Headers */, 11411 1DD2A68725633C8700FF7B6F /* RemoteSourceBufferProxyMessagesReplies.h in Headers */, 11357 11412 A55BA81F1BA25B27007CD33D /* RemoteWebInspectorProxy.h in Headers */, 11358 11413 A55BA8251BA25CFB007CD33D /* RemoteWebInspectorProxyMessages.h in Headers */, … … 13141 13196 071BC58F23CE1EAA00680D7C /* RemoteMediaPlayerProxyMessageReceiver.cpp in Sources */, 13142 13197 1D4D737023A9E54700717A25 /* RemoteMediaResourceManagerMessageReceiver.cpp in Sources */, 13198 1DD2A6632561246F00FF7B6F /* RemoteMediaSourceProxyMessageReceiver.cpp in Sources */, 13143 13199 1AC1338518590C4600F3EC05 /* RemoteObjectRegistryMessageReceiver.cpp in Sources */, 13144 13200 0F5947A7187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp in Sources */, 13201 1DD2A66E2562021E00FF7B6F /* RemoteSourceBufferProxyMessageReceiver.cpp in Sources */, 13145 13202 A55BA8261BA25CFD007CD33D /* RemoteWebInspectorProxyMessageReceiver.cpp in Sources */, 13146 13203 1BBBE4A019B66C53006B7D81 /* RemoteWebInspectorUIMessageReceiver.cpp in Sources */, … … 13153 13210 575B1BB923CE9C0B0020639A /* SimulatedInputDispatcher.cpp in Sources */, 13154 13211 2DE6943D18BD2A68005C15E5 /* SmartMagnificationControllerMessageReceiver.cpp in Sources */, 13212 1DD2A674256232A100FF7B6F /* SourceBufferPrivateRemoteMessageReceiver.cpp in Sources */, 13155 13213 93D6B782254CCCF40058DD3A /* SpeechRecognitionServerMessageReceiver.cpp in Sources */, 13156 13214 1A334DED16DE8F88006A8E38 /* StorageAreaMapMessageReceiver.cpp in Sources */, -
trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
r269850 r269907 72 72 #endif 73 73 74 #if ENABLE(MEDIA_SOURCE) 75 #include "RemoteMediaSourceIdentifier.h" 76 #endif 77 74 78 namespace WebCore { 75 79 #if !RELEASE_LOG_DISABLED … … 149 153 } 150 154 151 void MediaPlayerPrivateRemote:: MediaPlayerPrivateRemote::load(const URL& url, const ContentType& contentType, const String& keySystem)155 void MediaPlayerPrivateRemote::load(const URL& url, const ContentType& contentType, const String& keySystem) 152 156 { 153 157 Optional<SandboxExtension::Handle> sandboxExtensionHandle; … … 625 629 626 630 #if ENABLE(MEDIA_SOURCE) 627 void MediaPlayerPrivateRemote::load(const String&, MediaSourcePrivateClient*) 628 { 631 void MediaPlayerPrivateRemote::load(const URL& url, const ContentType& contentType, MediaSourcePrivateClient* client) 632 { 633 if (m_remoteEngineIdentifier == MediaPlayerEnums::MediaEngineIdentifier::AVFoundationMSE) { 634 auto identifier = RemoteMediaSourceIdentifier::generate(); 635 connection().send(Messages::RemoteMediaPlayerProxy::LoadMediaSource(url, contentType, identifier), m_id); 636 m_mediaSourcePrivate = MediaSourcePrivateRemote::create(m_manager.gpuProcessConnection(), identifier, m_manager.typeCache(m_remoteEngineIdentifier), *this, client); 637 638 return; 639 } 640 629 641 callOnMainThread([weakThis = makeWeakPtr(*this), this] { 630 642 if (!weakThis) -
trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h
r269850 r269907 44 44 #include <wtf/WeakPtr.h> 45 45 46 #if ENABLE(MEDIA_SOURCE) 47 #include "MediaSourcePrivateRemote.h" 48 #endif 49 46 50 namespace WTF { 47 51 class MachSendRight; … … 88 92 IPC::Connection& connection() const { return m_manager.gpuProcessConnection().connection(); } 89 93 WebCore::MediaPlayer* player() const { return m_player; } 94 95 WebCore::MediaPlayer::ReadyState readyState() const final { return m_cachedState.readyState; } 90 96 91 97 void networkStateChanged(RemoteMediaPlayerState&&); … … 155 161 #endif 156 162 163 #if !RELEASE_LOG_DISABLED 164 const void* mediaPlayerLogIdentifier() { return logIdentifier(); } 165 const Logger& mediaPlayerLogger() { return logger(); } 166 #endif 167 157 168 private: 158 169 … … 171 182 172 183 #if ENABLE(MEDIA_SOURCE) 173 void load(const String&, WebCore::MediaSourcePrivateClient*) final;184 void load(const URL&, const WebCore::ContentType&, WebCore::MediaSourcePrivateClient*) final; 174 185 #endif 175 186 #if ENABLE(MEDIA_STREAM) … … 251 262 252 263 WebCore::MediaPlayer::NetworkState networkState() const final { return m_cachedState.networkState; } 253 WebCore::MediaPlayer::ReadyState readyState() const final { return m_cachedState.readyState; }254 264 255 265 MediaTime maxMediaTimeSeekable() const final; … … 383 393 #if ENABLE(WEB_AUDIO) && PLATFORM(COCOA) 384 394 RefPtr<RemoteAudioSourceProvider> m_audioSourceProvider; 395 #endif 396 397 #if ENABLE(MEDIA_SOURCE) 398 RefPtr<MediaSourcePrivateRemote> m_mediaSourcePrivate; 385 399 #endif 386 400 -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteCDMConfiguration.h
r257867 r269907 28 28 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 29 29 30 #include <WebCore/ContentType.h>31 30 #include <wtf/text/WTFString.h> 32 31 -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteCDMInstanceConfiguration.h
r257867 r269907 28 28 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 29 29 30 #include <WebCore/ContentType.h>31 30 #include <wtf/text/WTFString.h> 32 31 -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.h
r269750 r269907 67 67 WebCore::MediaPlayerIdentifier findRemotePlayerId(const WebCore::MediaPlayerPrivateInterface*); 68 68 69 RemoteMediaPlayerMIMETypeCache& typeCache(WebCore::MediaPlayerEnums::MediaEngineIdentifier); 70 69 71 private: 70 72 std::unique_ptr<WebCore::MediaPlayerPrivateInterface> createRemoteMediaPlayer(WebCore::MediaPlayer*, WebCore::MediaPlayerEnums::MediaEngineIdentifier); … … 84 86 void clearMediaCacheForOrigins(WebCore::MediaPlayerEnums::MediaEngineIdentifier, const String&, const HashSet<RefPtr<WebCore::SecurityOrigin>>&); 85 87 86 RemoteMediaPlayerMIMETypeCache& typeCache(WebCore::MediaPlayerEnums::MediaEngineIdentifier);87 88 88 HashMap<WebCore::MediaPlayerIdentifier, WeakPtr<MediaPlayerPrivateRemote>> m_players; 89 89 WebProcess& m_process; -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaSourceIdentifier.h
r269906 r269907 26 26 #pragma once 27 27 28 #if ENABLE(GPU_PROCESS) && ENABLE( ENCRYPTED_MEDIA)28 #if ENABLE(GPU_PROCESS) && ENABLE(MEDIA_SOURCE) 29 29 30 #include <WebCore/ContentType.h> 31 #include <wtf/text/WTFString.h> 30 #include <wtf/ObjectIdentifier.h> 32 31 33 32 namespace WebKit { 34 33 35 struct RemoteCDMInstanceConfiguration { 36 String keySystem; 37 38 template<class Encoder> 39 void encode(Encoder& encoder) const 40 { 41 encoder << keySystem; 42 } 43 44 template <class Decoder> 45 static Optional<RemoteCDMInstanceConfiguration> decode(Decoder& decoder) 46 { 47 Optional<String> keySystem; 48 decoder >> keySystem; 49 if (!keySystem) 50 return WTF::nullopt; 51 52 return {{ 53 WTFMove(*keySystem), 54 }}; 55 } 56 }; 34 enum RemoteMediaSourceIdentifierType { }; 35 using RemoteMediaSourceIdentifier = ObjectIdentifier<RemoteMediaSourceIdentifierType>; 57 36 58 37 } // namespace WebKit -
trunk/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in
r269906 r269907 24 24 */ 25 25 26 # pragma once26 #if ENABLE(GPU_PROCESS) && ENABLE(MEDIA_SOURCE) 27 27 28 #if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA) 29 30 #include <WebCore/ContentType.h> 31 #include <wtf/text/WTFString.h> 32 33 namespace WebKit { 34 35 struct RemoteCDMInstanceConfiguration { 36 String keySystem; 37 38 template<class Encoder> 39 void encode(Encoder& encoder) const 40 { 41 encoder << keySystem; 42 } 43 44 template <class Decoder> 45 static Optional<RemoteCDMInstanceConfiguration> decode(Decoder& decoder) 46 { 47 Optional<String> keySystem; 48 decoder >> keySystem; 49 if (!keySystem) 50 return WTF::nullopt; 51 52 return {{ 53 WTFMove(*keySystem), 54 }}; 55 } 56 }; 57 58 } // namespace WebKit 28 messages -> SourceBufferPrivateRemote NotRefCounted { 29 SourceBufferPrivateAppendComplete(WebCore::SourceBufferPrivateClient::AppendResult appendResult) 30 } 59 31 60 32 #endif
Note: See TracChangeset
for help on using the changeset viewer.