Title: [267870] trunk
Revision
267870
Author
[email protected]
Date
2020-10-02 02:38:52 -0700 (Fri, 02 Oct 2020)

Log Message

Add AVAssetWriter SPI header
https://bugs.webkit.org/show_bug.cgi?id=217169
<rdar://problem/69793050>

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, include SPI header instead of private SDK header.

* platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/spi/cocoa/AVAssetWriterSPI.h: Added.

Source/WTF:

* wtf/PlatformHave.h:
Remove dependency on AVAssetWriter_private.h.
Introduce HAVE_AVASSETWRITERDELEGATE_API for older OSes that only have delegate as SPI.

LayoutTests:

Enable tests by default on Catalina+, disable them on Mojave and WK1.
Disable tests for iOS13.

* TestExpectations:
* platform/ios-13/TestExpectations:
* platform/mac/TestExpectations:
* platform/mac-wk1/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (267869 => 267870)


--- trunk/LayoutTests/ChangeLog	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/LayoutTests/ChangeLog	2020-10-02 09:38:52 UTC (rev 267870)
@@ -1,3 +1,19 @@
+2020-10-02  Youenn Fablet  <[email protected]>
+
+        Add AVAssetWriter SPI header
+        https://bugs.webkit.org/show_bug.cgi?id=217169
+        <rdar://problem/69793050>
+
+        Reviewed by Eric Carlson.
+
+        Enable tests by default on Catalina+, disable them on Mojave and WK1.
+        Disable tests for iOS13.
+
+        * TestExpectations:
+        * platform/ios-13/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/mac-wk1/TestExpectations:
+
 2020-10-01  Sam Weinig  <[email protected]>
 
         [WebIDL] Add support for non-nullable optional wrapper type arguments to operations

Modified: trunk/LayoutTests/TestExpectations (267869 => 267870)


--- trunk/LayoutTests/TestExpectations	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/LayoutTests/TestExpectations	2020-10-02 09:38:52 UTC (rev 267870)
@@ -3374,11 +3374,6 @@
 webgl/1.0.3/conformance/canvas/rapid-resizing.html [ Skip ]
 webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html [ Skip ]
 
-# Not supported by default
-http/wpt/mediarecorder [ Skip ]
-imported/w3c/web-platform-tests/mediacapture-record [ Skip ]
-fast/history/page-cache-media-recorder.html [ Skip ]
-
 # WebGL 2 Conformance Suite rules for regular bots post ANGLE backend adoption.
 # DEQP is skipped on the main fleet of bots because of the long run time.
 webgl/2.0.0/deqp [ Skip ]

Modified: trunk/LayoutTests/platform/ios-13/TestExpectations (267869 => 267870)


--- trunk/LayoutTests/platform/ios-13/TestExpectations	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/LayoutTests/platform/ios-13/TestExpectations	2020-10-02 09:38:52 UTC (rev 267870)
@@ -11,5 +11,10 @@
 http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html [ Skip ]
 http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html [ Skip ]
 
+# MediaRecorder requires iOS14 only API.
+http/wpt/mediarecorder [ Skip ]
+imported/w3c/web-platform-tests/mediacapture-record [ Skip ]
+fast/history/page-cache-media-recorder.html [ Skip ]
+
 # This test requires the OS to have a font that supports the Ahom language.
 webkit.org/b/216024 fast/text/ahom.html [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/platform/mac/TestExpectations (267869 => 267870)


--- trunk/LayoutTests/platform/mac/TestExpectations	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2020-10-02 09:38:52 UTC (rev 267870)
@@ -1653,9 +1653,9 @@
 [ Catalina+ ] fast/text/design-system-ui-15.html [ Pass ]
 [ Catalina+ ] fast/text/design-system-ui-16.html [ Pass ]
 
-[ Catalina+ ] http/wpt/mediarecorder [ Pass Failure ] 
-[ Catalina+ ] imported/w3c/web-platform-tests/mediacapture-record [ Pass Failure ]
-[ Catalina+ ] fast/history/page-cache-media-recorder.html [ Pass Failure ]
+[ Mojave ] http/wpt/mediarecorder [ Skip ]
+[ Mojave ] imported/w3c/web-platform-tests/mediacapture-record [ Skip ]
+[ Mojave ] fast/history/page-cache-media-recorder.html [ Skip ]
 
 webkit.org/b/200128 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html [ Timeout Pass ]
 

Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (267869 => 267870)


--- trunk/LayoutTests/platform/mac-wk1/TestExpectations	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations	2020-10-02 09:38:52 UTC (rev 267870)
@@ -65,6 +65,10 @@
 http/tests/navigation/page-cache-getUserMedia-pending-promise.html [ Skip ]
 http/tests/navigation/page-cache-mediastream.html [ Skip ]
 
+http/wpt/mediarecorder [ Skip ]
+imported/w3c/web-platform-tests/mediacapture-record [ Skip ]
+fast/history/page-cache-media-recorder.html [ Skip ]
+
 http/wpt/audio-output [ Skip ]
 imported/w3c/web-platform-tests/audio-output [ Skip ]
 

Modified: trunk/Source/WTF/ChangeLog (267869 => 267870)


--- trunk/Source/WTF/ChangeLog	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WTF/ChangeLog	2020-10-02 09:38:52 UTC (rev 267870)
@@ -1,3 +1,15 @@
+2020-10-02  Youenn Fablet  <[email protected]>
+
+        Add AVAssetWriter SPI header
+        https://bugs.webkit.org/show_bug.cgi?id=217169
+        <rdar://problem/69793050>
+
+        Reviewed by Eric Carlson.
+
+        * wtf/PlatformHave.h:
+        Remove dependency on AVAssetWriter_private.h.
+        Introduce HAVE_AVASSETWRITERDELEGATE_API for older OSes that only have delegate as SPI.
+
 2020-10-01  Truitt Savell  <[email protected]>
 
         Unreviewed, reverting r267841.

Modified: trunk/Source/WTF/wtf/PlatformHave.h (267869 => 267870)


--- trunk/Source/WTF/wtf/PlatformHave.h	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WTF/wtf/PlatformHave.h	2020-10-02 09:38:52 UTC (rev 267870)
@@ -545,10 +545,14 @@
 #define HAVE_OS_SIGNPOST 1
 #endif
 
-#if ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS)) && (defined __has_include && __has_include(<AVFoundation/AVAssetWriter_Private.h>))
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000)
 #define HAVE_AVASSETWRITERDELEGATE 1
 #endif
 
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000) || (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 140000)
+#define HAVE_AVASSETWRITERDELEGATE_API 1
+#endif
+
 #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 110000
 #define HAVE_AVPLAYER_VIDEORANGEOVERRIDE 1
 #endif

Modified: trunk/Source/WebCore/ChangeLog (267869 => 267870)


--- trunk/Source/WebCore/ChangeLog	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WebCore/ChangeLog	2020-10-02 09:38:52 UTC (rev 267870)
@@ -1,3 +1,15 @@
+2020-10-02  Youenn Fablet  <[email protected]>
+
+        Add AVAssetWriter SPI header
+        https://bugs.webkit.org/show_bug.cgi?id=217169
+        <rdar://problem/69793050>
+
+        Reviewed by Eric Carlson.
+
+        No change of behavior, include SPI header instead of private SDK header.
+
+        * platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
+
 2020-10-02  Kimmo Kinnunen  <[email protected]>
 
         [iOS WK1] Crashes when using ANGLE WebGL from another thread

Modified: trunk/Source/WebCore/PAL/ChangeLog (267869 => 267870)


--- trunk/Source/WebCore/PAL/ChangeLog	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WebCore/PAL/ChangeLog	2020-10-02 09:38:52 UTC (rev 267870)
@@ -1,3 +1,14 @@
+2020-10-02  Youenn Fablet  <[email protected]>
+
+        Add AVAssetWriter SPI header
+        https://bugs.webkit.org/show_bug.cgi?id=217169
+        <rdar://problem/69793050>
+
+        Reviewed by Eric Carlson.
+
+        * PAL.xcodeproj/project.pbxproj:
+        * pal/spi/cocoa/AVAssetWriterSPI.h: Added.
+
 2020-10-01  Truitt Savell  <[email protected]>
 
         Unreviewed, reverting r267841.

Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (267869 => 267870)


--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2020-10-02 09:38:52 UTC (rev 267870)
@@ -121,6 +121,7 @@
 		31308B1420A21705003FB929 /* SystemPreviewSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 31308B1320A21705003FB929 /* SystemPreviewSPI.h */; };
 		31647FB0251759DD0010F8FB /* OpenGLSoftLinkCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31647FAE251759DB0010F8FB /* OpenGLSoftLinkCocoa.mm */; };
 		31647FB1251759EF0010F8FB /* OpenGLSoftLinkCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 31647FAF251759DC0010F8FB /* OpenGLSoftLinkCocoa.h */; };
+		411A9AC12525D4CA00807D7E /* AVAssetWriterSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 411A9AC02525D4CA00807D7E /* AVAssetWriterSPI.h */; };
 		416E995323DAE6BE00E871CB /* AudioToolboxSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 416E995123DAE6BD00E871CB /* AudioToolboxSoftLink.cpp */; };
 		416E995423DAE6BE00E871CB /* AudioToolboxSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E995223DAE6BE00E871CB /* AudioToolboxSoftLink.h */; };
 		41E1F344248A6A000022D5DE /* VideoToolboxSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 416E995523DAEFF700E871CB /* VideoToolboxSoftLink.cpp */; };
@@ -310,6 +311,7 @@
 		31647FAE251759DB0010F8FB /* OpenGLSoftLinkCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenGLSoftLinkCocoa.mm; sourceTree = "<group>"; };
 		31647FAF251759DC0010F8FB /* OpenGLSoftLinkCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenGLSoftLinkCocoa.h; sourceTree = "<group>"; };
 		37119A7820CCB5FF002C6DC9 /* WebKitTargetConditionals.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitTargetConditionals.xcconfig; sourceTree = "<group>"; };
+		411A9AC02525D4CA00807D7E /* AVAssetWriterSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVAssetWriterSPI.h; sourceTree = "<group>"; };
 		416E995123DAE6BD00E871CB /* AudioToolboxSoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioToolboxSoftLink.cpp; sourceTree = "<group>"; };
 		416E995223DAE6BE00E871CB /* AudioToolboxSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioToolboxSoftLink.h; sourceTree = "<group>"; };
 		416E995523DAEFF700E871CB /* VideoToolboxSoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VideoToolboxSoftLink.cpp; sourceTree = "<group>"; };
@@ -449,6 +451,7 @@
 				576CA9D522B854AB0030143C /* AppSSOSPI.h */,
 				2D02E93B2056FAA700A13797 /* AudioToolboxSPI.h */,
 				572A107722B456F500F410C8 /* AuthKitSPI.h */,
+				411A9AC02525D4CA00807D7E /* AVAssetWriterSPI.h */,
 				0C7785701F45130F00F4EBB6 /* AVFoundationSPI.h */,
 				0C2DA1221F3BEB4900DBC317 /* AVKitSPI.h */,
 				0C2DA1231F3BEB4900DBC317 /* CFNSURLConnectionSPI.h */,
@@ -765,6 +768,7 @@
 				416E995423DAE6BE00E871CB /* AudioToolboxSoftLink.h in Headers */,
 				2D02E93C2056FAA700A13797 /* AudioToolboxSPI.h in Headers */,
 				572A107822B456F500F410C8 /* AuthKitSPI.h in Headers */,
+				411A9AC12525D4CA00807D7E /* AVAssetWriterSPI.h in Headers */,
 				077E87B2226A460300A2AFF0 /* AVFoundationSoftLink.h in Headers */,
 				0C7785891F45130F00F4EBB6 /* AVFoundationSPI.h in Headers */,
 				0C2DA13E1F3BEB4900DBC317 /* AVKitSPI.h in Headers */,

Added: trunk/Source/WebCore/PAL/pal/spi/cocoa/AVAssetWriterSPI.h (0 => 267870)


--- trunk/Source/WebCore/PAL/pal/spi/cocoa/AVAssetWriterSPI.h	                        (rev 0)
+++ trunk/Source/WebCore/PAL/pal/spi/cocoa/AVAssetWriterSPI.h	2020-10-02 09:38:52 UTC (rev 267870)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if USE(APPLE_INTERNAL_SDK)
+
+#import <AVFoundation/AVAssetWriter_Private.h>
+
+#else
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AVFragmentedMediaDataReport : NSObject
+@end
+
+#if !HAVE(AVASSETWRITERDELEGATE_API)
+@protocol AVAssetWriterDelegate <NSObject>
+@optional
+- (void)assetWriter:(AVAssetWriter *)assetWriter didProduceFragmentedHeaderData:(NSData *)fragmentedHeaderData;
+- (void)assetWriter:(AVAssetWriter *)assetWriter didProduceFragmentedMediaData:(NSData *)fragmentedMediaData fragmentedMediaDataReport:(AVFragmentedMediaDataReport *)fragmentedMediaDataReport;
+@end
+#endif
+
+@interface AVAssetWriter ()
+- (nullable instancetype)initWithFileType:(NSString * _Nullable)outputFileType error:(NSError * _Nullable * _Nullable)outError;
+- (void)flush;
+#if !HAVE(AVASSETWRITERDELEGATE_API)
+@property (weak, nullable) id <AVAssetWriterDelegate> delegate SPI_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0));
+#endif
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // USE(APPLE_INTERNAL_SDK)

Modified: trunk/Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm (267869 => 267870)


--- trunk/Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm	2020-10-02 07:05:42 UTC (rev 267869)
+++ trunk/Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm	2020-10-02 09:38:52 UTC (rev 267870)
@@ -37,8 +37,8 @@
 #include "WebAudioBufferList.h"
 #include <AVFoundation/AVAssetWriter.h>
 #include <AVFoundation/AVAssetWriterInput.h>
-#include <AVFoundation/AVAssetWriter_Private.h>
 #include <pal/avfoundation/MediaTimeAVFoundation.h>
+#include <pal/spi/cocoa/AVAssetWriterSPI.h>
 #include <wtf/BlockPtr.h>
 #include <wtf/CompletionHandler.h>
 #include <wtf/FileSystem.h>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to