[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