Permalink
Commits on Mar 4, 2016
  1. [GStreamer][MSE] Collapse AppendPipeline stages

    In the cases at setAppendStage we collapsed some of them that are render
    the same easy result so that code is easier to read.
    calvaris committed with Feb 29, 2016
  2. [GStreamer][MSE] Removed AppendPipeline timeouts

    The timeouts that were still in place for debugging purposes can be
    finally removed as the implementation is mature enough.
    calvaris committed with Feb 29, 2016
  3. [GStreamer][MSE] Fix a crash when the MSE media player private was un…

    …set between the scheduling of a timeout and its execution
    
    Conflicts:
    	Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp
    committed Feb 26, 2016
  4. [GStreamer][MSE] Remove first buffer mutex at AP

    At AppendPipeline we are using a mutex to access the variable that
    allows to discard the need-data signals that come too early. Now we move
    the events through the bus.
    calvaris committed with Feb 19, 2016
  5. [GStreamer][MSE] Remove appsrc probe after used

    When the probe is not needed anymore, we can remove it and reinstate it
    again when necessary.
    calvaris committed with Feb 18, 2016
  6. [GStreamer][MSE] Remove events tracking on pads

    Since we don't need custom events, we don't need tracking the events anymore.
    calvaris committed with Feb 18, 2016
  7. [GStreamer][MSE] Tracking buffers are reset with the pipeline

    When resetting the pipeline we also need to reset if the first buffer
    went thru.
    calvaris committed with Feb 17, 2016
  8. [GStreamer][MSE] Mutex in append buffer tracking

    Setting and reading might happen in different threads, so it is better
    to protect it with a mutex.
    calvaris committed with Feb 17, 2016
  9. [GStreamer][MSE] Used appsrc need-data signal

    This replaces the whole end of append detection with custom downstream
    events and also solves the issue of the data starve timer being needed.
    calvaris committed with Feb 17, 2016
  10. [GStreamer][MSE] Honored Enrique's comments.

    Removed useless checks
    calvaris committed with Feb 12, 2016
  11. Revert "[GStreamer][MSE] Reinstate data starve timeout"

    This reverts commit f118607.
    calvaris committed with Feb 11, 2016
  12. [GStreamer][MSE] Correct typos and formats

    According to Phil's review.
    calvaris committed with Feb 11, 2016
  13. [GStreamer][MSE] Reinstate data starve timeout

    In same rare cases, specially in test 30, where appends happen with not
    enough data, qtdemux stalls waiting for data and append never ends. This
    is a case that should happen very rarely so I reinstated the timeout to
    resolve that issue while we find and alternate and more robust solution.
    calvaris committed with Feb 10, 2016
  14. [GStreamer][MSE] Remove typefind

    typefind is causing problems by swaling some buffers and not letting
    that information go through
    calvaris committed with Feb 4, 2016
  15. [GStreamer][MSE] Rename appsink probe

    This renames the appsink probe functions and attributes.
    calvaris committed with Feb 4, 2016
  16. [GStreamer][MSE] Rework marking end of append

    In some cases current custom events can go thru the appsrc src pad
    before the buffer itself, causing that the buffer is not processed. Now
    we send a probe for buffers in the appsrc src pad and when a buffer goes
    thru, we engage the process of marking the end of the append. The end of
    the append is done at the main thread by sending an application message
    thru the bus.
    calvaris committed with Feb 5, 2016
  17. [GStreamer][MSE] Rework checking for end of append

    This method does not blindly declares the end of the append operation,
    it does the checks that were done in some cases before calling that
    method.
    
    Also, we reset to 0 the mark received at the sink when it was dealt
    with.
    calvaris committed with Feb 2, 2016
  18. [GStreamer][MSE] Handle last sample thru the bus

    Instead of deferring to the main thread with timeouts, we always put the
    message through the bus as an application message. We get the message
    and move the state if we are in Sampling instead of Ongoing.
    calvaris committed with Feb 5, 2016
  19. [GStreamer][MSE] Disable timeouts

    They only assert if reached.
    calvaris committed with Jan 20, 2016
  20. [GStreamer][MSE] Detect append end using events

    For this we use custom events.
    
    Signed-off-by: Xabier Rodriguez Calvar <calvaris@igalia.com>
    committed Dec 30, 2015
  21. [MSE][GStreamer] Don't apply timestampOffset on playback

    The offset was already applied at append time and the buffers already
    have the right offset PTS in memory.
    committed Feb 2, 2016
  22. REGRESSION(r191948): [GStreamer] 4 new timeouts on layout tests.

    https://bugs.webkit.org/show_bug.cgi?id=152797
    
    Reviewed by Darin Adler.
    
    Source/WebCore:
    
    Always schedule messages to the main thread, even when the bus
    sync handlder was called in the main thread. It seems that
    GStreamer expects things to happen in the next main loop
    iteration.
    
    * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
    (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
    
    LayoutTests:
    
    Update test expectations.
    
    * platform/gtk/TestExpectations:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@196060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    
    Conflicts:
    	LayoutTests/ChangeLog
    	LayoutTests/platform/gtk/TestExpectations
    	Source/WebCore/ChangeLog
    carlosgc@webkit.org committed with Feb 3, 2016
  23. [GStreamer] MediaPlayerPrivateGStreamerBase::handleSyncMessage leaks …

    …GstContext
    
    
    https://bugs.webkit.org/show_bug.cgi?id=153580
    
    Reviewed by Philippe Normand.
    
    When we creates GstContext using gst_context_new it increases refcount itself.
    And the refcount of GstContext is increased when it is passed to
    gst_element_set_context, also. Therefore We should unref GstContext after
    using it to prevent GstContext leaks.
    
    * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
    (WTF::adoptGRef): Added for GstContext.
    (WTF::refGPtr<GstContext>): Ditto
    (WTF::derefGPtr<GstContext>): Ditto
    * platform/graphics/gstreamer/GRefPtrGStreamer.h:
    * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
    (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
    Use GRefPtr<GstContext> to handle currect refcounting
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@195735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    
    Conflicts:
    	Source/WebCore/ChangeLog
    	Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp
    yoon@igalia.com committed with Jan 28, 2016
  24. [GStreamer][MSE] Refactor the pause fix down to the MSE player private

    Better this way to avoid touching the non-MSE player to solve an MSE-only issue.
    committed Jan 25, 2016
  25. [GStreamer] When pausing, declare that we want to be on paused state

    The m_paused attribute indicates if whe player wants to be on pause (ideally).
    On some circumstances, the player doesn't want to be on pause but the playback
    pipeline is (temporarily) paused. The m_paused attribute helps to restore
    the playing state when the temporary condition finishes.
    
    Until now, pause() wasn't setting m_paused, so when MSE seeks finished, for
    instance, the playback returned to playing when it should stay paused.
    
    This commit fixes the regression introduced by commit
    d7fec86 [MSE][GStreamer] Restore the pipeline to PLAYING after seek during forced PAUSED completes
    which broke the pause feature.
    committed Jan 25, 2016
  26. [MSE][GStreamer] Restore the pipeline to PLAYING after seek during fo…

    …rced PAUSED completes
    committed Jan 19, 2016
  27. Rework last sample timer

    calvaris committed with Jan 20, 2016