Expose video tracks for media files in the GPUProcess
<rdar://problem/58553026>
Created attachment 387605 [details] Patch
Comment on attachment 387605 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=387605&action=review r=me with a nit and a couple fixes. > Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:423 > + ASSERT(!m_videoTracks.contains(identifier)); > + if (m_videoTracks.contains(identifier)) > + return; > + > + auto track = VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); > + m_player->addVideoTrack(m_videoTracks.add(identifier, WTFMove(track)).iterator->value); Nit: This could be made ever so slightly more efficient by doing something like: auto addResult = m_videoTracks.ensure(identifier, [&] { return VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); }); ASSERT(addResult.isNewEntry); if (!addResult.isNewEntry) return; m_player->addVideoTrack(addResult.iterator->value); > Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:65 > + client()->idChanged(m_label); labelChanged(m_label)? > Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:72 > + client()->idChanged(m_language); languageChanged(m_language)? > Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.h:67 > + int m_trackIndex { -1 }; Is it too late to use Optional<int> here? Probably, but it'd be a nice clean up in a future patch.
Created attachment 387613 [details] Patch
Comment on attachment 387605 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=387605&action=review >> Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:423 >> + m_player->addVideoTrack(m_videoTracks.add(identifier, WTFMove(track)).iterator->value); > > Nit: This could be made ever so slightly more efficient by doing something like: > > auto addResult = m_videoTracks.ensure(identifier, [&] { return VideoTrackPrivateRemote::create(*this, identifier, WTFMove(configuration)); }); > ASSERT(addResult.isNewEntry); > if (!addResult.isNewEntry) > return; > m_player->addVideoTrack(addResult.iterator->value); Changed. >> Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:65 >> + client()->idChanged(m_label); > > labelChanged(m_label)? Oops, changed. >> Source/WebKit/WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:72 >> + client()->idChanged(m_language); > > languageChanged(m_language)? Ditto
Comment on attachment 387613 [details] Patch Clearing flags on attachment: 387613 Committed r254499: <https://trac.webkit.org/changeset/254499>
All reviewed patches have been landed. Closing bug.