[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