GNOME Bugzilla – Bug 738129
GstGLMixer download texture even if sink element is gl based
Last modified: 2014-10-20 15:02:16 UTC
I found commit c44352b11f8a5ee8cb6f1710ac90d17076124e69 gl: download whenever we have sysmem capsfeatures cause GstGLMixer always download texture ,even if sink element is glimagesink or glfilter . GstGLMixer _negotiated_caps always receive caps with capsfeatures "memory:SystemMemory", not "memory:GLMemory" , seems this causes the problem.
seems that gst_videoaggregator_update_src_caps has problem related to this bug line 588: caps = gst_video_info_to_caps (&info); ------>caps from video info always missed the GLMemory feature (when subclass is GstGLMixer) peercaps = gst_pad_peer_query_caps (agg->srcpad, NULL); if (peercaps) { ...... } gst_caps_unref (caps); -----> maybe these two lines caps = gst_video_info_to_caps (&info); -----> should be deleted? if (gst_videoaggregator_src_setcaps (vagg, caps)) { ...... } temp hack these seems get the correct intersected caps with downstream element, makes _negotiated_caps receiving the correct out_caps
commit f0caf04ad6bf6f04c53424a2057ffe988ad781b9 Author: Matthew Waters <matthew@centricular.com> Date: Mon Oct 20 10:34:27 2014 +1100 videoaggregator: operate on caps rather than video info Otherwise the CapsFeatures will be lost along with the possibility of multiple output types and formats. https://bugzilla.gnome.org/show_bug.cgi?id=738129