Changeset 80136 in webkit
- Timestamp:
- Mar 2, 2011 8:57:01 AM (13 years ago)
- Location:
- trunk/Source/WebKit/mac
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/mac/ChangeLog
r80061 r80136 1 2011-03-01 Philippe Normand <pnormand@igalia.com> 2 3 Reviewed by Eric Carlson. 4 5 [GStreamer] support in mac video fullscreen controller 6 https://bugs.webkit.org/show_bug.cgi?id=52280 7 8 Factored the code to configure the video overlay in a new private 9 method of the controller and added GStreamer support to it. 10 11 * WebView/WebVideoFullscreenController.h: 12 * WebView/WebVideoFullscreenController.mm: 13 (-[WebVideoFullscreenController setupVideoOverlay:]): 14 (-[WebVideoFullscreenController windowDidLoad]): 15 (-[WebVideoFullscreenController setMediaElement:WebCore::]): 16 (-[WebVideoFullscreenController windowDidExitFullscreen]): 17 1 18 2011-02-23 Joseph Pecoraro <joepeck@webkit.org> 2 19 -
trunk/Source/WebKit/mac/WebView/WebVideoFullscreenController.h
r69318 r80136 35 35 @class WebVideoFullscreenHUDWindowController; 36 36 @class WebWindowFadeAnimation; 37 @class QTMovieLayer; 37 38 38 39 @interface WebVideoFullscreenController : NSWindowController { … … 59 60 - (void)setDelegate:(id <WebVideoFullscreenControllerDelegate>)delegate; 60 61 62 - (void)setupVideoOverlay:(QTMovieLayer*)layer; 61 63 - (void)setMediaElement:(WebCore::HTMLMediaElement*)mediaElement; 62 64 - (WebCore::HTMLMediaElement*)mediaElement; -
trunk/Source/WebKit/mac/WebView/WebVideoFullscreenController.mm
r74733 r80136 39 39 #import <wtf/UnusedParam.h> 40 40 41 #if USE(GSTREAMER) 42 #import <WebCore/GStreamerGWorld.h> 43 #endif 44 41 45 SOFT_LINK_FRAMEWORK(QTKit) 42 46 SOFT_LINK_CLASS(QTKit, QTMovieLayer) … … 97 101 } 98 102 103 - (void)setupVideoOverlay:(QTMovieLayer*)layer 104 { 105 WebVideoFullscreenWindow *window = [self fullscreenWindow]; 106 #if USE(GSTREAMER) 107 if (_mediaElement && _mediaElement->platformMedia().type == WebCore::PlatformMedia::GStreamerGWorldType) { 108 WebCore::GStreamerGWorld* gstGworld = _mediaElement->platformMedia().media.gstreamerGWorld; 109 if (gstGworld->enterFullscreen()) 110 [window setContentView:gstGworld->platformVideoWindow()->window()]; 111 } 112 #else 113 [[window contentView] setLayer:layer]; 114 [[window contentView] setWantsLayer:YES]; 115 if (_mediaElement && _mediaElement->platformMedia().type == WebCore::PlatformMedia::QTMovieType) 116 [layer setMovie:_mediaElement->platformMedia().media.qtMovie]; 117 #endif 118 } 119 99 120 - (void)windowDidLoad 100 121 { … … 104 125 #else 105 126 WebVideoFullscreenWindow *window = [self fullscreenWindow]; 106 QTMovieLayer *layer = [[getQTMovieLayerClass() alloc] init];107 [[window contentView] setLayer:layer];108 [[window contentView] setWantsLayer:YES];109 if (_mediaElement && _mediaElement->platformMedia().type == WebCore::PlatformMedia::QTMovieType)110 [layer setMovie:_mediaElement->platformMedia().media.qtMovie];111 127 [window setHasShadow:YES]; // This is nicer with a shadow. 112 128 [window setLevel:NSPopUpMenuWindowLevel-1]; 129 130 QTMovieLayer *layer = [[getQTMovieLayerClass() alloc] init]; 131 [self setupVideoOverlay:layer]; 113 132 [layer release]; 114 133 134 #if !USE(GSTREAMER) 115 135 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidResignActive:) name:NSApplicationDidResignActiveNotification object:NSApp]; 116 136 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidChangeScreenParameters:) name:NSApplicationDidChangeScreenParametersNotification object:NSApp]; 137 #endif 117 138 #endif 118 139 } … … 131 152 _mediaElement = mediaElement; 132 153 if ([self isWindowLoaded]) { 133 QTMovie *movie = _mediaElement->platformMedia().type == WebCore::PlatformMedia::QTMovieType ? _mediaElement->platformMedia().media.qtMovie : 0;134 154 QTMovieLayer *movieLayer = (QTMovieLayer *)[[[self fullscreenWindow] contentView] layer]; 135 155 136 156 ASSERT(movieLayer && [movieLayer isKindOfClass:[getQTMovieLayerClass() class]]); 137 ASSERT(movie); 138 [movieLayer setMovie:movie]; 157 [self setupVideoOverlay:movieLayer]; 158 #if !USE(GSTREAMER) 159 ASSERT([movieLayer movie]); 139 160 [[NSNotificationCenter defaultCenter] addObserver:self 140 161 selector:@selector(rateChanged:) 141 162 name:QTMovieRateDidChangeNotification 142 object:movie]; 163 object:[movieLayer movie]]; 164 #endif 143 165 } 144 166 #endif … … 167 189 - (void)windowDidExitFullscreen 168 190 { 191 #if USE(GSTREAMER) 192 if (_mediaElement && _mediaElement->platformMedia().type == WebCore::PlatformMedia::GStreamerGWorldType) 193 _mediaElement->platformMedia().media.gstreamerGWorld->exitFullscreen(); 194 #endif 169 195 [self clearFadeAnimation]; 170 196 [[self window] close];
Note: See TracChangeset
for help on using the changeset viewer.