Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fa3503d135d0820bcdbb68e51516ebfd75fd090d
      
https://github.com/WebKit/WebKit/commit/fa3503d135d0820bcdbb68e51516ebfd75fd090d
  Author: Philippe Normand <[email protected]>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
    M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
    M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.h
    M Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.h
    M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp
    M Source/WebCore/platform/gstreamer/GStreamerElementHarness.h

  Log Message:
  -----------
  [GStreamer] Rewrite inner decoder leveraging the GStreamerElementHarness
https://bugs.webkit.org/show_bug.cgi?id=250934

Reviewed by Xabier Rodriguez-Calvar.

The previous decoder implementation relied on a GStreamer pipeline involving 
giostreamsrc,
decodebin3 and appsinks. Due to the highly asynchronous behavior of that 
pipeline the decoder
heavily relied on Locks and Conditions making the code hard to follow and debug.

The new implementation relies on two element harnesses, the first one is in 
charge of parsing (with
parsebin), the first parsed video output stream is then plugged to a decode 
harness, directly hooked
to the platform video decoder, so no queue is involved. The decoding no longer 
involves additional
threads, so we can simplify the code and entirely get rid of InnerDecoder.

Canonical link: https://commits.webkit.org/259430@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to