Bug 207904

Summary: Support in-band metadata cues when loading media in the GPU Process
Product: WebKit Reporter: Eric Carlson <eric.carlson>
Component: MediaAssignee: Eric Carlson <eric.carlson>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, calvaris, cdumez, commit-queue, dino, esprehn+autocc, ews-watchlist, glenn, gyuyoung.kim, jer.noble, philipj, ryuan.choi, sam, sergio, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch none

Description Eric Carlson 2020-02-18 12:51:48 PST
Support in-band metadata cues when loading media in the GPU Process
Comment 1 Radar WebKit Bug Importer 2020-02-18 12:52:03 PST
<rdar://problem/59561647>
Comment 2 Eric Carlson 2020-02-19 14:09:33 PST
Created attachment 391199 [details]
Patch
Comment 3 Eric Carlson 2020-02-19 18:59:26 PST
Created attachment 391243 [details]
Patch
Comment 4 Eric Carlson 2020-02-19 19:04:51 PST
Created attachment 391245 [details]
Patch
Comment 5 Eric Carlson 2020-02-20 05:56:36 PST
Created attachment 391282 [details]
Patch
Comment 6 Sam Weinig 2020-02-20 06:06:49 PST
Comment on attachment 391282 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=391282&action=review

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:27
> -    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -> (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Synchronous
> -    DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
> +    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -> (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Async

😘
Comment 7 Eric Carlson 2020-02-20 07:12:42 PST
Created attachment 391284 [details]
Patch
Comment 8 Eric Carlson 2020-02-20 07:25:30 PST
Created attachment 391285 [details]
Patch
Comment 9 Eric Carlson 2020-02-20 08:55:58 PST
Created attachment 391292 [details]
Patch
Comment 10 Eric Carlson 2020-02-20 10:17:36 PST
Created attachment 391300 [details]
Patch
Comment 11 Eric Carlson 2020-02-20 12:54:26 PST
Created attachment 391319 [details]
Patch
Comment 12 Eric Carlson 2020-02-20 13:45:34 PST
Created attachment 391331 [details]
Patch
Comment 13 Dean Jackson 2020-02-20 15:10:57 PST
Comment on attachment 391331 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=391331&action=review

> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.h:49
> +    WEBCORE_EXPORT static NSArray* allowedClassesForNativeValues();

Nit, I think the * goes near the function name.

> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:66
> +SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac()

Do you need this here now? Could it just be left out or marked = default?

> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:116
> +NSArray* SerializedPlatformDataCueMac::allowedClassesForNativeValues()

Nit: * again (I think... I'm never sure of the rules in .mm files)

> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:211
>  static JSValue *jsValueWithAVMetadataItemInContext(AVMetadataItem *item, JSContext *context)

Yeah, I guess it does go on that side.

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:28
> -    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -> (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Synchronous
> -    DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
> +    CreateMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id, enum:uint8_t WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, struct WebKit::RemoteMediaPlayerProxyConfiguration proxyConfiguration) -> (struct WebKit::RemoteMediaPlayerConfiguration playerConfiguration) Async
> +     DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)

Sam already gave you love for this, so I don't need to!
Comment 14 Eric Carlson 2020-02-20 18:01:38 PST
Comment on attachment 391331 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=391331&action=review

Thanks for the review!

>> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.h:49
>> +    WEBCORE_EXPORT static NSArray* allowedClassesForNativeValues();
> 
> Nit, I think the * goes near the function name.

OMG, this is such a RIDICULOUS "rule"...

>> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:66
>> +SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac()
> 
> Do you need this here now? Could it just be left out or marked = default?

Good point!

>> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:116
>> +NSArray* SerializedPlatformDataCueMac::allowedClassesForNativeValues()
> 
> Nit: * again (I think... I'm never sure of the rules in .mm files)

:-/

>> Source/WebCore/platform/mac/SerializedPlatformDataCueMac.mm:211
>>  static JSValue *jsValueWithAVMetadataItemInContext(AVMetadataItem *item, JSContext *context)
> 
> Yeah, I guess it does go on that side.

Ditto

>> Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:28
>> +     DeleteMediaPlayer(WebKit::MediaPlayerPrivateRemoteIdentifier id)
> 
> Sam already gave you love for this, so I don't need to!

:-)
Comment 15 Eric Carlson 2020-02-20 18:05:27 PST
Created attachment 391366 [details]
Patch
Comment 16 WebKit Commit Bot 2020-02-20 19:35:10 PST
The commit-queue encountered the following flaky tests while processing attachment 391366 [details]:

editing/spelling/spellcheck-paste-continuous-disabled.html bug 208016 (authors: g.czajkowski@samsung.com and mark.lam@apple.com)
The commit-queue is continuing to process your patch.
Comment 17 WebKit Commit Bot 2020-02-20 19:35:55 PST
Comment on attachment 391366 [details]
Patch

Clearing flags on attachment: 391366

Committed r257125: <https://trac.webkit.org/changeset/257125>
Comment 18 WebKit Commit Bot 2020-02-20 19:35:57 PST
All reviewed patches have been landed.  Closing bug.