Title: [259964] releases/WebKitGTK/webkit-2.28/Source/WebCore
- Revision
- 259964
- Author
- [email protected]
- Date
- 2020-04-12 06:04:10 -0700 (Sun, 12 Apr 2020)
Log Message
Merge r259113 - [WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
https://bugs.webkit.org/show_bug.cgi?id=209647
Reviewed by Adrian Perez de Castro.
Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
as we don't need synchronization in that case and the internal call to glFinish()
casues an important fps drop.
* platform/graphics/gstreamer/GStreamerCommon.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog (259963 => 259964)
--- releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog 2020-04-12 13:04:06 UTC (rev 259963)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog 2020-04-12 13:04:10 UTC (rev 259964)
@@ -1,3 +1,19 @@
+2020-03-27 Miguel Gomez <[email protected]>
+
+ [WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
+ https://bugs.webkit.org/show_bug.cgi?id=209647
+
+ Reviewed by Adrian Perez de Castro.
+
+ Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
+ as we don't need synchronization in that case and the internal call to glFinish()
+ casues an important fps drop.
+
+ * platform/graphics/gstreamer/GStreamerCommon.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::GstVideoFrameHolder::waitForCPUSync):
+ (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
+
2020-03-27 Michael Catanzaro <[email protected]>
Update Chrome and Firefox versions in user agent quirks
Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h (259963 => 259964)
--- releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h 2020-04-12 13:04:06 UTC (rev 259963)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h 2020-04-12 13:04:10 UTC (rev 259964)
@@ -219,7 +219,7 @@
void connectSimpleBusMessageCallback(GstElement* pipeline);
void disconnectSimpleBusMessageCallback(GstElement* pipeline);
-enum class GstVideoDecoderPlatform { ImxVPU, Video4Linux };
+enum class GstVideoDecoderPlatform { ImxVPU, Video4Linux, OpenMAX };
bool isGStreamerPluginAvailable(const char* name);
Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (259963 => 259964)
--- releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2020-04-12 13:04:06 UTC (rev 259963)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2020-04-12 13:04:10 UTC (rev 259964)
@@ -286,6 +286,10 @@
#if USE(GSTREAMER_GL)
virtual void waitForCPUSync()
{
+ // No need for OpenGL synchronization when using the OpenMAX decoder.
+ if (m_videoDecoderPlatform == GstVideoDecoderPlatform::OpenMAX)
+ return;
+
GstGLSyncMeta* meta = gst_buffer_get_gl_sync_meta(m_buffer.get());
if (meta) {
GstMemory* mem = gst_buffer_peek_memory(m_buffer.get(), 0);
@@ -3042,6 +3046,8 @@
player->m_videoDecoderPlatform = GstVideoDecoderPlatform::Video4Linux;
else if (g_str_has_prefix(elementName.get(), "imxvpudec"))
player->m_videoDecoderPlatform = GstVideoDecoderPlatform::ImxVPU;
+ else if (g_str_has_prefix(elementName.get(), "omx"))
+ player->m_videoDecoderPlatform = GstVideoDecoderPlatform::OpenMAX;
#if USE(TEXTURE_MAPPER_GL)
player->updateTextureMapperFlags();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes