Changeset 254562 in webkit


Ignore:
Timestamp:
Jan 15, 2020 3:30:52 AM (4 years ago)
Author:
youenn@apple.com
Message:

Add support for MediaStream audio track rendering in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=206175

Reviewed by Eric Carlson.

Source/WebCore:

Simplify model to use start/stop instead of setPaused.
Simplify and fix issue in computation of the muted state of the renderer.
Covered by existing tests run with GPU process enabled and manual testing

  • platform/mediastream/AudioMediaStreamTrackRenderer.h:
  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:

(WebCore::AudioTrackPrivateMediaStream::playInternal):
(WebCore::AudioTrackPrivateMediaStream::pause):
(WebCore::AudioTrackPrivateMediaStream::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStream::updateRendererMutedState):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::start):
(WebCore::AudioMediaStreamTrackRendererCocoa::stop):
(WebCore::AudioMediaStreamTrackRendererCocoa::clear):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
(WebCore::AudioMediaStreamTrackRendererCocoa::render):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:

Source/WebKit:

Implement an AudioMediaStreamTrackRenderer at WebKit level by creating a remote renderer in GPUProcess and sending IPC to pass
audio data as well as orders (start/stop/setMuted).

Implement the remote renderer using WebCore audio track renderer.

Enable WebKit remote renderer F GPU process for media is enabled.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::audioTrackRendererManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp: Added.

(WebKit::nextLogIdentifier):
(WebKit::nullLogger):
(WebKit::RemoteAudioMediaStreamTrackRenderer::RemoteAudioMediaStreamTrackRenderer):
(WebKit::RemoteAudioMediaStreamTrackRenderer::~RemoteAudioMediaStreamTrackRenderer):
(WebKit::RemoteAudioMediaStreamTrackRenderer::storage):
(WebKit::RemoteAudioMediaStreamTrackRenderer::start):
(WebKit::RemoteAudioMediaStreamTrackRenderer::stop):
(WebKit::RemoteAudioMediaStreamTrackRenderer::clear):
(WebKit::RemoteAudioMediaStreamTrackRenderer::setMuted):
(WebKit::RemoteAudioMediaStreamTrackRenderer::setVolume):
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesAvailable):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h: Added.
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in: Added.
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp: Added.

(WebKit::RemoteAudioMediaStreamTrackRendererManager::didReceiveRendererMessage):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::createRenderer):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::releaseRenderer):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h: Added.

(WebKit::RemoteAudioMediaStreamTrackRendererManager::didReceiveMessageFromWebProcess):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::updatePreferences):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp: Added.

(WebKit::AudioMediaStreamTrackRenderer::create):
(WebKit::AudioMediaStreamTrackRenderer::AudioMediaStreamTrackRenderer):
(WebKit::AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer):
(WebKit::AudioMediaStreamTrackRenderer::start):
(WebKit::AudioMediaStreamTrackRenderer::stop):
(WebKit::AudioMediaStreamTrackRenderer::clear):
(WebKit::AudioMediaStreamTrackRenderer::setMuted):
(WebKit::AudioMediaStreamTrackRenderer::setVolume):
(WebKit::AudioMediaStreamTrackRenderer::pushSamples):
(WebKit::AudioMediaStreamTrackRenderer::storageChanged):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h: Added.

(WebKit::AudioMediaStreamTrackRenderer::identifier const):

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h: Added.

LayoutTests:

  • gpu-process/TestExpectations:
Location:
trunk
Files:
9 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r254561 r254562  
     12020-01-15  youenn fablet  <youenn@apple.com>
     2
     3        Add support for MediaStream audio track rendering in GPUProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=206175
     5
     6        Reviewed by Eric Carlson.
     7
     8        * gpu-process/TestExpectations:
     9
    1102020-01-15  Oriol Brufau  <obrufau@igalia.com>
    211
  • trunk/LayoutTests/gpu-process/TestExpectations

    r254555 r254562  
    230230fast/css/relative-position-replaced-in-table-display-crash.html [ Skip ]
    231231fast/mediacapturefromelement [ Skip ]
    232 fast/mediastream [ Skip ]
    233232fullscreen/full-screen-iframe-legacy.html [ Skip ]
    234233fullscreen/video-controls-timeline.html [ Skip ]
     
    244243http/tests/navigation/page-cache-mediastream.html [ Skip ]
    245244http/wpt/mediarecorder [ Skip ]
    246 imported/w3c/web-platform-tests/mediacapture-streams [ Skip ]
    247245imported/w3c/web-platform-tests/mediacapture-fromelement/idlharness.html [ Skip ]
    248246imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html [ Skip ]
     
    261259
    262260webgpu [ Skip ]
    263 
    264 webrtc [ Skip ]
    265 platform/mac/webrtc [ Skip ]
  • trunk/Source/WebCore/ChangeLog

    r254561 r254562  
     12020-01-15  youenn fablet  <youenn@apple.com>
     2
     3        Add support for MediaStream audio track rendering in GPUProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=206175
     5
     6        Reviewed by Eric Carlson.
     7
     8        Simplify model to use start/stop instead of setPaused.
     9        Simplify and fix issue in computation of the muted state of the renderer.
     10        Covered by existing tests run with GPU process enabled and manual testing
     11
     12        * platform/mediastream/AudioMediaStreamTrackRenderer.h:
     13        * platform/mediastream/AudioTrackPrivateMediaStream.cpp:
     14        (WebCore::AudioTrackPrivateMediaStream::playInternal):
     15        (WebCore::AudioTrackPrivateMediaStream::pause):
     16        (WebCore::AudioTrackPrivateMediaStream::audioSamplesAvailable):
     17        (WebCore::AudioTrackPrivateMediaStream::updateRendererMutedState):
     18        * platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:
     19        (WebCore::AudioMediaStreamTrackRendererCocoa::start):
     20        (WebCore::AudioMediaStreamTrackRendererCocoa::stop):
     21        (WebCore::AudioMediaStreamTrackRendererCocoa::clear):
     22        (WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
     23        (WebCore::AudioMediaStreamTrackRendererCocoa::render):
     24        * platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:
     25
    1262020-01-15  Oriol Brufau  <obrufau@igalia.com>
    227
  • trunk/Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.h

    r254516 r254562  
    4545    virtual ~AudioMediaStreamTrackRenderer() = default;
    4646
    47     virtual void setPaused(bool) = 0;
     47    virtual void start() = 0;
    4848    virtual void stop() = 0;
    4949    virtual void clear() = 0;
  • trunk/Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.cpp

    r254516 r254562  
    7878    m_autoPlay = false;
    7979
    80     m_renderer->setPaused(false);
     80    m_renderer->start();
    8181}
    8282
     
    9696    m_autoPlay = false;
    9797
    98     m_renderer->setPaused(true);
     98    m_renderer->stop();
    9999}
    100100
     
    140140void AudioTrackPrivateMediaStream::updateRendererMutedState()
    141141{
    142     m_renderer->setMuted(m_isPlaying && !streamTrack().muted() && !streamTrack().ended() && streamTrack().enabled());
     142    m_renderer->setMuted(streamTrack().muted() || streamTrack().ended() || !streamTrack().enabled());
    143143}
    144144
  • trunk/Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp

    r254516 r254562  
    4444AudioMediaStreamTrackRendererCocoa::~AudioMediaStreamTrackRendererCocoa() = default;
    4545
     46void AudioMediaStreamTrackRendererCocoa::start()
     47{
     48    m_shouldPlay = true;
     49
     50    if (m_dataSource)
     51        m_dataSource->setPaused(false);
     52}
     53
    4654void AudioMediaStreamTrackRendererCocoa::stop()
    4755{
    48     if (!m_isAudioUnitStarted)
    49         return;
    50 
    51     if (m_remoteIOUnit)
    52         AudioOutputUnitStop(m_remoteIOUnit);
     56    m_shouldPlay = false;
     57
     58    if (m_dataSource)
     59        m_dataSource->setPaused(true);
    5360}
    5461
    5562void AudioMediaStreamTrackRendererCocoa::clear()
    5663{
     64    m_shouldPlay = false;
     65
    5766    if (m_dataSource)
    5867        m_dataSource->setPaused(true);
     
    6776    m_inputDescription = nullptr;
    6877    m_outputDescription = nullptr;
    69 }
    70 
    71 void AudioMediaStreamTrackRendererCocoa::setPaused(bool value)
    72 {
    73     m_paused = value;
    74     if (m_dataSource)
    75         m_dataSource->setPaused(value);
     78    m_isAudioUnitStarted = false;
    7679}
    7780
     
    144147{
    145148    ASSERT(description.platformDescription().type == PlatformDescription::CAAudioStreamBasicType);
     149    if (!m_shouldPlay) {
     150        if (m_isAudioUnitStarted) {
     151            if (m_remoteIOUnit)
     152                AudioOutputUnitStop(m_remoteIOUnit);
     153            m_isAudioUnitStarted = false;
     154        }
     155        return;
     156    }
    146157
    147158    if (!m_inputDescription || *m_inputDescription != description) {
     
    200211OSStatus AudioMediaStreamTrackRendererCocoa::render(UInt32 sampleCount, AudioBufferList& ioData, UInt32 /*inBusNumber*/, const AudioTimeStamp& timeStamp, AudioUnitRenderActionFlags& actionFlags)
    201212{
    202     if (isMuted() || m_paused || !m_dataSource) {
     213    if (isMuted() || !m_shouldPlay || !m_dataSource) {
    203214        AudioSampleBufferList::zeroABL(ioData, static_cast<size_t>(sampleCount * m_outputDescription->bytesPerFrame()));
    204215        actionFlags = kAudioUnitRenderAction_OutputIsSilence;
  • trunk/Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h

    r254516 r254562  
    4949    // AudioMediaStreamTrackRenderer
    5050    void pushSamples(const WTF::MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final;
     51    void start() final;
    5152    void stop() final;
    5253    void clear() final;
    53     void setPaused(bool) final;
    5454
    5555    static OSStatus inputProc(void*, AudioUnitRenderActionFlags*, const AudioTimeStamp*, UInt32 inBusNumber, UInt32 numberOfFrames, AudioBufferList*);
     
    6666    RefPtr<AudioSampleDataSource> m_dataSource;
    6767    bool m_isAudioUnitStarted { false };
    68     bool m_paused { false };
     68    bool m_shouldPlay { false };
    6969};
    7070
  • trunk/Source/WebKit/ChangeLog

    r254560 r254562  
     12020-01-15  youenn fablet  <youenn@apple.com>
     2
     3        Add support for MediaStream audio track rendering in GPUProcess
     4        https://bugs.webkit.org/show_bug.cgi?id=206175
     5
     6        Reviewed by Eric Carlson.
     7
     8        Implement an AudioMediaStreamTrackRenderer at WebKit level by creating a remote renderer in GPUProcess and sending IPC to pass
     9        audio data as well as orders (start/stop/setMuted).
     10
     11        Implement the remote renderer using WebCore audio track renderer.
     12
     13        Enable WebKit remote renderer F GPU process for media is enabled.
     14
     15        * DerivedSources-input.xcfilelist:
     16        * DerivedSources-output.xcfilelist:
     17        * DerivedSources.make:
     18        * GPUProcess/GPUConnectionToWebProcess.cpp:
     19        (WebKit::GPUConnectionToWebProcess::audioTrackRendererManager):
     20        (WebKit::GPUConnectionToWebProcess::didReceiveMessage):
     21        * GPUProcess/GPUConnectionToWebProcess.h:
     22        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp: Added.
     23        (WebKit::nextLogIdentifier):
     24        (WebKit::nullLogger):
     25        (WebKit::RemoteAudioMediaStreamTrackRenderer::RemoteAudioMediaStreamTrackRenderer):
     26        (WebKit::RemoteAudioMediaStreamTrackRenderer::~RemoteAudioMediaStreamTrackRenderer):
     27        (WebKit::RemoteAudioMediaStreamTrackRenderer::storage):
     28        (WebKit::RemoteAudioMediaStreamTrackRenderer::start):
     29        (WebKit::RemoteAudioMediaStreamTrackRenderer::stop):
     30        (WebKit::RemoteAudioMediaStreamTrackRenderer::clear):
     31        (WebKit::RemoteAudioMediaStreamTrackRenderer::setMuted):
     32        (WebKit::RemoteAudioMediaStreamTrackRenderer::setVolume):
     33        (WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
     34        (WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesAvailable):
     35        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h: Added.
     36        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in: Added.
     37        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp: Added.
     38        (WebKit::RemoteAudioMediaStreamTrackRendererManager::didReceiveRendererMessage):
     39        (WebKit::RemoteAudioMediaStreamTrackRendererManager::createRenderer):
     40        (WebKit::RemoteAudioMediaStreamTrackRendererManager::releaseRenderer):
     41        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h: Added.
     42        (WebKit::RemoteAudioMediaStreamTrackRendererManager::didReceiveMessageFromWebProcess):
     43        * GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in: Added.
     44        * Scripts/webkit/messages.py:
     45        * Sources.txt:
     46        * SourcesCocoa.txt:
     47        * WebKit.xcodeproj/project.pbxproj:
     48        * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
     49        (WebKit::RemoteMediaPlayerManager::updatePreferences):
     50        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp: Added.
     51        (WebKit::AudioMediaStreamTrackRenderer::create):
     52        (WebKit::AudioMediaStreamTrackRenderer::AudioMediaStreamTrackRenderer):
     53        (WebKit::AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer):
     54        (WebKit::AudioMediaStreamTrackRenderer::start):
     55        (WebKit::AudioMediaStreamTrackRenderer::stop):
     56        (WebKit::AudioMediaStreamTrackRenderer::clear):
     57        (WebKit::AudioMediaStreamTrackRenderer::setMuted):
     58        (WebKit::AudioMediaStreamTrackRenderer::setVolume):
     59        (WebKit::AudioMediaStreamTrackRenderer::pushSamples):
     60        (WebKit::AudioMediaStreamTrackRenderer::storageChanged):
     61        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h: Added.
     62        (WebKit::AudioMediaStreamTrackRenderer::identifier const):
     63        * WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererIdentifier.h: Added.
     64
    1652020-01-14  Commit Queue  <commit-queue@webkit.org>
    266
  • trunk/Source/WebKit/DerivedSources-input.xcfilelist

    r254519 r254562  
    2121$(PROJECT_DIR)/GPUProcess/media/RemoteMediaResourceManager.messages.in
    2222$(PROJECT_DIR)/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in
     23$(PROJECT_DIR)/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in
     24$(PROJECT_DIR)/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in
    2325$(PROJECT_DIR)/GPUProcess/webrtc/RemoteMediaRecorder.messages.in
    2426$(PROJECT_DIR)/GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in
  • trunk/Source/WebKit/DerivedSources-output.xcfilelist

    r254519 r254562  
    121121$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/PluginProxyMessages.h
    122122$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/PluginProxyMessagesReplies.h
     123$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererManagerMessageReceiver.cpp
     124$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererManagerMessages.h
     125$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererManagerMessagesReplies.h
     126$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererMessageReceiver.cpp
     127$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererMessages.h
     128$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteAudioMediaStreamTrackRendererMessagesReplies.h
    123129$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp
    124130$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteLayerTreeDrawingAreaProxyMessages.h
  • trunk/Source/WebKit/DerivedSources.make

    r254519 r254562  
    141141    PluginProcessProxy \
    142142    PluginProxy \
     143    RemoteAudioMediaStreamTrackRendererManager \
     144    RemoteAudioMediaStreamTrackRenderer \
    143145    RemoteLayerTreeDrawingAreaProxy \
    144146    RemoteMediaPlayerManager \
  • trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp

    r254519 r254562  
    3737#include "LibWebRTCCodecsProxyMessages.h"
    3838#include "Logging.h"
     39#include "RemoteAudioMediaStreamTrackRendererManager.h"
     40#include "RemoteAudioMediaStreamTrackRendererManagerMessages.h"
     41#include "RemoteAudioMediaStreamTrackRendererMessages.h"
    3942#include "RemoteLayerTreeDrawingAreaProxyMessages.h"
    4043#include "RemoteMediaPlayerManagerProxy.h"
     
    151154    return *m_remoteMediaRecorderManager;
    152155}
     156
     157#if ENABLE(VIDEO_TRACK)
     158RemoteAudioMediaStreamTrackRendererManager& GPUConnectionToWebProcess::audioTrackRendererManager()
     159{
     160    if (!m_audioTrackRendererManager)
     161        m_audioTrackRendererManager = makeUnique<RemoteAudioMediaStreamTrackRendererManager>();
     162
     163    return *m_audioTrackRendererManager;
     164}
     165#endif
    153166#endif
    154167
     
    188201        return;
    189202    }
     203#if PLATFORM(COCOA) && ENABLE(VIDEO_TRACK)
     204    if (decoder.messageReceiverName() == Messages::RemoteAudioMediaStreamTrackRendererManager::messageReceiverName()) {
     205        audioTrackRendererManager().didReceiveMessageFromWebProcess(connection, decoder);
     206        return;
     207    }
     208    if (decoder.messageReceiverName() == Messages::RemoteAudioMediaStreamTrackRenderer::messageReceiverName()) {
     209        audioTrackRendererManager().didReceiveRendererMessage(connection, decoder);
     210        return;
     211    }
     212#endif
    190213#endif
    191214#if PLATFORM(COCOA) && USE(LIBWEBRTC)
  • trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h

    r254516 r254562  
    4141class GPUProcess;
    4242class LibWebRTCCodecsProxy;
     43class RemoteAudioMediaStreamTrackRendererManager;
    4344class RemoteMediaPlayerManagerProxy;
    4445class RemoteMediaRecorderManager;
     
    7475    UserMediaCaptureManagerProxy& userMediaCaptureManagerProxy();
    7576    RemoteMediaRecorderManager& mediaRecorderManager();
     77#if ENABLE(VIDEO_TRACK)
     78    RemoteAudioMediaStreamTrackRendererManager& audioTrackRendererManager();
     79#endif
    7680#endif
    7781
     
    9397    std::unique_ptr<UserMediaCaptureManagerProxy> m_userMediaCaptureManagerProxy;
    9498    std::unique_ptr<RemoteMediaRecorderManager> m_remoteMediaRecorderManager;
     99#if ENABLE(VIDEO_TRACK)
     100    std::unique_ptr<RemoteAudioMediaStreamTrackRendererManager> m_audioTrackRendererManager;
     101#endif
    95102#endif
    96103#if PLATFORM(COCOA) && USE(LIBWEBRTC)
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r254556 r254562  
    219219        'WebCore::SWServerConnectionIdentifier',
    220220        'WebKit::ActivityStateChangeID',
     221        'WebKit::AudioMediaStreamTrackRendererIdentifier',
    221222        'WebKit::LayerHostingContextID',
    222223        'WebKit::MediaPlayerPrivateRemoteIdentifier',
  • trunk/Source/WebKit/Sources.txt

    r254554 r254562  
    2525GPUProcess/GPUConnectionToWebProcess.cpp
    2626GPUProcess/GPUProcessCreationParameters.cpp
     27GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp
     28GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp
    2729GPUProcess/webrtc/RemoteMediaRecorder.cpp
    2830GPUProcess/webrtc/RemoteMediaRecorderManager.cpp
     
    526528WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp
    527529WebProcess/GPU/webrtc/MediaRecorderProvider.cpp
     530WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp
    528531
    529532WebProcess/Network/NetworkProcessConnection.cpp
  • trunk/Source/WebKit/SourcesCocoa.txt

    r254555 r254562  
    641641LibWebRTCCodecsProxyMessageReceiver.cpp
    642642LibWebRTCCodecsMessageReceiver.cpp
     643RemoteAudioMediaStreamTrackRendererManagerMessageReceiver.cpp
     644RemoteAudioMediaStreamTrackRendererMessageReceiver.cpp
    643645RemoteMediaRecorderMessageReceiver.cpp
    644646RemoteMediaRecorderManagerMessageReceiver.cpp
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r254555 r254562  
    33943394                41D5C6D8238EB20D00B9B3CB /* ServiceWorkerSoftUpdateLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerSoftUpdateLoader.h; sourceTree = "<group>"; };
    33953395                41D5C6D9238EB20E00B9B3CB /* ServiceWorkerSoftUpdateLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerSoftUpdateLoader.cpp; sourceTree = "<group>"; };
     3396                41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = RemoteAudioMediaStreamTrackRenderer.messages.in; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in; sourceTree = SOURCE_ROOT; };
     3397                41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteAudioMediaStreamTrackRenderer.h; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h; sourceTree = SOURCE_ROOT; };
     3398                41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteAudioMediaStreamTrackRenderer.cpp; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp; sourceTree = SOURCE_ROOT; };
     3399                41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RemoteAudioMediaStreamTrackRendererManager.messages.in; sourceTree = "<group>"; };
     3400                41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteAudioMediaStreamTrackRendererManager.cpp; sourceTree = "<group>"; };
     3401                41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteAudioMediaStreamTrackRendererManager.h; sourceTree = "<group>"; };
    33963402                41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkRTCProvider.h; sourceTree = "<group>"; };
    33973403                41DC45951E3D6E1E00B11F51 /* NetworkRTCProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkRTCProvider.cpp; sourceTree = "<group>"; };
     
    34143420                41FBE823206DA79C000F0741 /* NetworkContentRuleListManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NetworkContentRuleListManager.messages.in; sourceTree = "<group>"; };
    34153421                41FBE824206DA79C000F0741 /* NetworkContentRuleListManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkContentRuleListManager.cpp; sourceTree = "<group>"; };
     3422                41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRenderer.h; sourceTree = "<group>"; };
     3423                41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioMediaStreamTrackRenderer.cpp; sourceTree = "<group>"; };
     3424                41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRendererIdentifier.h; sourceTree = "<group>"; };
    34163425                4450AEBF1DC3FAE5009943F2 /* SharedMemoryCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemoryCocoa.cpp; sourceTree = "<group>"; };
    34173426                4459984122833E6000E61373 /* SyntheticEditingCommandType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntheticEditingCommandType.h; sourceTree = "<group>"; };
     
    71987207                        isa = PBXGroup;
    71997208                        children = (
     7209                                41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */,
     7210                                41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */,
     7211                                41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */,
    72007212                                4172198A23B6128200AE5686 /* LibWebRTCCodecs.cpp */,
    72017213                                4172198923B6128200AE5686 /* LibWebRTCCodecs.h */,
     
    72187230                                41E0A7C723B6397900561060 /* LibWebRTCCodecsProxy.messages.in */,
    72197231                                41E0A7C823B6397900561060 /* LibWebRTCCodecsProxy.mm */,
     7232                                41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */,
     7233                                41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */,
     7234                                41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */,
     7235                                41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */,
     7236                                41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */,
     7237                                41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */,
    72207238                                4176E89D23C376D5003E83FE /* RemoteMediaRecorder.cpp */,
    72217239                                4176E89823C36677003E83FE /* RemoteMediaRecorder.h */,
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp

    r254555 r254562  
    2929#if ENABLE(GPU_PROCESS)
    3030
     31#include "AudioMediaStreamTrackRenderer.h"
    3132#include "MediaPlayerPrivateRemote.h"
     33#include "RemoteAudioMediaStreamTrackRenderer.h"
    3234#include "RemoteMediaPlayerConfiguration.h"
    3335#include "RemoteMediaPlayerMIMETypeCache.h"
     
    367369
    368370    RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback(settings.useGPUProcessForMedia() ? WTFMove(registerEngine) : RemoteMediaPlayerSupport::RegisterRemotePlayerCallback());
     371
     372#if PLATFORM(COCOA) && ENABLE(VIDEO_TRACK) && ENABLE(MEDIA_STREAM)
     373    if (settings.useGPUProcessForMedia())
     374        WebCore::AudioMediaStreamTrackRenderer::setCreator(WebKit::AudioMediaStreamTrackRenderer::create);
     375#endif
    369376}
    370377
Note: See TracChangeset for help on using the changeset viewer.