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