[webkit-changes] [WebKit/WebKit] d7df52: [MediaSource] Use an AVSampleBufferVideoRenderer w...

aestes noreply at github.com
Sat Feb 17 15:43:58 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d7df52b60ed83af41b0534cca154a3ac5a0533de
      https://github.com/WebKit/WebKit/commit/d7df52b60ed83af41b0534cca154a3ac5a0533de
  Author: Andy Estes <aestes at apple.com>
  Date:   2024-02-17 (Sat, 17 Feb 2024)

  Changed paths:
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/avfoundation/WebAVSampleBufferListener.h
    M Source/WebCore/platform/graphics/avfoundation/WebAVSampleBufferListener.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm
    A Source/WebCore/platform/graphics/cocoa/WebSampleBufferVideoRendering.h
    M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm

  Log Message:
  -----------
  [MediaSource] Use an AVSampleBufferVideoRenderer when a video receiver endpoint is available
https://bugs.webkit.org/show_bug.cgi?id=269621
rdar://123119816

Reviewed by Jean-Yves Avenard.

When MediaPlayer has a VideoReceiverEndpoint, use it to create a FigVideoTarget and add it to
MediaPlayerPrivateMediaSourceAVFObjC's AVSampleBufferVideoRenderer. Since
AVSampleBufferDisplayLayer's video renderer does not support adding video targets, this patch
teaches MediaPlayerPrivateMediaSourceAVFObjC to create an AVSampleBufferVideoRenderer when a
VideoReceiverEndpoint is available. This required abstracting the common interface between
AVSampleBufferDisplayLayer and AVSampleBufferVideoRenderer into @protocol WebSampleBufferVideoRendering
and passing that type to clients of MediaPlayerPrivateMediaSourceAVFObjC.

Note that MediaPlayerPrivateWebM has not been taught to create a AVSampleBufferVideoRenderer;
that will occur in a follow-up fix.

* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h:
Declared and soft-linked AVSampleBufferVideoRenderer notification names.

* Source/WebCore/platform/graphics/avfoundation/WebAVSampleBufferListener.h:
* Source/WebCore/platform/graphics/avfoundation/WebAVSampleBufferListener.mm:
* Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h:
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
Changed to work in terms of WebSampleBufferVideoRendering.

* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
Taught to ensure and destroy a AVSampleBufferVideoRenderer and changed to work in terms of
WebSampleBufferVideoRendering.

* Source/WebCore/platform/graphics/cocoa/WebSampleBufferVideoRendering.h: Added. Defines a protocol
that encapsulates the common interface subset of AVSampleBufferDisplayLayer and AVSampleBufferVideoRenderer.

Canonical link: https://commits.webkit.org/274931@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