[webkit-changes] [WebKit/WebKit] d25720: Take 2: [iOS] Implement PlaybackSessionInterfaceAV...

aestes noreply at github.com
Wed Dec 18 15:36:15 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d257206c8d155085de2eb6733c646207d388fae5
      https://github.com/WebKit/WebKit/commit/d257206c8d155085de2eb6733c646207d388fae5
  Author: Andy Estes <aestes at apple.com>
  Date:   2024-12-18 (Wed, 18 Dec 2024)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/PlatformTimeRanges.h
    A Source/WebCore/platform/graphics/cocoa/PlatformTimeRangesCocoa.mm
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm
    M Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm

  Log Message:
  -----------
  Take 2: [iOS] Implement PlaybackSessionInterfaceAVKit in terms of AVMediaSource
https://bugs.webkit.org/show_bug.cgi?id=284799
rdar://141601785

Reviewed by Eric Carlson.

Implemented PlaybackSessionInterfaceAVKit in terms of a content source object (WebAVContentSource)
that conforms to AVMediaSource. AVMediaSource declares a number of read-only properties that are
expected to be key-value observable, and WebAVContentSource conforms by declaring readwrite
properties that are set by various PlaybackSessionInterfaceAVKit functions. AVMediaSource methods
(e.g., -play) are implemented by calling into PlaybackSessionModel.

To avoid duplicating the method from PlaybackSessionInterfaceAVKitLegacy that converts a TimeRanges
to an NSArray of NSValues, a helper function was added to PlatformTimeRanges.

* Source/WebCore/PAL/pal/spi/cocoa/AVKitSPI.h:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/PlatformTimeRanges.h:
* Source/WebCore/platform/graphics/cocoa/PlatformTimeRangesCocoa.mm: Copied from Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm.
(WebCore::makeNSArray):
* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h:
* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm:
(-[WebAVListItem initWithLocalizedTitle:]):
(-[WebAVContentSource initWithModel:]):
(-[WebAVContentSource beginScanningBackward]):
(-[WebAVContentSource beginScanningForward]):
(-[WebAVContentSource endScanningBackward]):
(-[WebAVContentSource endScanningForward]):
(-[WebAVContentSource beginScrubbing]):
(-[WebAVContentSource endScrubbing]):
(-[WebAVContentSource pause]):
(-[WebAVContentSource play]):
(-[WebAVContentSource seekTo:]):
(-[WebAVContentSource setCaptionContentInsets:]):
(-[WebAVContentSource updateCurrentAudioOption:]):
(-[WebAVContentSource updateCurrentCaptionOption:]):
(-[WebAVContentSource updateMuted:]):
(-[WebAVContentSource updateVolume:]):
(WebCore::nowPlayingMetadataObserver):
(WebCore::PlaybackSessionInterfaceAVKit::durationChanged):
(WebCore::PlaybackSessionInterfaceAVKit::currentTimeChanged):
(WebCore::PlaybackSessionInterfaceAVKit::rateChanged):
(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):
(WebCore::PlaybackSessionInterfaceAVKit::canPlayFastReverseChanged):
(WebCore::PlaybackSessionInterfaceAVKit::audioMediaSelectionOptionsChanged):
(WebCore::PlaybackSessionInterfaceAVKit::legibleMediaSelectionOptionsChanged):
(WebCore::PlaybackSessionInterfaceAVKit::audioMediaSelectionIndexChanged):
(WebCore::PlaybackSessionInterfaceAVKit::legibleMediaSelectionIndexChanged):
(WebCore::PlaybackSessionInterfaceAVKit::mutedChanged):
(WebCore::PlaybackSessionInterfaceAVKit::volumeChanged):
(WebCore::PlaybackSessionInterfaceAVKit::startObservingNowPlayingMetadata):
(WebCore::PlaybackSessionInterfaceAVKit::stopObservingNowPlayingMetadata):
(WebCore::PlaybackSessionInterfaceAVKit::nowPlayingMetadataChanged):
* Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKitLegacy.mm:
(WebCore::PlaybackSessionInterfaceAVKitLegacy::seekableRangesChanged):

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