Changeset 155104 in webkit
- Timestamp:
- Sep 5, 2013 12:33:38 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r155102 r155104 1 2013-09-05 Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk> 2 3 [Qt][WK1] REGRESSION(r154988): compositing/video/video-with-invalid-source.html 4 https://bugs.webkit.org/show_bug.cgi?id=120683 5 6 Reviewed by Philippe Normand. 7 8 Do not set pipeline state to NULL on MediaPlayerPrivateGStreamer::loadingFailed() 9 otherwise the bus is flushed and we never get a GST_MESSAGE_ERROR when failing to 10 load uris. 11 Also restore previous behaviour (before r154988) of not invoking loadingFailed() for 12 all failed manual state change attempts. 13 14 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: 15 (WebCore::MediaPlayerPrivateGStreamer::changePipelineState): 16 Do not call loadingFailed() if state change fails as all manual state changes are 17 now done with changePipelineState(). 18 (WebCore::MediaPlayerPrivateGStreamer::play): 19 (WebCore::MediaPlayerPrivateGStreamer::pause): 20 (WebCore::MediaPlayerPrivateGStreamer::seek): 21 (WebCore::MediaPlayerPrivateGStreamer::handleMessage): 22 Restore previous behaviour (before changeset r154988) when calling changePipelineState(). 23 (WebCore::MediaPlayerPrivateGStreamer::updateStates): 24 Do nothing if changing to READY on EOS (same behaviour as setting to NULL as it was before 25 changeset r154988). 26 (WebCore::MediaPlayerPrivateGStreamer::loadingFailed): 27 Do not set pipeline state to NULL so we properly get GST_MESSAGE_ERROR on loading failures. 28 1 29 2013-09-05 Alberto Garcia <berto@igalia.com> 2 30 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
r155024 r155104 442 442 GstState pausedOrPlaying = newState == GST_STATE_PLAYING ? GST_STATE_PAUSED : GST_STATE_PLAYING; 443 443 if (currentState != pausedOrPlaying && setStateResult == GST_STATE_CHANGE_FAILURE) { 444 loadingFailed(MediaPlayer::Empty);445 444 return false; 446 445 } … … 477 476 setDownloadBuffering(); 478 477 LOG_MEDIA_MESSAGE("Play"); 478 } else { 479 loadingFailed(MediaPlayer::Empty); 479 480 } 480 481 } … … 489 490 if (changePipelineState(GST_STATE_PAUSED)) 490 491 INFO_MEDIA_MESSAGE("Pause"); 492 else 493 loadingFailed(MediaPlayer::Empty); 491 494 } 492 495 … … 587 590 LOG_MEDIA_MESSAGE("[Seek] reset pipeline"); 588 591 m_resetPipeline = true; 589 changePipelineState(GST_STATE_PAUSED); 592 if (!changePipelineState(GST_STATE_PAUSED)) 593 loadingFailed(MediaPlayer::Empty); 590 594 } 591 595 } else { … … 942 946 gst_element_state_get_name(requestedState)); 943 947 m_requestedState = requestedState; 944 changePipelineState(requestedState); 948 if (!changePipelineState(requestedState)) 949 loadingFailed(MediaPlayer::Empty); 945 950 } 946 951 break; … … 1222 1227 LOG_MEDIA_MESSAGE("State: %s, pending: %s", gst_element_state_get_name(state), gst_element_state_get_name(pending)); 1223 1228 1229 // Do nothing if on EOS and state changed to READY to avoid recreating the player 1230 // on HTMLMediaElement and properly generate the video 'ended' event. 1231 if (m_isEndReached && state == GST_STATE_READY) 1232 break; 1233 1224 1234 if (state <= GST_STATE_READY) { 1225 1235 m_resetPipeline = true; … … 1239 1249 break; 1240 1250 case GST_STATE_READY: 1241 // Do not change network/ready states if on EOS and state changed to READY to avoid 1242 // recreating the player on HTMLMediaElement. 1243 if (!m_isEndReached) { 1244 m_readyState = MediaPlayer::HaveMetadata; 1245 m_networkState = MediaPlayer::Empty; 1246 } 1251 m_readyState = MediaPlayer::HaveMetadata; 1252 m_networkState = MediaPlayer::Empty; 1247 1253 break; 1248 1254 case GST_STATE_PAUSED: … … 1530 1536 } 1531 1537 1532 // Loading failed, force reset pipeline and remove ready timer. 1533 gst_element_set_state(m_playBin.get(), GST_STATE_NULL); 1538 // Loading failed, remove ready timer. 1534 1539 if (m_readyTimerHandler) { 1535 1540 g_source_remove(m_readyTimerHandler);
Note: See TracChangeset
for help on using the changeset viewer.