Changeset 254499 in webkit
- Timestamp:
- Jan 14, 2020 12:16:00 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 20 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r254497 r254499 1 2020-01-14 Eric Carlson <eric.carlson@apple.com> 2 3 Expose video tracks for media files in the GPUProcess 4 https://bugs.webkit.org/show_bug.cgi?id=206209 5 <rdar://problem/58553026> 6 7 Reviewed by Jer Noble. 8 9 * gpu-process/TestExpectations: 10 1 11 2020-01-13 Simon Fraser <simon.fraser@apple.com> 2 12 -
trunk/LayoutTests/gpu-process/TestExpectations
r254454 r254499 221 221 media/track/audio-track.html [ Pass ] 222 222 media/audio-track-add-remove.html [ Pass ] 223 media/track/video-track-add-remove.html [ Pass ] 224 media/track/video-track-alternate-groups.html [ Pass ] 225 media/track/video-track-addition-and-frame-removal.html [ Pass ] 226 media/track/video-track.html [ Pass ] 223 227 224 228 accessibility/media-element.html [ Skip ] -
trunk/Source/WebCore/ChangeLog
r254498 r254499 1 2020-01-14 Eric Carlson <eric.carlson@apple.com> 2 3 Expose video tracks for media files in the GPUProcess 4 https://bugs.webkit.org/show_bug.cgi?id=206209 5 <rdar://problem/58553026> 6 7 Reviewed by Jer Noble. 8 9 No new tests, un-skipped existing tests that pass because of this change. 10 11 * platform/graphics/VideoTrackPrivate.h: 12 1 13 2020-01-13 Alexey Shvayka <shvaikalesh@gmail.com> 2 14 -
trunk/Source/WebCore/platform/graphics/VideoTrackPrivate.h
r222091 r254499 69 69 } // namespace WebCore 70 70 71 namespace WTF { 72 73 template<> struct EnumTraits<WebCore::VideoTrackPrivate::Kind> { 74 using values = EnumValues< 75 WebCore::VideoTrackPrivate::Kind, 76 WebCore::VideoTrackPrivate::Kind::Alternative, 77 WebCore::VideoTrackPrivate::Kind::Captions, 78 WebCore::VideoTrackPrivate::Kind::Main, 79 WebCore::VideoTrackPrivate::Kind::Sign, 80 WebCore::VideoTrackPrivate::Kind::Subtitles, 81 WebCore::VideoTrackPrivate::Kind::Commentary, 82 WebCore::VideoTrackPrivate::Kind::None 83 >; 84 }; 85 86 } // namespace WTF 87 71 88 #endif -
trunk/Source/WebKit/ChangeLog
r254495 r254499 1 2020-01-14 Eric Carlson <eric.carlson@apple.com> 2 3 Expose video tracks for media files in the GPUProcess 4 https://bugs.webkit.org/show_bug.cgi?id=206209 5 <rdar://problem/58553026> 6 7 Reviewed by Jer Noble. 8 9 * GPUProcess/media/RemoteAudioTrackProxy.cpp: 10 (WebKit::RemoteAudioTrackProxy::configuration): 11 * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: 12 (WebKit::RemoteMediaPlayerManagerProxy::videoTrackSetSelected): 13 * GPUProcess/media/RemoteMediaPlayerManagerProxy.h: 14 * GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: 15 * GPUProcess/media/RemoteMediaPlayerProxy.cpp: 16 (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack): 17 (WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack): 18 (WebKit::RemoteMediaPlayerProxy::videoTrackSetSelected): 19 * GPUProcess/media/RemoteMediaPlayerProxy.h: 20 * GPUProcess/media/RemoteVideoTrackProxy.cpp: Copied from Source/WebKit/GPUProcess/media/RemoteAudioTrackProxy.cpp. 21 (WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy): 22 (WebKit::RemoteVideoTrackProxy::configuration): 23 (WebKit::RemoteVideoTrackProxy::configurationChanged): 24 (WebKit::RemoteVideoTrackProxy::willRemove): 25 (WebKit::RemoteVideoTrackProxy::selectedChanged): 26 (WebKit::RemoteVideoTrackProxy::idChanged): 27 (WebKit::RemoteVideoTrackProxy::labelChanged): 28 (WebKit::RemoteVideoTrackProxy::languageChanged): 29 * GPUProcess/media/RemoteVideoTrackProxy.h: Added. 30 * GPUProcess/media/TrackPrivateRemoteConfiguration.h: 31 (WebKit::TrackPrivateRemoteConfiguration::encode const): 32 (WebKit::TrackPrivateRemoteConfiguration::decode): 33 * NetworkProcess/cache/CacheStorageEngine.cpp: 34 (WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories): 35 * Sources.txt: 36 * WebKit.xcodeproj/project.pbxproj: 37 * WebProcess/GPU/media/AudioTrackPrivateRemote.cpp: 38 (WebKit::AudioTrackPrivateRemote::updateConfiguration): 39 * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: 40 (WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack): 41 (WebKit::MediaPlayerPrivateRemote::removeRemoteVideoTrack): 42 (WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged): 43 * WebProcess/GPU/media/MediaPlayerPrivateRemote.h: 44 * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: 45 (WebKit::RemoteMediaPlayerManager::addRemoteVideoTrack): 46 (WebKit::RemoteMediaPlayerManager::removeRemoteVideoTrack): 47 (WebKit::RemoteMediaPlayerManager::remoteVideoTrackConfigurationChanged): 48 * WebProcess/GPU/media/RemoteMediaPlayerManager.h: 49 * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: 50 * WebProcess/GPU/media/RemoteVideoTrackProxy.cpp: Copied from Source/WebKit/GPUProcess/media/RemoteAudioTrackProxy.cpp. 51 (WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy): 52 (WebKit::RemoteVideoTrackProxy::configuration): 53 (WebKit::RemoteVideoTrackProxy::configurationChanged): 54 (WebKit::RemoteVideoTrackProxy::willRemove): 55 (WebKit::RemoteVideoTrackProxy::selectedChanged): 56 (WebKit::RemoteVideoTrackProxy::idChanged): 57 (WebKit::RemoteVideoTrackProxy::labelChanged): 58 (WebKit::RemoteVideoTrackProxy::languageChanged): 59 * WebProcess/GPU/media/RemoteVideoTrackProxy.h: Added. 60 * WebProcess/GPU/media/VideoTrackPrivateRemote.cpp: Copied from Source/WebKit/WebProcess/GPU/media/AudioTrackPrivateRemote.cpp. 61 (WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote): 62 (WebKit::VideoTrackPrivateRemote::setSelected): 63 (WebKit::VideoTrackPrivateRemote::updateConfiguration): 64 * WebProcess/GPU/media/VideoTrackPrivateRemote.h: Added. 65 (WebKit::VideoTrackPrivateRemote::create): 66 1 67 2020-01-13 Don Olmstead <don.olmstead@sony.com> 2 68 -
trunk/Source/WebKit/GPUProcess/media/RemoteAudioTrackProxy.cpp
r254454 r254499 56 56 configuration->startTimeVariance = m_trackPrivate->startTimeVariance(); 57 57 configuration->enabled = m_trackPrivate->enabled(); 58 configuration-> kind = m_trackPrivate->kind();58 configuration->audioKind = m_trackPrivate->kind(); 59 59 60 60 return configuration.get(); -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp
r254454 r254499 336 336 } 337 337 338 void RemoteMediaPlayerManagerProxy::videoTrackSetSelected(MediaPlayerPrivateRemoteIdentifier playerID, TrackPrivateRemoteIdentifier trackID, bool selected) 339 { 340 if (auto player = m_proxies.get(playerID)) 341 player->videoTrackSetSelected(trackID, selected); 342 } 343 338 344 #if !RELEASE_LOG_DISABLED 339 345 const Logger& RemoteMediaPlayerManagerProxy::logger() const -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h
r254454 r254499 114 114 115 115 void audioTrackSetEnabled(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, bool); 116 void videoTrackSetSelected(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, bool); 116 117 117 118 HashMap<MediaPlayerPrivateRemoteIdentifier, std::unique_ptr<RemoteMediaPlayerProxy>> m_proxies; -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in
r254454 r254499 67 67 68 68 AudioTrackSetEnabled(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID, bool enabled) 69 VideoTrackSetSelected(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID, bool enabled) 69 70 } 70 71 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
r254454 r254499 30 30 31 31 #include "GPUConnectionToWebProcess.h" 32 #include "RemoteAudioTrackProxy.h" 32 33 #include "RemoteMediaPlayerManagerMessages.h" 33 34 #include "RemoteMediaPlayerManagerProxy.h" … … 38 39 #include "RemoteMediaResourceLoader.h" 39 40 #include "RemoteMediaResourceManager.h" 41 #include "RemoteVideoTrackProxy.h" 40 42 #include "WebCoreArgumentCoders.h" 41 43 #include <WebCore/MediaPlayer.h> … … 388 390 } 389 391 392 void RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack(WebCore::VideoTrackPrivate& track) 393 { 394 m_videoTracks.set(&track, RemoteVideoTrackProxy::create(*this, TrackPrivateRemoteIdentifier::generate(), m_webProcessConnection.copyRef(), track)); 395 } 396 397 void RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack(WebCore::VideoTrackPrivate& track) 398 { 399 ASSERT(m_videoTracks.contains(&track)); 400 m_videoTracks.remove(&track); 401 } 402 403 void RemoteMediaPlayerProxy::videoTrackSetSelected(TrackPrivateRemoteIdentifier trackID, bool selected) 404 { 405 for (auto& track : m_videoTracks.values()) { 406 if (track->identifier() == trackID) { 407 track->setSelected(selected); 408 return; 409 } 410 } 411 412 ASSERT_NOT_REACHED(); 413 } 414 390 415 // FIXME: Unimplemented 391 416 void RemoteMediaPlayerProxy::mediaPlayerResourceNotSupported() … … 521 546 } 522 547 523 void RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack(VideoTrackPrivate&)524 {525 notImplemented();526 }527 528 548 void RemoteMediaPlayerProxy::mediaPlayerDidRemoveTextTrack(InbandTextTrackPrivate&) 529 {530 notImplemented();531 }532 533 void RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack(VideoTrackPrivate&)534 549 { 535 550 notImplemented(); -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
r254454 r254499 50 50 namespace WebKit { 51 51 52 class RemoteAudioTrackProxy; 52 53 class RemoteMediaPlayerManagerProxy; 54 class RemoteVideoTrackProxy; 53 55 54 56 class RemoteMediaPlayerProxy final … … 96 98 97 99 void audioTrackSetEnabled(TrackPrivateRemoteIdentifier, bool); 100 void videoTrackSetSelected(TrackPrivateRemoteIdentifier, bool); 98 101 99 102 Ref<WebCore::PlatformMediaResource> requestResource(WebCore::ResourceRequest&&, WebCore::PlatformMediaResourceLoader::LoadOptions); … … 117 120 void mediaPlayerDidAddAudioTrack(WebCore::AudioTrackPrivate&) final; 118 121 void mediaPlayerDidRemoveAudioTrack(WebCore::AudioTrackPrivate&) final; 122 void mediaPlayerDidAddVideoTrack(WebCore::VideoTrackPrivate&) final; 123 void mediaPlayerDidRemoveVideoTrack(WebCore::VideoTrackPrivate&) final; 119 124 120 125 // Not implemented … … 159 164 160 165 void mediaPlayerDidAddTextTrack(WebCore::InbandTextTrackPrivate&) final; 161 void mediaPlayerDidAddVideoTrack(WebCore::VideoTrackPrivate&) final;162 166 void mediaPlayerDidRemoveTextTrack(WebCore::InbandTextTrackPrivate&) final; 163 void mediaPlayerDidRemoveVideoTrack(WebCore::VideoTrackPrivate&) final;164 167 165 168 void textTrackRepresentationBoundsChanged(const WebCore::IntRect&) final; … … 196 199 197 200 HashMap<AudioTrackPrivate*, Ref<RemoteAudioTrackProxy>> m_audioTracks; 201 HashMap<VideoTrackPrivate*, Ref<RemoteVideoTrackProxy>> m_videoTracks; 198 202 MediaPlayerPrivateRemoteIdentifier m_id; 199 203 RefPtr<SandboxExtension> m_sandboxExtension; -
trunk/Source/WebKit/GPUProcess/media/RemoteVideoTrackProxy.cpp
r254498 r254499 26 26 27 27 #include "config.h" 28 #include "Remote AudioTrackProxy.h"28 #include "RemoteVideoTrackProxy.h" 29 29 30 30 #if ENABLE(GPU_PROCESS) … … 36 36 namespace WebKit { 37 37 38 Remote AudioTrackProxy::RemoteAudioTrackProxy(RemoteMediaPlayerProxy& player, TrackPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, AudioTrackPrivate& trackPrivate)38 RemoteVideoTrackProxy::RemoteVideoTrackProxy(RemoteMediaPlayerProxy& player, TrackPrivateRemoteIdentifier id, Ref<IPC::Connection>&& connection, VideoTrackPrivate& trackPrivate) 39 39 : m_player(player) 40 40 , m_identifier(id) … … 43 43 { 44 44 m_trackPrivate->setClient(this); 45 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::AddRemote AudioTrack(m_player.idendifier(), m_identifier, configuration()), 0);45 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::AddRemoteVideoTrack(m_player.idendifier(), m_identifier, configuration()), 0); 46 46 } 47 47 48 TrackPrivateRemoteConfiguration& Remote AudioTrackProxy::configuration()48 TrackPrivateRemoteConfiguration& RemoteVideoTrackProxy::configuration() 49 49 { 50 50 static NeverDestroyed<TrackPrivateRemoteConfiguration> configuration; … … 55 55 configuration->trackIndex = m_trackPrivate->trackIndex(); 56 56 configuration->startTimeVariance = m_trackPrivate->startTimeVariance(); 57 configuration-> enabled = m_trackPrivate->enabled();58 configuration-> kind = m_trackPrivate->kind();57 configuration->selected = m_trackPrivate->selected(); 58 configuration->videoKind = m_trackPrivate->kind(); 59 59 60 60 return configuration.get(); 61 61 } 62 62 63 void Remote AudioTrackProxy::configurationChanged()63 void RemoteVideoTrackProxy::configurationChanged() 64 64 { 65 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::Remote AudioTrackConfigurationChanged(m_player.idendifier(), m_identifier, configuration()), 0);65 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::RemoteVideoTrackConfigurationChanged(m_player.idendifier(), m_identifier, configuration()), 0); 66 66 } 67 67 68 void Remote AudioTrackProxy::willRemove()68 void RemoteVideoTrackProxy::willRemove() 69 69 { 70 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::RemoveRemote AudioTrack(m_player.idendifier(), m_identifier), 0);70 m_webProcessConnection->send(Messages::RemoteMediaPlayerManager::RemoveRemoteVideoTrack(m_player.idendifier(), m_identifier), 0); 71 71 } 72 72 73 void Remote AudioTrackProxy::enabledChanged(bool)73 void RemoteVideoTrackProxy::selectedChanged(bool) 74 74 { 75 75 configurationChanged(); 76 76 } 77 77 78 void Remote AudioTrackProxy::idChanged(const AtomString&)78 void RemoteVideoTrackProxy::idChanged(const AtomString&) 79 79 { 80 80 configurationChanged(); 81 81 } 82 82 83 void Remote AudioTrackProxy::labelChanged(const AtomString&)83 void RemoteVideoTrackProxy::labelChanged(const AtomString&) 84 84 { 85 85 configurationChanged(); 86 86 } 87 87 88 void Remote AudioTrackProxy::languageChanged(const AtomString&)88 void RemoteVideoTrackProxy::languageChanged(const AtomString&) 89 89 { 90 90 configurationChanged(); -
trunk/Source/WebKit/GPUProcess/media/TrackPrivateRemoteConfiguration.h
r254454 r254499 28 28 #if ENABLE(GPU_PROCESS) 29 29 30 #include <WebCore/AudioTrackPrivate.h> 31 #include <WebCore/VideoTrackPrivate.h> 30 32 #include <wtf/MediaTime.h> 31 33 … … 38 40 MediaTime startTimeVariance { MediaTime::zeroTime() }; 39 41 int trackIndex; 42 40 43 bool enabled; 41 WebCore::AudioTrackPrivate::Kind kind { WebCore::AudioTrackPrivate::Kind::None }; 44 WebCore::AudioTrackPrivate::Kind audioKind { WebCore::AudioTrackPrivate::Kind::None }; 45 46 bool selected; 47 WebCore::VideoTrackPrivate::Kind videoKind { WebCore::VideoTrackPrivate::Kind::None }; 42 48 43 49 template<class Encoder> … … 50 56 encoder << trackIndex; 51 57 encoder << enabled; 52 encoder.encodeEnum(kind); 58 encoder.encodeEnum(audioKind); 59 encoder << selected; 60 encoder.encodeEnum(videoKind); 53 61 } 54 62 … … 86 94 return WTF::nullopt; 87 95 88 Optional<WebCore::AudioTrackPrivate::Kind> kind; 89 decoder >> kind; 90 if (!kind) 96 Optional<WebCore::AudioTrackPrivate::Kind> audioKind; 97 decoder >> audioKind; 98 if (!audioKind) 99 return WTF::nullopt; 100 101 Optional<bool> selected; 102 decoder >> selected; 103 if (!selected) 104 return WTF::nullopt; 105 106 Optional<WebCore::VideoTrackPrivate::Kind> videoKind; 107 decoder >> videoKind; 108 if (!videoKind) 91 109 return WTF::nullopt; 92 110 … … 98 116 *trackIndex, 99 117 *enabled, 100 *kind, 118 *audioKind, 119 *selected, 120 *videoKind, 101 121 }}; 102 122 } -
trunk/Source/WebKit/Sources.txt
r254454 r254499 33 33 GPUProcess/media/RemoteMediaResourceLoader.cpp 34 34 GPUProcess/media/RemoteMediaResourceManager.cpp 35 GPUProcess/media/RemoteVideoTrackProxy.cpp 35 36 36 37 NetworkProcess/AdClickAttributionManager.cpp … … 517 518 WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp @no-unify 518 519 WebProcess/GPU/media/RemoteMediaResourceProxy.cpp 520 WebProcess/GPU/media/VideoTrackPrivateRemote.cpp 519 521 WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp 520 522 WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r254489 r254499 2058 2058 071BC57E23CA5DB100680D7C /* RemoteAudioTrackProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteAudioTrackProxy.cpp; sourceTree = "<group>"; }; 2059 2059 071BC57F23CA5DB100680D7C /* RemoteAudioTrackProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteAudioTrackProxy.h; sourceTree = "<group>"; }; 2060 071BC58223CC2BD300680D7C /* VideoTrackPrivateRemote.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoTrackPrivateRemote.h; sourceTree = "<group>"; }; 2061 071BC58323CC2BD500680D7C /* VideoTrackPrivateRemote.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = VideoTrackPrivateRemote.cpp; sourceTree = "<group>"; }; 2062 071BC58423CC2C0900680D7C /* RemoteVideoTrackProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteVideoTrackProxy.cpp; sourceTree = "<group>"; }; 2063 071BC58523CC2C0900680D7C /* RemoteVideoTrackProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteVideoTrackProxy.h; sourceTree = "<group>"; }; 2060 2064 0725EFAB239AE38400A538A9 /* RemoteMediaPlayerManagerProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = RemoteMediaPlayerManagerProxy.messages.in; sourceTree = "<group>"; }; 2061 2065 0725EFAC239AE38500A538A9 /* RemoteMediaPlayerManagerProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaPlayerManagerProxy.h; sourceTree = "<group>"; }; … … 5190 5194 1D32F89D23A84C5B00B1EA6A /* RemoteMediaResourceProxy.cpp */, 5191 5195 1D32F89B23A84BA600B1EA6A /* RemoteMediaResourceProxy.h */, 5196 071BC58323CC2BD500680D7C /* VideoTrackPrivateRemote.cpp */, 5197 071BC58223CC2BD300680D7C /* VideoTrackPrivateRemote.h */, 5192 5198 ); 5193 5199 path = media; … … 5213 5219 1DA4089423A80A3E0058C950 /* RemoteMediaResourceManager.h */, 5214 5220 1D32F8A623A8601900B1EA6A /* RemoteMediaResourceManager.messages.in */, 5221 071BC58423CC2C0900680D7C /* RemoteVideoTrackProxy.cpp */, 5222 071BC58523CC2C0900680D7C /* RemoteVideoTrackProxy.h */, 5215 5223 071BC57B23CA532400680D7C /* TrackPrivateRemoteConfiguration.h */, 5216 5224 071BC57D23CA56D200680D7C /* TrackPrivateRemoteIdentifier.h */, -
trunk/Source/WebKit/WebProcess/GPU/media/AudioTrackPrivateRemote.cpp
r254454 r254499 64 64 m_label = configuration.label; 65 65 if (changed && client()) 66 client()-> idChanged(m_label);66 client()->labelChanged(m_label); 67 67 } 68 68 … … 71 71 m_language = configuration.language; 72 72 if (changed && client()) 73 client()-> idChanged(m_language);73 client()->languageChanged(m_language); 74 74 } 75 75 76 76 m_trackIndex = configuration.trackIndex; 77 77 m_startTimeVariance = configuration.startTimeVariance; 78 m_kind = configuration. kind;78 m_kind = configuration.audioKind; 79 79 setEnabled(configuration.enabled); 80 80 } -
trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
r254454 r254499 33 33 #include "RemoteMediaPlayerManagerProxyMessages.h" 34 34 #include "SandboxExtension.h" 35 #include "VideoTrackPrivateRemote.h" 35 36 #include "WebCoreArgumentCoders.h" 36 37 #include "WebProcess.h" … … 387 388 void MediaPlayerPrivateRemote::addRemoteAudioTrack(TrackPrivateRemoteIdentifier identifier, TrackPrivateRemoteConfiguration&& configuration) 388 389 { 389 ASSERT(!m_audioTracks.contains(identifier)); 390 if (m_audioTracks.contains(identifier)) 390 auto addResult = m_audioTracks.ensure(identifier, [&] { 391 return AudioTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); 392 }); 393 ASSERT(addResult.isNewEntry); 394 395 if (!addResult.isNewEntry) 391 396 return; 392 397 393 auto track = AudioTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); 394 m_player->addAudioTrack(m_audioTracks.add(identifier, WTFMove(track)).iterator->value); 398 m_player->addAudioTrack(addResult.iterator->value); 395 399 } 396 400 … … 410 414 411 415 if (const auto& track = m_audioTracks.get(id)) 416 track->updateConfiguration(WTFMove(configuration)); 417 } 418 419 void MediaPlayerPrivateRemote::addRemoteVideoTrack(TrackPrivateRemoteIdentifier identifier, TrackPrivateRemoteConfiguration&& configuration) 420 { 421 auto addResult = m_videoTracks.ensure(identifier, [&] { 422 return VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); 423 }); 424 ASSERT(addResult.isNewEntry); 425 426 if (!addResult.isNewEntry) 427 return; 428 429 m_player->addVideoTrack(addResult.iterator->value); 430 } 431 432 void MediaPlayerPrivateRemote::removeRemoteVideoTrack(TrackPrivateRemoteIdentifier id) 433 { 434 ASSERT(m_videoTracks.contains(id)); 435 436 if (auto* track = m_videoTracks.get(id)) { 437 m_player->removeVideoTrack(*track); 438 m_videoTracks.remove(id); 439 } 440 } 441 442 void MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged(TrackPrivateRemoteIdentifier id, TrackPrivateRemoteConfiguration&& configuration) 443 { 444 ASSERT(m_videoTracks.contains(id)); 445 446 if (const auto& track = m_videoTracks.get(id)) 412 447 track->updateConfiguration(WTFMove(configuration)); 413 448 } -
trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h
r254454 r254499 42 42 43 43 class AudioTrackPrivateRemote; 44 class VideoTrackPrivateRemote; 44 45 struct TrackPrivateRemoteConfiguration; 45 46 … … 83 84 void remoteAudioTrackConfigurationChanged(TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 84 85 86 void addRemoteVideoTrack(TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 87 void removeRemoteVideoTrack(TrackPrivateRemoteIdentifier); 88 void remoteVideoTrackConfigurationChanged(TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 89 85 90 void requestResource(RemoteMediaResourceIdentifier, WebCore::ResourceRequest&&, WebCore::PlatformMediaResourceLoader::LoadOptions); 86 91 void removeResource(RemoteMediaResourceIdentifier); … … 322 327 HashMap<RemoteMediaResourceIdentifier, RefPtr<WebCore::PlatformMediaResource>> m_mediaResources; 323 328 HashMap<TrackPrivateRemoteIdentifier, Ref<AudioTrackPrivateRemote>> m_audioTracks; 329 HashMap<TrackPrivateRemoteIdentifier, Ref<VideoTrackPrivateRemote>> m_videoTracks; 324 330 325 331 double m_volume { 1 }; -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp
r254454 r254499 322 322 } 323 323 324 void RemoteMediaPlayerManager::addRemoteVideoTrack(MediaPlayerPrivateRemoteIdentifier playerID, TrackPrivateRemoteIdentifier trackID, TrackPrivateRemoteConfiguration&& configuration) 325 { 326 if (auto player = m_players.get(playerID)) 327 player->addRemoteVideoTrack(trackID, WTFMove(configuration)); 328 } 329 330 void RemoteMediaPlayerManager::removeRemoteVideoTrack(MediaPlayerPrivateRemoteIdentifier playerID, TrackPrivateRemoteIdentifier trackID) 331 { 332 if (auto player = m_players.get(playerID)) 333 player->removeRemoteVideoTrack(trackID); 334 } 335 336 void RemoteMediaPlayerManager::remoteVideoTrackConfigurationChanged(MediaPlayerPrivateRemoteIdentifier playerID, TrackPrivateRemoteIdentifier trackID, TrackPrivateRemoteConfiguration&& configuration) 337 { 338 if (auto player = m_players.get(playerID)) 339 player->remoteVideoTrackConfigurationChanged(trackID, WTFMove(configuration)); 340 } 341 324 342 void RemoteMediaPlayerManager::requestResource(MediaPlayerPrivateRemoteIdentifier id, RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, ResourceRequest&& request, PlatformMediaResourceLoader::LoadOptions options, CompletionHandler<void()>&& completionHandler) 325 343 { -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.h
r254454 r254499 90 90 void characteristicChanged(MediaPlayerPrivateRemoteIdentifier, bool hasAudio, bool hasVideo, WebCore::MediaPlayerEnums::MovieLoadType); 91 91 void sizeChanged(MediaPlayerPrivateRemoteIdentifier, WebCore::FloatSize); 92 92 93 void addRemoteAudioTrack(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 93 94 void removeRemoteAudioTrack(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier); 94 95 void remoteAudioTrackConfigurationChanged(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 96 97 void addRemoteVideoTrack(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 98 void removeRemoteVideoTrack(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier); 99 void remoteVideoTrackConfigurationChanged(MediaPlayerPrivateRemoteIdentifier, TrackPrivateRemoteIdentifier, TrackPrivateRemoteConfiguration&&); 95 100 96 101 void requestResource(MediaPlayerPrivateRemoteIdentifier, RemoteMediaResourceIdentifier, WebCore::ResourceRequest&&, WebCore::PlatformMediaResourceLoader::LoadOptions, CompletionHandler<void()>&&); -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in
r254454 r254499 42 42 RemoteAudioTrackConfigurationChanged(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID, struct WebKit::TrackPrivateRemoteConfiguration configuration) 43 43 44 AddRemoteVideoTrack(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID, struct WebKit::TrackPrivateRemoteConfiguration configuration) 45 RemoveRemoteVideoTrack(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID) 46 RemoteVideoTrackConfigurationChanged(WebKit::MediaPlayerPrivateRemoteIdentifier playerID, WebKit::TrackPrivateRemoteIdentifier trackID, struct WebKit::TrackPrivateRemoteConfiguration configuration) 47 44 48 RequestResource(WebKit::MediaPlayerPrivateRemoteIdentifier mediaPlayerPrivateRemoteIdentifier, WebKit::RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, WebCore::ResourceRequest request, enum:uint8_t WebCore::PlatformMediaResourceLoader::LoadOptions options) -> () Async 45 49 RemoveResource(WebKit::MediaPlayerPrivateRemoteIdentifier mediaPlayerPrivateRemoteIdentifier, WebKit::RemoteMediaResourceIdentifier remoteMediaResourceIdentifier) -
trunk/Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp
r254498 r254499 26 26 27 27 #include "config.h" 28 #include " AudioTrackPrivateRemote.h"28 #include "VideoTrackPrivateRemote.h" 29 29 30 30 #if ENABLE(GPU_PROCESS) … … 32 32 #include "MediaPlayerPrivateRemote.h" 33 33 #include "RemoteMediaPlayerManagerProxyMessages.h" 34 #include "TrackPrivateRemoteConfiguration.h"35 34 36 35 namespace WebKit { 37 36 38 AudioTrackPrivateRemote::AudioTrackPrivateRemote(MediaPlayerPrivateRemote& player, TrackPrivateRemoteIdentifier idendifier, TrackPrivateRemoteConfiguration&& configuration)37 VideoTrackPrivateRemote::VideoTrackPrivateRemote(MediaPlayerPrivateRemote& player, TrackPrivateRemoteIdentifier idendifier, TrackPrivateRemoteConfiguration&& configuration) 39 38 : m_player(player) 40 39 , m_idendifier(idendifier) … … 43 42 } 44 43 45 void AudioTrackPrivateRemote::setEnabled(bool enabled)44 void VideoTrackPrivateRemote::setSelected(bool selected) 46 45 { 47 if ( enabled != this->enabled())48 m_player.connection().send(Messages::RemoteMediaPlayerManagerProxy:: AudioTrackSetEnabled(m_player.itentifier(), m_idendifier, enabled), 0);46 if (selected != this->selected()) 47 m_player.connection().send(Messages::RemoteMediaPlayerManagerProxy::VideoTrackSetSelected(m_player.itentifier(), m_idendifier, selected), 0); 49 48 50 AudioTrackPrivate::setEnabled(enabled);49 VideoTrackPrivate::setSelected(selected); 51 50 } 52 51 53 void AudioTrackPrivateRemote::updateConfiguration(TrackPrivateRemoteConfiguration&& configuration)52 void VideoTrackPrivateRemote::updateConfiguration(TrackPrivateRemoteConfiguration&& configuration) 54 53 { 55 54 if (configuration.id != m_id) { … … 64 63 m_label = configuration.label; 65 64 if (changed && client()) 66 client()-> idChanged(m_label);65 client()->labelChanged(m_label); 67 66 } 68 67 … … 71 70 m_language = configuration.language; 72 71 if (changed && client()) 73 client()-> idChanged(m_language);72 client()->languageChanged(m_language); 74 73 } 75 74 76 75 m_trackIndex = configuration.trackIndex; 77 76 m_startTimeVariance = configuration.startTimeVariance; 78 m_kind = configuration. kind;79 set Enabled(configuration.enabled);77 m_kind = configuration.videoKind; 78 setSelected(configuration.selected); 80 79 } 81 80
Note: See TracChangeset
for help on using the changeset viewer.