WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
217704
Add support for GPUProcess WebAudio media element providers
https://bugs.webkit.org/show_bug.cgi?id=217704
Summary
Add support for GPUProcess WebAudio media element providers
youenn fablet
Reported
2020-10-14 05:44:16 PDT
Add support for GPUProcess WebAudio media element providers
Attachments
Patch
(74.13 KB, patch)
2020-10-14 05:45 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(55.00 KB, patch)
2020-10-15 03:57 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(55.10 KB, patch)
2020-10-15 05:02 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(55.23 KB, patch)
2020-10-15 05:14 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(55.15 KB, patch)
2020-10-15 05:22 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(55.17 KB, patch)
2020-10-15 05:30 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch for landing
(55.18 KB, patch)
2020-10-16 01:48 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
youenn fablet
Comment 1
2020-10-14 05:45:31 PDT
Created
attachment 411313
[details]
Patch
youenn fablet
Comment 2
2020-10-15 03:57:33 PDT
Created
attachment 411422
[details]
Patch
youenn fablet
Comment 3
2020-10-15 05:02:48 PDT
Created
attachment 411428
[details]
Patch
youenn fablet
Comment 4
2020-10-15 05:14:06 PDT
Created
attachment 411430
[details]
Patch
youenn fablet
Comment 5
2020-10-15 05:22:58 PDT
Created
attachment 411431
[details]
Patch
youenn fablet
Comment 6
2020-10-15 05:30:14 PDT
Created
attachment 411432
[details]
Patch
Eric Carlson
Comment 7
2020-10-15 20:24:12 PDT
Comment on
attachment 411432
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=411432&action=review
> Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:345 > + m_ringBuffer = m_ringBufferCallback ? m_ringBufferCallback(description, capacity) : nullptr; > + if (!m_ringBuffer) { > + m_ringBuffer = makeUnique<CARingBuffer>(); > + m_ringBuffer->allocate(description, capacity); > + }
Is it possible for m_ringBufferCallback() to return NULL? If not, I would change this to something like if (m_ringBufferCallback) m_ringBuffer = m_ringBufferCallback(...) else { m_ringBuffer = makeUnique<...> ... }
> Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:144 > + m_dataSource->pushSamples(MediaTime(m_writeCount, m_inputDescription->sampleRate()), data, frameCount);
Good catch!
> Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:29 > +#if ENABLE(GPU_PROCESS) && ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
`ENABLE_WEB_AUDIO` is defined in PlatformEnableCocoa.h, so I think `ENABLE(WEB_AUDIO) && PLATFORM(COCOA)` can be just `PLATFORM(COCOA)`
> Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.h:28 > +#if ENABLE(GPU_PROCESS) && ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
Ditto.
> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:889 > +#if ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
Ditto.
> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:903 > +#if ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
Ditto.
> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:314 > +#if ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
Ditto.
> Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:105 > +#if PLATFORM(COCOA) && ENABLE(WEB_AUDIO)
Ditto.
> Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:70 > +#if PLATFORM(COCOA) && ENABLE(WEB_AUDIO)
Ditto.
> Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:108 > +#if PLATFORM(COCOA) && ENABLE(WEB_AUDIO)
Ditto.
> Source/WebKit/WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:29 > #if ENABLE(GPU_PROCESS) && ENABLE(WEB_AUDIO) && PLATFORM(COCOA)
Ditto.
> Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:29 > +#include "Logging.h"
Is this needed?
youenn fablet
Comment 8
2020-10-16 01:34:02 PDT
(In reply to Eric Carlson from
comment #7
)
> Comment on
attachment 411432
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=411432&action=review
> > > Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:345 > > + m_ringBuffer = m_ringBufferCallback ? m_ringBufferCallback(description, capacity) : nullptr; > > + if (!m_ringBuffer) { > > + m_ringBuffer = makeUnique<CARingBuffer>(); > > + m_ringBuffer->allocate(description, capacity); > > + } > > Is it possible for m_ringBufferCallback() to return NULL? If not, I would > change this to something like > > if (m_ringBufferCallback) > m_ringBuffer = m_ringBufferCallback(...) > else { > m_ringBuffer = makeUnique<...> > ... > }
I did that initially but thought it was as good this way. I'll change the ring buffer callback to pass a UniqueRef.
> > Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:144 > > + m_dataSource->pushSamples(MediaTime(m_writeCount, m_inputDescription->sampleRate()), data, frameCount); > > Good catch! > > > Source/WebKit/GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:29 > > +#if ENABLE(GPU_PROCESS) && ENABLE(WEB_AUDIO) && PLATFORM(COCOA) > > `ENABLE_WEB_AUDIO` is defined in PlatformEnableCocoa.h, so I think > `ENABLE(WEB_AUDIO) && PLATFORM(COCOA)` can be just `PLATFORM(COCOA)`
CMake build is defining these macros in Source/cmake/OptionsXXX.cmake so it might be safer to keep these.
> > Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp:29 > > +#include "Logging.h" > > Is this needed?
Unified build issue.
youenn fablet
Comment 9
2020-10-16 01:48:15 PDT
Created
attachment 411547
[details]
Patch for landing
EWS
Comment 10
2020-10-16 02:49:02 PDT
Committed
r268577
: <
https://trac.webkit.org/changeset/268577
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 411547
[details]
.
Radar WebKit Bug Importer
Comment 11
2020-10-16 02:50:19 PDT
<
rdar://problem/70371753
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug