[webkit-changes] [WebKit/WebKit] e74081: Make AudioMediaStreamTrackRenderer ref counted

youennf noreply at github.com
Sun Dec 1 22:41:38 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e7408133b6cfe3982705fdca5e25a3192beb73a6
      https://github.com/WebKit/WebKit/commit/e7408133b6cfe3982705fdca5e25a3192beb73a6
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
    M Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
    M Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.cpp
    M Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.h
    M Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.cpp
    M Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.h
    M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp
    M Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h

  Log Message:
  -----------
  Make AudioMediaStreamTrackRenderer ref counted
rdar://140622949
https://bugs.webkit.org/show_bug.cgi?id=283757

Reviewed by Jean-Yves Avenard.

We make AudioMediaStreamTrackRenderer ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr.
This allows us to  take valid weak pointers and protect the object when using it.
We update AudioTrackPrivateMediaStream to make benefit of it as well.

Drive by improvement, we nullify the renderer within AudioTrackPrivateMediaStream::clear to deallocate sooner the renderer.

* Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.cpp:
(WebCore::AudioMediaStreamTrackRenderer::create):
* Source/WebCore/platform/mediastream/AudioMediaStreamTrackRenderer.h:
* Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.cpp:
(WebCore::audioModuleFromSource):
(WebCore::AudioTrackPrivateMediaStream::createRenderer):
(WebCore::AudioTrackPrivateMediaStream::clear):
(WebCore::AudioTrackPrivateMediaStream::setVolume):
(WebCore::AudioTrackPrivateMediaStream::setAudioOutputDevice):
(WebCore::AudioTrackPrivateMediaStream::volume const):
(WebCore::AudioTrackPrivateMediaStream::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStream::updateRenderer):
(WebCore::AudioTrackPrivateMediaStream::startRenderer):
(WebCore::AudioTrackPrivateMediaStream::stopRenderer):
(WebCore::AudioTrackPrivateMediaStream::createNewRenderer):
* Source/WebCore/platform/mediastream/AudioTrackPrivateMediaStream.h:
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::start):
(WebCore::AudioMediaStreamTrackRendererCocoa::rendererUnit):
(WebCore::AudioMediaStreamTrackRendererCocoa::stop):
(WebCore::AudioMediaStreamTrackRendererCocoa::setVolume):
(WebCore::AudioMediaStreamTrackRendererCocoa::reset):
(WebCore::AudioMediaStreamTrackRendererCocoa::setRegisteredDataSource):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
* Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h:

Canonical link: https://commits.webkit.org/287205@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list