Diff
Modified: trunk/Source/WebCore/ChangeLog (220576 => 220577)
--- trunk/Source/WebCore/ChangeLog 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/ChangeLog 2017-08-11 04:22:59 UTC (rev 220577)
@@ -1,3 +1,26 @@
+2017-08-10 Dan Bernstein <m...@apple.com>
+
+ Fixed building for macOS 10.12 with the macOS 10.13 SDK.
+
+ Suppressed the unguarded-availability-new warning around uses of AVSampleBufferAudioRenderer
+ and AVSampleBufferRenderSynchronizer. Even though the 10.13 SDK declares them as available
+ starting in that release, they have been available as SPI earlier.
+
+ * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableAudioSample):
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer):
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer):
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+ (-[WebAVSampleBufferErrorListener beginObservingRenderer:]):
+ (-[WebAVSampleBufferErrorListener stopObservingRenderer:]):
+ (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
+ (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+ (WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):
+ (WebCore::SourceBufferPrivateAVFObjC::flush):
+
2017-08-10 Brady Eidson <beid...@apple.com>
Rename the source files for the WTF persistent coders.
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h (220576 => 220577)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h 2017-08-11 04:22:59 UTC (rev 220577)
@@ -54,7 +54,11 @@
// SourceBufferPrivateAVFObjCErrorClient
void layerDidReceiveError(AVSampleBufferDisplayLayer *, NSError *, bool& shouldIgnore) override;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void rendererDidReceiveError(AVSampleBufferAudioRenderer *, NSError *, bool& shouldIgnore) override;
+#pragma clang diagnostic pop
void addSourceBuffer(SourceBufferPrivateAVFObjC*);
void removeSourceBuffer(SourceBufferPrivateAVFObjC*);
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h (220576 => 220577)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h 2017-08-11 04:22:59 UTC (rev 220577)
@@ -71,8 +71,12 @@
static void getSupportedTypes(HashSet<String, ASCIICaseInsensitiveHash>& types);
static MediaPlayer::SupportsType supportsType(const MediaEngineSupportParameters&);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void addAudioRenderer(AVSampleBufferAudioRenderer*);
void removeAudioRenderer(AVSampleBufferAudioRenderer*);
+#pragma clang diagnostic pop
MediaPlayer::NetworkState networkState() const override;
MediaPlayer::ReadyState readyState() const override;
@@ -85,7 +89,11 @@
void setLoadingProgresssed(bool flag) { m_loadingProgressed = flag; }
void setHasAvailableVideoFrame(bool);
bool hasAvailableVideoFrame() const override;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void setHasAvailableAudioSample(AVSampleBufferAudioRenderer*, bool);
+#pragma clang diagnostic pop
bool allRenderersHaveAvailableSamples() const { return m_allRenderersHaveAvailableSamples; }
void updateAllRenderersHaveAvailableSamples();
void durationChanged();
@@ -252,8 +260,12 @@
struct AudioRendererProperties {
bool hasAudibleSample { false };
};
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
HashMap<RetainPtr<AVSampleBufferAudioRenderer>, AudioRendererProperties> m_sampleBufferAudioRendererMap;
RetainPtr<AVSampleBufferRenderSynchronizer> m_synchronizer;
+#pragma clang diagnostic pop
RetainPtr<id> m_timeJumpedObserver;
RetainPtr<id> m_durationObserver;
RetainPtr<AVStreamSession> m_streamSession;
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (220576 => 220577)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm 2017-08-11 04:22:59 UTC (rev 220577)
@@ -66,9 +66,17 @@
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVAsset)
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVURLAsset)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVSampleBufferAudioRenderer)
+#pragma clang diagnostic pop
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVSampleBufferDisplayLayer)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVSampleBufferRenderSynchronizer)
+#pragma clang diagnostic pop
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVStreamDataParser)
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVStreamSession);
SOFT_LINK_CLASS_OPTIONAL(AVFoundation, AVVideoPerformanceMetrics)
@@ -793,7 +801,11 @@
}
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableAudioSample(AVSampleBufferAudioRenderer* renderer, bool flag)
+#pragma clang diagnostic pop
{
auto iter = m_sampleBufferAudioRendererMap.find(renderer);
if (iter == m_sampleBufferAudioRendererMap.end())
@@ -995,7 +1007,11 @@
m_player->networkStateChanged();
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer(AVSampleBufferAudioRenderer* audioRenderer)
+#pragma clang diagnostic pop
{
if (m_sampleBufferAudioRendererMap.contains(audioRenderer))
return;
@@ -1010,7 +1026,11 @@
m_player->client().mediaPlayerRenderingModeChanged(m_player);
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer(AVSampleBufferAudioRenderer* audioRenderer)
+#pragma clang diagnostic pop
{
auto iter = m_sampleBufferAudioRendererMap.find(audioRenderer);
if (iter == m_sampleBufferAudioRendererMap.end())
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h (220576 => 220577)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h 2017-08-11 04:22:59 UTC (rev 220577)
@@ -68,7 +68,11 @@
public:
virtual ~SourceBufferPrivateAVFObjCErrorClient() { }
virtual void layerDidReceiveError(AVSampleBufferDisplayLayer *, NSError *, bool& shouldIgnore) = 0;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
virtual void rendererDidReceiveError(AVSampleBufferAudioRenderer *, NSError *, bool& shouldIgnore) = 0;
+#pragma clang diagnostic pop
};
class SourceBufferPrivateAVFObjC final : public SourceBufferPrivate {
@@ -109,7 +113,11 @@
void registerForErrorNotifications(SourceBufferPrivateAVFObjCErrorClient*);
void unregisterForErrorNotifications(SourceBufferPrivateAVFObjCErrorClient*);
void layerDidReceiveError(AVSampleBufferDisplayLayer *, NSError *);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void rendererDidReceiveError(AVSampleBufferAudioRenderer *, NSError *);
+#pragma clang diagnostic pop
void setVideoLayer(AVSampleBufferDisplayLayer*);
void setDecompressionSession(WebCoreDecompressionSession*);
@@ -139,7 +147,11 @@
void destroyRenderers();
void flushVideo();
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void flush(AVSampleBufferAudioRenderer *);
+#pragma clang diagnostic pop
WeakPtr<SourceBufferPrivateAVFObjC> createWeakPtr() { return m_weakFactory.createWeakPtr(); }
@@ -153,7 +165,11 @@
RetainPtr<AVStreamDataParser> m_parser;
RetainPtr<AVAsset> m_asset;
RetainPtr<AVSampleBufferDisplayLayer> m_displayLayer;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
HashMap<int, RetainPtr<AVSampleBufferAudioRenderer>> m_audioRenderers;
+#pragma clang diagnostic pop
RetainPtr<WebAVStreamDataParserListener> m_delegate;
RetainPtr<WebAVSampleBufferErrorListener> m_errorListener;
RetainPtr<NSError> m_hdcpError;
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (220576 => 220577)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm 2017-08-11 03:37:00 UTC (rev 220576)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm 2017-08-11 04:22:59 UTC (rev 220577)
@@ -67,7 +67,11 @@
SOFT_LINK_CLASS(AVFoundation, AVAssetTrack)
SOFT_LINK_CLASS(AVFoundation, AVStreamDataParser)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
SOFT_LINK_CLASS(AVFoundation, AVSampleBufferAudioRenderer)
+#pragma clang diagnostic pop
SOFT_LINK_CLASS(AVFoundation, AVSampleBufferDisplayLayer)
SOFT_LINK_CLASS(AVFoundation, AVStreamSession)
@@ -221,7 +225,11 @@
@interface WebAVSampleBufferErrorListener : NSObject {
WebCore::SourceBufferPrivateAVFObjC* _parent;
Vector<RetainPtr<AVSampleBufferDisplayLayer>> _layers;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
Vector<RetainPtr<AVSampleBufferAudioRenderer>> _renderers;
+#pragma clang diagnostic pop
}
- (id)initWithParent:(WebCore::SourceBufferPrivateAVFObjC*)parent;
@@ -228,8 +236,12 @@
- (void)invalidate;
- (void)beginObservingLayer:(AVSampleBufferDisplayLayer *)layer;
- (void)stopObservingLayer:(AVSampleBufferDisplayLayer *)layer;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
- (void)beginObservingRenderer:(AVSampleBufferAudioRenderer *)renderer;
- (void)stopObservingRenderer:(AVSampleBufferAudioRenderer *)renderer;
+#pragma clang diagnostic pop
@end
@implementation WebAVSampleBufferErrorListener
@@ -292,8 +304,12 @@
[[NSNotificationCenter defaultCenter] removeObserver:self name:AVSampleBufferDisplayLayerFailedToDecodeNotification object:layer];
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
- (void)beginObservingRenderer:(AVSampleBufferAudioRenderer*)renderer
{
+#pragma clang diagnostic pop
ASSERT(_parent);
ASSERT(!_renderers.contains(renderer));
@@ -301,7 +317,11 @@
[renderer addObserver:self forKeyPath:@"error" options:NSKeyValueObservingOptionNew context:nullptr];
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
- (void)stopObservingRenderer:(AVSampleBufferAudioRenderer*)renderer
+#pragma clang diagnostic pop
{
ASSERT(_parent);
ASSERT(_renderers.contains(renderer));
@@ -337,7 +357,11 @@
ASSERT_NOT_REACHED();
} else if ([object isKindOfClass:getAVSampleBufferAudioRendererClass()]) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
RetainPtr<AVSampleBufferAudioRenderer> renderer = (AVSampleBufferAudioRenderer *)object;
+#pragma clang diagnostic pop
RetainPtr<NSError> error = [change valueForKey:NSKeyValueChangeNewKey];
ASSERT(_renderers.contains(renderer.get()));
@@ -793,13 +817,21 @@
int trackID = track->trackID();
if (!track->enabled()) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
RetainPtr<AVSampleBufferAudioRenderer> renderer = m_audioRenderers.get(trackID);
+#pragma clang diagnostic pop
[m_parser setShouldProvideMediaData:NO forTrackID:trackID];
if (m_mediaSource)
m_mediaSource->player()->removeAudioRenderer(renderer.get());
} else {
[m_parser setShouldProvideMediaData:YES forTrackID:trackID];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
RetainPtr<AVSampleBufferAudioRenderer> renderer;
+#pragma clang diagnostic pop
if (!m_audioRenderers.contains(trackID)) {
renderer = adoptNS([allocAVSampleBufferAudioRendererInstance() init]);
[renderer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
@@ -889,7 +921,11 @@
m_client->sourceBufferPrivateDidReceiveRenderingError(errorCode);
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void SourceBufferPrivateAVFObjC::rendererDidReceiveError(AVSampleBufferAudioRenderer *renderer, NSError *error)
+#pragma clang diagnostic pop
{
LOG(MediaSource, "SourceBufferPrivateAVFObjC::rendererDidReceiveError(%p): renderer(%p), error(%@)", this, renderer, [error description]);
@@ -938,7 +974,11 @@
}
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wunguarded-availability-new"
void SourceBufferPrivateAVFObjC::flush(AVSampleBufferAudioRenderer *renderer)
+#pragma clang diagnostic pop
{
[renderer flush];