Changeset 207666 in webkit
- Timestamp:
- Oct 21, 2016 3:26:50 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207665 r207666 1 2016-10-21 Miguel Gomez <magomez@igalia.com> 2 3 [GTK] Several tests crashing on debug bot in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::repaint 4 https://bugs.webkit.org/show_bug.cgi?id=163511 5 6 Reviewed by Carlos Garcia Campos. 7 8 Perform the video repaint in the main thread when accelerated compositing is disabled. Added a new method to 9 MediaPlayerClient to get whether accelerated compositing is enabled from the MediaPlayer. This is needed 10 because mediaPlayerAcceleratedCompositingEnabled() will return false while HTMLMediaElement doesn't have a 11 RenderVideo, even when accelerated compositing is enabled. 12 13 Covered by existent tests. 14 15 * html/HTMLMediaElement.cpp: 16 (WebCore::HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled): 17 * html/HTMLMediaElement.h: 18 * platform/graphics/MediaPlayer.h: 19 (WebCore::MediaPlayerClient::mediaPlayerAcceleratedCompositingEnabled): 20 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: 21 (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): 22 (WebCore::MediaPlayerPrivateGStreamerBase::repaint): 23 (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint): 24 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: 25 1 26 2016-10-21 Adam Bergkvist <adam.bergkvist@ericsson.com> 2 27 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r207458 r207666 4580 4580 } 4581 4581 4582 bool HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled() 4583 { 4584 return document().settings() && document().settings()->acceleratedCompositingEnabled(); 4585 } 4586 4582 4587 #if PLATFORM(WIN) && USE(AVFOUNDATION) 4583 4588 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r207338 r207666 565 565 bool mediaPlayerRenderingCanBeAccelerated(MediaPlayer*) override; 566 566 void mediaPlayerRenderingModeChanged(MediaPlayer*) override; 567 bool mediaPlayerAcceleratedCompositingEnabled() override; 567 568 void mediaPlayerEngineUpdated(MediaPlayer*) override; 568 569 void mediaEngineWasUpdated(); -
trunk/Source/WebCore/platform/graphics/MediaPlayer.h
r206811 r207666 196 196 virtual void mediaPlayerRenderingModeChanged(MediaPlayer*) { } 197 197 198 // whether accelerated compositing is enabled for video rendering 199 virtual bool mediaPlayerAcceleratedCompositingEnabled() { return false; } 200 198 201 virtual void mediaPlayerActiveSourceBuffersChanged(const MediaPlayer*) { } 199 202 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp
r207467 r207666 176 176 , m_readyState(MediaPlayer::HaveNothing) 177 177 , m_networkState(MediaPlayer::Empty) 178 #if USE(GSTREAMER_GL) 178 #if USE(GSTREAMER_GL) || USE(COORDINATED_GRAPHICS_THREADED) 179 179 , m_drawTimer(RunLoop::main(), this, &MediaPlayerPrivateGStreamerBase::repaint) 180 180 #endif … … 576 576 m_player->repaint(); 577 577 578 #if USE(GSTREAMER_GL) 578 #if USE(GSTREAMER_GL) || USE(COORDINATED_GRAPHICS_THREADED) 579 579 m_drawCondition.notifyOne(); 580 580 #endif … … 596 596 597 597 #if USE(COORDINATED_GRAPHICS_THREADED) 598 #if USE(GSTREAMER_GL) 599 if (m_player->client().mediaPlayerRenderingCanBeAccelerated(m_player)) 600 pushTextureToCompositor(); 601 else { 598 if (!m_player->client().mediaPlayerAcceleratedCompositingEnabled()) { 602 599 LockHolder locker(m_drawMutex); 603 600 m_drawTimer.startOneShot(0); 604 601 m_drawCondition.wait(m_drawMutex); 605 } 602 return; 603 } 604 605 #if USE(GSTREAMER_GL) 606 pushTextureToCompositor(); 606 607 #else 607 if (m_player->client().mediaPlayerRenderingCanBeAccelerated(m_player)){608 { 608 609 LockHolder lock(m_drawMutex); 609 610 if (!m_platformLayerProxy->scheduleUpdateOnCompositorThread([this] { this->pushTextureToCompositor(); })) 610 611 return; 611 612 m_drawCondition.wait(m_drawMutex); 612 } else 613 repaint(); 613 } 614 614 #endif 615 615 return; -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h
r207467 r207666 185 185 mutable GMutex m_sampleMutex; 186 186 GRefPtr<GstSample> m_sample; 187 #if USE(GSTREAMER_GL) 187 #if USE(GSTREAMER_GL) || USE(COORDINATED_GRAPHICS_THREADED) 188 188 RunLoop::Timer<MediaPlayerPrivateGStreamerBase> m_drawTimer; 189 189 #endif
Note: See TracChangeset
for help on using the changeset viewer.