Changeset 254516 in webkit


Ignore:
Timestamp:
Jan 14, 2020 9:48:50 AM (4 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r254505.

Breaks watchOS/tvOS/Catalyst builds.

Reverted changeset:

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

Location:
trunk
Files:
9 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r254514 r254516  
     12020-01-14  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r254505.
     4
     5        Breaks watchOS/tvOS/Catalyst builds.
     6
     7        Reverted changeset:
     8
     9        "Add support for MediaStream audio track rendering in
     10        GPUProcess"
     11        https://bugs.webkit.org/show_bug.cgi?id=206175
     12        https://trac.webkit.org/changeset/254505
     13
    1142020-01-13  Darin Adler  <darin@apple.com>
    215
  • trunk/LayoutTests/gpu-process/TestExpectations

    r254505 r254516  
    230230fast/css/relative-position-replaced-in-table-display-crash.html [ Skip ]
    231231fast/mediacapturefromelement [ Skip ]
     232fast/mediastream [ Skip ]
    232233fullscreen/full-screen-iframe-legacy.html [ Skip ]
    233234fullscreen/video-controls-timeline.html [ Skip ]
     
    240241http/tests/navigation/page-cache-mediastream.html [ Skip ]
    241242http/wpt/mediarecorder [ Skip ]
     243imported/w3c/web-platform-tests/mediacapture-streams [ Skip ]
    242244imported/w3c/web-platform-tests/mediacapture-fromelement/idlharness.html [ Skip ]
    243245imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html [ Skip ]
     
    256258
    257259webgpu [ Skip ]
     260
     261webrtc [ Skip ]
     262platform/mac/webrtc [ Skip ]
  • trunk/Source/WebCore/ChangeLog

    r254514 r254516  
     12020-01-14  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r254505.
     4
     5        Breaks watchOS/tvOS/Catalyst builds.
     6
     7        Reverted changeset:
     8
     9        "Add support for MediaStream audio track rendering in
     10        GPUProcess"
     11        https://bugs.webkit.org/show_bug.cgi?id=206175
     12        https://trac.webkit.org/changeset/254505
     13
    1142020-01-13  Darin Adler  <darin@apple.com>
    215
  • trunk/Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.h

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

    r254505 r254516  
    7878    m_autoPlay = false;
    7979
    80     m_renderer->start();
     80    m_renderer->setPaused(false);
    8181}
    8282
     
    9696    m_autoPlay = false;
    9797
    98     m_renderer->stop();
     98    m_renderer->setPaused(true);
    9999}
    100100
     
    112112void AudioTrackPrivateMediaStream::audioSamplesAvailable(MediaStreamTrackPrivate&, const MediaTime& sampleTime, const PlatformAudioData& audioData, const AudioStreamDescription& description, size_t sampleCount)
    113113{
     114    if (!m_isPlaying) {
     115        m_renderer->stop();
     116        return;
     117    }
     118
    114119    m_renderer->pushSamples(sampleTime, audioData, description, sampleCount);
    115120
     
    135140void AudioTrackPrivateMediaStream::updateRendererMutedState()
    136141{
    137     m_renderer->setMuted(streamTrack().muted() || streamTrack().ended() || !streamTrack().enabled());
     142    m_renderer->setMuted(m_isPlaying && !streamTrack().muted() && !streamTrack().ended() && streamTrack().enabled());
    138143}
    139144
  • trunk/Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp

    r254505 r254516  
    4444AudioMediaStreamTrackRendererCocoa::~AudioMediaStreamTrackRendererCocoa() = default;
    4545
    46 void AudioMediaStreamTrackRendererCocoa::start()
    47 {
    48     if (m_dataSource)
    49         m_dataSource->setPaused(false);
    50 
    51     if (m_isAudioUnitStarted)
    52         return;
    53 
    54     if (auto error = AudioOutputUnitStart(m_remoteIOUnit)) {
    55         ERROR_LOG(LOGIDENTIFIER, "AudioOutputUnitStart failed, error = ", error, " (", (const char*)&error, ")");
    56         return;
    57     }
    58     m_isAudioUnitStarted = true;
    59 }
    60 
    6146void AudioMediaStreamTrackRendererCocoa::stop()
    6247{
    63     if (m_dataSource)
    64         m_dataSource->setPaused(true);
    65 
    6648    if (!m_isAudioUnitStarted)
    6749        return;
    6850
    69     m_isAudioUnitStarted = false;
    7051    if (m_remoteIOUnit)
    7152        AudioOutputUnitStop(m_remoteIOUnit);
     
    8667    m_inputDescription = nullptr;
    8768    m_outputDescription = nullptr;
    88     m_isAudioUnitStarted = false;
     69}
     70
     71void AudioMediaStreamTrackRendererCocoa::setPaused(bool value)
     72{
     73    m_paused = value;
     74    if (m_dataSource)
     75        m_dataSource->setPaused(value);
    8976}
    9077
     
    201188
    202189    m_dataSource->pushSamples(sampleTime, audioData, sampleCount);
     190
     191    if (!m_isAudioUnitStarted) {
     192        if (auto error = AudioOutputUnitStart(m_remoteIOUnit)) {
     193            ERROR_LOG(LOGIDENTIFIER, "AudioOutputUnitStart failed, error = ", error, " (", (const char*)&error, ")");
     194            return;
     195        }
     196        m_isAudioUnitStarted = true;
     197    }
    203198}
    204199
    205200OSStatus AudioMediaStreamTrackRendererCocoa::render(UInt32 sampleCount, AudioBufferList& ioData, UInt32 /*inBusNumber*/, const AudioTimeStamp& timeStamp, AudioUnitRenderActionFlags& actionFlags)
    206201{
    207     if (isMuted() || !m_dataSource) {
     202    if (isMuted() || m_paused || !m_dataSource) {
    208203        AudioSampleBufferList::zeroABL(ioData, static_cast<size_t>(sampleCount * m_outputDescription->bytesPerFrame()));
    209204        actionFlags = kAudioUnitRenderAction_OutputIsSilence;
  • trunk/Source/WebCore/platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h

    r254505 r254516  
    4949    // AudioMediaStreamTrackRenderer
    5050    void pushSamples(const WTF::MediaTime&, const PlatformAudioData&, const AudioStreamDescription&, size_t) final;
    51     void start() final;
    5251    void stop() final;
    5352    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 };
    6869};
    6970
  • trunk/Source/WebKit/ChangeLog

    r254515 r254516  
     12020-01-14  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r254505.
     4
     5        Breaks watchOS/tvOS/Catalyst builds.
     6
     7        Reverted changeset:
     8
     9        "Add support for MediaStream audio track rendering in
     10        GPUProcess"
     11        https://bugs.webkit.org/show_bug.cgi?id=206175
     12        https://trac.webkit.org/changeset/254505
     13
    1142020-01-14  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
    215
  • trunk/Source/WebKit/DerivedSources-input.xcfilelist

    r254505 r254516  
    2020$(PROJECT_DIR)/GPUProcess/media/RemoteMediaResourceManager.messages.in
    2121$(PROJECT_DIR)/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in
    22 $(PROJECT_DIR)/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in
    23 $(PROJECT_DIR)/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.messages.in
    2422$(PROJECT_DIR)/GPUProcess/webrtc/RemoteMediaRecorder.messages.in
    2523$(PROJECT_DIR)/GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in
  • trunk/Source/WebKit/DerivedSources-output.xcfilelist

    r254505 r254516  
    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
    129123$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp
    130124$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/RemoteLayerTreeDrawingAreaProxyMessages.h
  • trunk/Source/WebKit/DerivedSources.make

    r254505 r254516  
    141141    PluginProcessProxy \
    142142    PluginProxy \
    143     RemoteAudioMediaStreamTrackRendererManager \
    144     RemoteAudioMediaStreamTrackRenderer \
    145143    RemoteLayerTreeDrawingAreaProxy \
    146144    RemoteMediaPlayerManager \
  • trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp

    r254505 r254516  
    3737#include "LibWebRTCCodecsProxyMessages.h"
    3838#include "Logging.h"
    39 #include "RemoteAudioMediaStreamTrackRendererManager.h"
    40 #include "RemoteAudioMediaStreamTrackRendererManagerMessages.h"
    41 #include "RemoteAudioMediaStreamTrackRendererMessages.h"
    4239#include "RemoteLayerTreeDrawingAreaProxyMessages.h"
    4340#include "RemoteMediaPlayerManagerProxy.h"
     
    152149    return *m_remoteMediaRecorderManager;
    153150}
    154 
    155 #if ENABLE(VIDEO_TRACK)
    156 RemoteAudioMediaStreamTrackRendererManager& GPUConnectionToWebProcess::audioTrackRendererManager()
    157 {
    158     if (!m_audioTrackRendererManager)
    159         m_audioTrackRendererManager = makeUnique<RemoteAudioMediaStreamTrackRendererManager>();
    160 
    161     return *m_audioTrackRendererManager;
    162 }
    163 #endif
    164151#endif
    165152
     
    196183        return;
    197184    }
    198 #if PLATFORM(COCOA) && ENABLE(VIDEO_TRACK)
    199     if (decoder.messageReceiverName() == Messages::RemoteAudioMediaStreamTrackRendererManager::messageReceiverName()) {
    200         audioTrackRendererManager().didReceiveMessageFromWebProcess(connection, decoder);
    201         return;
    202     }
    203     if (decoder.messageReceiverName() == Messages::RemoteAudioMediaStreamTrackRenderer::messageReceiverName()) {
    204         audioTrackRendererManager().didReceiveRendererMessage(connection, decoder);
    205         return;
    206     }
    207 #endif
    208185#endif
    209186#if PLATFORM(COCOA) && USE(LIBWEBRTC)
  • trunk/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h

    r254505 r254516  
    4141class GPUProcess;
    4242class LibWebRTCCodecsProxy;
    43 class RemoteAudioMediaStreamTrackRendererManager;
    4443class RemoteMediaPlayerManagerProxy;
    4544class RemoteMediaRecorderManager;
     
    7574    UserMediaCaptureManagerProxy& userMediaCaptureManagerProxy();
    7675    RemoteMediaRecorderManager& mediaRecorderManager();
    77 #if ENABLE(VIDEO_TRACK)
    78     RemoteAudioMediaStreamTrackRendererManager& audioTrackRendererManager();
    79 #endif
    8076#endif
    8177
     
    9793    std::unique_ptr<UserMediaCaptureManagerProxy> m_userMediaCaptureManagerProxy;
    9894    std::unique_ptr<RemoteMediaRecorderManager> m_remoteMediaRecorderManager;
    99 #if ENABLE(VIDEO_TRACK)
    100     std::unique_ptr<RemoteAudioMediaStreamTrackRendererManager> m_audioTrackRendererManager;
    101 #endif
    10295#endif
    10396#if PLATFORM(COCOA) && USE(LIBWEBRTC)
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r254505 r254516  
    219219        'WebCore::SWServerConnectionIdentifier',
    220220        'WebKit::ActivityStateChangeID',
    221         'WebKit::AudioMediaStreamTrackRendererIdentifier',
    222221        'WebKit::LayerHostingContextID',
    223222        'WebKit::MediaPlayerPrivateRemoteIdentifier',
  • trunk/Source/WebKit/Sources.txt

    r254505 r254516  
    2525GPUProcess/GPUConnectionToWebProcess.cpp
    2626GPUProcess/GPUProcessCreationParameters.cpp
    27 GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp
    28 GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp
    2927GPUProcess/webrtc/RemoteMediaRecorder.cpp
    3028GPUProcess/webrtc/RemoteMediaRecorderManager.cpp
     
    524522WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp
    525523WebProcess/GPU/webrtc/MediaRecorderProvider.cpp
    526 WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp
    527524
    528525WebProcess/Network/NetworkProcessConnection.cpp
  • trunk/Source/WebKit/SourcesCocoa.txt

    r254505 r254516  
    640640LibWebRTCCodecsProxyMessageReceiver.cpp
    641641LibWebRTCCodecsMessageReceiver.cpp
    642 RemoteAudioMediaStreamTrackRendererManagerMessageReceiver.cpp
    643 RemoteAudioMediaStreamTrackRendererMessageReceiver.cpp
    644642RemoteMediaRecorderMessageReceiver.cpp
    645643RemoteMediaRecorderManagerMessageReceiver.cpp
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r254505 r254516  
    33813381                41D5C6D8238EB20D00B9B3CB /* ServiceWorkerSoftUpdateLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerSoftUpdateLoader.h; sourceTree = "<group>"; };
    33823382                41D5C6D9238EB20E00B9B3CB /* ServiceWorkerSoftUpdateLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerSoftUpdateLoader.cpp; sourceTree = "<group>"; };
    3383                 41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = RemoteAudioMediaStreamTrackRenderer.messages.in; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in; sourceTree = SOURCE_ROOT; };
    3384                 41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteAudioMediaStreamTrackRenderer.h; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h; sourceTree = SOURCE_ROOT; };
    3385                 41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteAudioMediaStreamTrackRenderer.cpp; path = GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp; sourceTree = SOURCE_ROOT; };
    3386                 41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RemoteAudioMediaStreamTrackRendererManager.messages.in; sourceTree = "<group>"; };
    3387                 41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteAudioMediaStreamTrackRendererManager.cpp; sourceTree = "<group>"; };
    3388                 41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteAudioMediaStreamTrackRendererManager.h; sourceTree = "<group>"; };
    33893383                41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkRTCProvider.h; sourceTree = "<group>"; };
    33903384                41DC45951E3D6E1E00B11F51 /* NetworkRTCProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkRTCProvider.cpp; sourceTree = "<group>"; };
     
    34073401                41FBE823206DA79C000F0741 /* NetworkContentRuleListManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NetworkContentRuleListManager.messages.in; sourceTree = "<group>"; };
    34083402                41FBE824206DA79C000F0741 /* NetworkContentRuleListManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkContentRuleListManager.cpp; sourceTree = "<group>"; };
    3409                 41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRenderer.h; sourceTree = "<group>"; };
    3410                 41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioMediaStreamTrackRenderer.cpp; sourceTree = "<group>"; };
    3411                 41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioMediaStreamTrackRendererIdentifier.h; sourceTree = "<group>"; };
    34123403                4450AEBF1DC3FAE5009943F2 /* SharedMemoryCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemoryCocoa.cpp; sourceTree = "<group>"; };
    34133404                4459984122833E6000E61373 /* SyntheticEditingCommandType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntheticEditingCommandType.h; sourceTree = "<group>"; };
     
    71867177                        isa = PBXGroup;
    71877178                        children = (
    7188                                 41FCD6AE23CCC26100C62567 /* AudioMediaStreamTrackRenderer.cpp */,
    7189                                 41FCD6AD23CCC26000C62567 /* AudioMediaStreamTrackRenderer.h */,
    7190                                 41FCD6AF23CCC26100C62567 /* AudioMediaStreamTrackRendererIdentifier.h */,
    71917179                                4172198A23B6128200AE5686 /* LibWebRTCCodecs.cpp */,
    71927180                                4172198923B6128200AE5686 /* LibWebRTCCodecs.h */,
     
    72097197                                41E0A7C723B6397900561060 /* LibWebRTCCodecsProxy.messages.in */,
    72107198                                41E0A7C823B6397900561060 /* LibWebRTCCodecsProxy.mm */,
    7211                                 41D6455423CCB92200486E0E /* RemoteAudioMediaStreamTrackRenderer.cpp */,
    7212                                 41D6455323CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.h */,
    7213                                 41D6455223CCB92100486E0E /* RemoteAudioMediaStreamTrackRenderer.messages.in */,
    7214                                 41D6455623CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.cpp */,
    7215                                 41D6455723CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.h */,
    7216                                 41D6455523CCB96900486E0E /* RemoteAudioMediaStreamTrackRendererManager.messages.in */,
    72177199                                4176E89D23C376D5003E83FE /* RemoteMediaRecorder.cpp */,
    72187200                                4176E89823C36677003E83FE /* RemoteMediaRecorder.h */,
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp

    r254505 r254516  
    2929#if ENABLE(GPU_PROCESS)
    3030
    31 #include "AudioMediaStreamTrackRenderer.h"
    3231#include "MediaPlayerPrivateRemote.h"
    33 #include "RemoteAudioMediaStreamTrackRenderer.h"
    3432#include "RemoteMediaPlayerConfiguration.h"
    3533#include "RemoteMediaPlayerMIMETypeCache.h"
     
    363361
    364362    RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback(settings.useGPUProcessForMedia() ? WTFMove(registerEngine) : RemoteMediaPlayerSupport::RegisterRemotePlayerCallback());
    365 
    366     if (settings.useGPUProcessForMedia())
    367         WebCore::AudioMediaStreamTrackRenderer::setCreator(WebKit::AudioMediaStreamTrackRenderer::create);
    368363}
    369364
Note: See TracChangeset for help on using the changeset viewer.