[webkit-changes] [WebKit/WebKit] fa3503: [GStreamer] Rewrite inner decoder leveraging the G...

Philippe Normand noreply at github.com
Thu Jan 26 09:30:14 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fa3503d135d0820bcdbb68e51516ebfd75fd090d
      https://github.com/WebKit/WebKit/commit/fa3503d135d0820bcdbb68e51516ebfd75fd090d
  Author: Philippe Normand <philn at igalia.com>
  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




More information about the webkit-changes mailing list