Title: [169952] trunk/Source/WebCore
- Revision
- 169952
- Author
- [email protected]
- Date
- 2014-06-13 15:24:17 -0700 (Fri, 13 Jun 2014)
Log Message
set setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=133829
Patch by Jeremy Jones <[email protected]> on 2014-06-13
Reviewed by Eric Carlson.
When playing inline and external screen is active, don't use external playback.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
declare updateDisableExternalPlayback()
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
call updateDisableExternalPlayback when player is created
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
call updateDisableExternalPlayback when fullscreen mode changes
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
update setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (169951 => 169952)
--- trunk/Source/WebCore/ChangeLog 2014-06-13 22:18:52 UTC (rev 169951)
+++ trunk/Source/WebCore/ChangeLog 2014-06-13 22:24:17 UTC (rev 169952)
@@ -1,3 +1,22 @@
+2014-06-13 Jeremy Jones <[email protected]>
+
+ set setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
+ https://bugs.webkit.org/show_bug.cgi?id=133829
+
+ Reviewed by Eric Carlson.
+
+ When playing inline and external screen is active, don't use external playback.
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+ declare updateDisableExternalPlayback()
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
+ call updateDisableExternalPlayback when player is created
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
+ call updateDisableExternalPlayback when fullscreen mode changes
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
+ update setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
+
2014-06-13 Brent Fulgham <[email protected]>
Convert LayerPool and TileCoverageMap from ObjC to C++
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (169951 => 169952)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h 2014-06-13 22:18:52 UTC (rev 169951)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h 2014-06-13 22:24:17 UTC (rev 169952)
@@ -263,6 +263,7 @@
virtual MediaPlayer::WirelessPlaybackTargetType wirelessPlaybackTargetType() const override;
virtual bool wirelessVideoPlaybackDisabled() const override;
virtual void setWirelessVideoPlaybackDisabled(bool) override;
+ void updateDisableExternalPlayback();
#endif
WeakPtrFactory<MediaPlayerPrivateAVFoundationObjC> m_weakPtrFactory;
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (169951 => 169952)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm 2014-06-13 22:18:52 UTC (rev 169951)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm 2014-06-13 22:24:17 UTC (rev 169952)
@@ -737,7 +737,7 @@
[m_avPlayer.get() addObserver:m_objcObserver.get() forKeyPath:@"rate" options:NSKeyValueObservingOptionNew context:(void *)MediaPlayerAVFoundationObservationContextPlayer];
#if ENABLE(IOS_AIRPLAY)
[m_avPlayer.get() addObserver:m_objcObserver.get() forKeyPath:@"externalPlaybackActive" options:NSKeyValueObservingOptionNew context:(void *)MediaPlayerAVFoundationObservationContextPlayer];
- [m_avPlayer.get() setUsesExternalPlaybackWhileExternalScreenIsActive:YES];
+ updateDisableExternalPlayback();
#endif
#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) && HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
@@ -899,6 +899,9 @@
syncTextTrackBounds();
[m_videoFullscreenLayer addSublayer:m_textTrackRepresentationLayer.get()];
}
+#if ENABLE(IOS_AIRPLAY)
+ updateDisableExternalPlayback();
+#endif
}
void MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame(FloatRect frame)
@@ -2311,6 +2314,14 @@
[m_avPlayer.get() setAllowsExternalPlayback:!disabled];
}
+
+void MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback()
+{
+ if (!m_avPlayer)
+ return;
+
+ [m_avPlayer setUsesExternalPlaybackWhileExternalScreenIsActive:m_videoFullscreenLayer != nil];
+}
#endif
void MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange(int status)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes