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

Reply via email to