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

Reply via email to