Changeset 96311 in webkit


Ignore:
Timestamp:
Sep 29, 2011 1:07:19 AM (13 years ago)
Author:
Philippe Normand
Message:

[GStreamer] 2 flaky media tests
https://bugs.webkit.org/show_bug.cgi?id=67407

Reviewed by Martin Robinson.

Workaround for GStreamer bug#639941. In GStreamer
0.10.35 basesink reports wrong duration in case of EOS and
negative playback rate. This workaround fixes two media tests,
media/video-timeupdate-reverse-play.html and
media/video-reverse-play-duration.html.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
(WebCore::MediaPlayerPrivateGStreamer::currentTime):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/platform/gtk/test_expectations.txt

    r96085 r96311  
    1212BUGWK68536 : media/media-blocked-by-beforeload.html = PASS TEXT
    1313BUGWK68878 : media/video-playing-and-pause.html = PASS TEXT
    14 BUGWK67407 : media/video-timeupdate-reverse-play.html = PASS TEXT
    1514
    1615BUGWK68523 : svg/zoom/page/zoom-svg-through-object-with-auto-size.html = PASS TEXT
  • trunk/Source/WebCore/ChangeLog

    r96310 r96311  
     12011-09-29  Philippe Normand  <pnormand@igalia.com>
     2
     3        [GStreamer] 2 flaky media tests
     4        https://bugs.webkit.org/show_bug.cgi?id=67407
     5
     6        Reviewed by Martin Robinson.
     7
     8        Workaround for GStreamer bug#639941. In GStreamer
     9        0.10.35 basesink reports wrong duration in case of EOS and
     10        negative playback rate. This workaround fixes two media tests,
     11        media/video-timeupdate-reverse-play.html and
     12        media/video-reverse-play-duration.html.
     13
     14        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
     15        (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
     16        (WebCore::MediaPlayerPrivateGStreamer::currentTime):
     17        (WebCore::MediaPlayerPrivateGStreamer::didEnd):
     18
    1192011-09-29  Philippe Normand  <pnormand@igalia.com>
    220
  • trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

    r96310 r96311  
    355355void MediaPlayerPrivateGStreamer::prepareToPlay()
    356356{
     357    m_isEndReached = false;
     358
    357359    if (m_delayingLoad) {
    358360        m_delayingLoad = false;
     
    412414    if (m_seeking)
    413415        return m_seekTime;
     416
     417    // Workaround for
     418    // https://bugzilla.gnome.org/show_bug.cgi?id=639941 In GStreamer
     419    // 0.10.35 basesink reports wrong duration in case of EOS and
     420    // negative playback rate. There's no upstream accepted patch for
     421    // this bug yet, hence this temporary workaround.
     422    if (m_isEndReached && m_playbackRate < 0)
     423        return 0.0f;
    414424
    415425    return playbackPosition();
     
    13261336    }
    13271337
     1338    m_isEndReached = true;
     1339
    13281340    gst_element_set_state(m_playBin, GST_STATE_PAUSED);
    13291341
Note: See TracChangeset for help on using the changeset viewer.