GstElement* MediaPlayerPrivateGStreamerBase::createVideoSink() { ASSERT(initializeGStreamer()); GstElement* videoSink = nullptr; m_webkitVideoSink = webkitVideoSinkNew(); m_repaintHandler = g_signal_connect(m_webkitVideoSink.get(), "repaint-requested", G_CALLBACK(mediaPlayerPrivateRepaintCallback), this); m_fpsSink = gst_element_factory_make("fpsdisplaysink", "sink"); if (m_fpsSink) { g_object_set(m_fpsSink.get(), "silent", TRUE , nullptr); // Turn off text overlay unless logging is enabled. #if LOG_DISABLED g_object_set(m_fpsSink.get(), "text-overlay", FALSE , nullptr); #else if (!isLogChannelEnabled("Media")) g_object_set(m_fpsSink.get(), "text-overlay", FALSE , nullptr); #endif // LOG_DISABLED if (g_object_class_find_property(G_OBJECT_GET_CLASS(m_fpsSink.get()), "video-sink")) { g_object_set(m_fpsSink.get(), "video-sink", m_webkitVideoSink.get(), nullptr); videoSink = m_fpsSink.get(); } else m_fpsSink = nullptr; } if (!m_fpsSink) videoSink = m_webkitVideoSink.get(); ASSERT(videoSink); return videoSink; }
GstElement* MediaPlayerPrivateGStreamerBase::createVideoSink() { GstElement* videoSink = nullptr; #if USE(GSTREAMER_GL) if (webkitGstCheckVersion(1, 5, 0)) { m_videoSink = gst_element_factory_make("glimagesink", nullptr); if (m_videoSink) { m_repaintHandler = g_signal_connect(m_videoSink.get(), "client-draw", G_CALLBACK(mediaPlayerPrivateDrawCallback), this); videoSink = m_videoSink.get(); } } #endif if (!m_videoSink) { m_usingFallbackVideoSink = true; m_videoSink = webkitVideoSinkNew(); m_repaintHandler = g_signal_connect(m_videoSink.get(), "repaint-requested", G_CALLBACK(mediaPlayerPrivateRepaintCallback), this); } m_fpsSink = gst_element_factory_make("fpsdisplaysink", "sink"); if (m_fpsSink) { g_object_set(m_fpsSink.get(), "silent", TRUE , nullptr); // Turn off text overlay unless logging is enabled. #if LOG_DISABLED g_object_set(m_fpsSink.get(), "text-overlay", FALSE , nullptr); #else if (!isLogChannelEnabled("Media")) g_object_set(m_fpsSink.get(), "text-overlay", FALSE , nullptr); #endif // LOG_DISABLED if (g_object_class_find_property(G_OBJECT_GET_CLASS(m_fpsSink.get()), "video-sink")) { g_object_set(m_fpsSink.get(), "video-sink", m_videoSink.get(), nullptr); videoSink = m_fpsSink.get(); } else m_fpsSink = nullptr; } if (!m_fpsSink) videoSink = m_videoSink.get(); ASSERT(videoSink); return videoSink; }