hi folks:
i make a test about video player with video tag based on midori and
webkit2.22.2, but seems only when i disable "GSTREAMER_GL", the display window
can be displayed normally.
if the GSTREAMER_GL was enabled, the decoder process working fine but the
browser cant show the player window, just a blank window.
so,from the code, it seems the difference between the two test is the display
sinker of gstreamer pipe was different.
1.if GSTRREAMER_GL enabled, it would be use the display sinker
"createVideoSinkGL" returned
2.if GSTRREAMER_GL disabled, the default display sinker would be webkit video
sink.
seems only method 2 can use, but i found another problem when using the way
2(webkit videw sinker), that is when playing high quality streamer with
browser, the cpu occupancy rate was very high (about 50 percent) of process
'webkitwebprocess'.
so i dont know how to choice, which is the better way to deal with this
problem, much appreciate your help!
codes:
1108 GstElement* MediaPlayerPrivateGStreamerBase::createVideoSink()
1109 {
1110 acceleratedRenderingStateChanged();
1111
1112 #if USE(GSTREAMER_GL)
1113 if (m_renderingCanBeAccelerated)
1114 ¦ m_videoSink = createVideoSinkGL();
1115 #endif
1116
1117 if (!m_videoSink) {
1118 ¦ m_usingFallbackVideoSink = true;
1119 ¦ m_videoSink = webkitVideoSinkNew();
1120 ¦ g_signal_connect_swapped(m_videoSink.get(), "repaint-requested",
G_CALLBACK(repaintCallback), this);
1121 ¦ g_signal_connect_swapped(m_videoSink.get(), "repaint-cancelled",
G_CALLBACK(repaintCancelledCallback), this);
1122 }
1123
1124 GstElement* videoSink = nullptr;
1125 m_fpsSink = gst_element_factory_make("fpsdisplaysink", "sink");
1126 if (m_fpsSink) {
1127 ¦ g_object_set(m_fpsSink.get(), "silent", TRUE , nullptr);
1128
1129 ¦ // Turn off text overlay unless logging is enabled.
1130 #if LOG_DISABLED
1131 ¦ g_object_set(m_fpsSink.get(), "text-overlay", FALSE , nullptr);
1132 #else
1133 ¦ if (!isLogChannelEnabled("Media"))
1134 ¦ ¦ g_object_set(m_fpsSink.get(), "text-overlay", FALSE ,
nullptr);
1135 #endif // LOG_DISABLED
1136
1137 ¦ if
(g_object_class_find_property(G_OBJECT_GET_CLASS(m_fpsSink.get()),
"video-sink")) {
1138 ¦ ¦ g_object_set(m_fpsSink.get(), "video-sink", m_videoSink.get(),
nullptr);
1139 ¦ ¦ videoSink = m_fpsSink.get();
1140 ¦ } else
1141 ¦ ¦ m_fpsSink = nullptr;
1142 }
1143
1144 if (!m_fpsSink)
1145 ¦ videoSink = m_videoSink.get();
1146
1147 ASSERT(videoSink);
1148
1149 return videoSink;_______________________________________________ webkit-gtk mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-gtk
