GNOME Bugzilla – Bug 735870
glimagesink: Crashes in pipelines with a tee
Last modified: 2014-09-07 18:15:07 UTC
I talked to __tim and slomo (IRC), and the pipeline should be OK. Server pipeline (RPI/Linux) : raspivid -t 0 -w 640 -h 480 -fps 25 -b 1200000 -p 0,0,640,480 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=__ port=__ Client pipeline (Android) : tcpclientsrc host=__ port=__ ! gdpdepay ! rtph264depay ! decodebin ! tee name=t ! queue ! videoconvert ! autovideosink sync=false t. ! queue ! videorate ! video/x-raw,framerate=5/1 ! videoscale ! video/x-raw,width=160,height=120 ! facedetect min-size-width=40 min-size-height=40 NOTE - Without the tee/queue elements, it's working (really slow) : tcpclientsrc host=__ port=__ ! gdpdepay ! rtph264depay ! decodebin ! videoconvert ! videoscale ! video/x-raw,width=320,height=240 ! facedetect min-size-width=60 min-size-height=60 ! autovideosink sync=false Cut debug log here : http://pastebin.com/qbGcGp1p
Backtrace log (slomo's request) : http://pastebin.com/yPEsgthu
Here is some tests (all are crashing). NOTE: That's on Android. tcpclientsrc host=__ port=__ ! gdpdepay ! rtph264depay ! decodebin ! tee name=t ! queue ! videoconvert ! autovideosink sync=false t. ! queue ! videorate ! video/x-raw,framerate=5/1 ! videoscale ! video/x-raw,width=320,height=240 ! identity ! fakesink sync=false videotestsrc ! tee name=t ! queue ! videoconvert ! autovideosink sync=false t. ! queue ! videorate ! video/x-raw,framerate=5/1 ! videoscale ! video/x-raw,width=320,height=240 ! identity ! fakesink sync=false videotestsrc ! tee name=t ! queue ! autovideosink sync=false t. ! queue ! fakesink sync=false videotestsrc ! tee name=t ! queue ! glimagesink sync=false t. ! queue ! fakesink sync=false
probably because tee rejects ALLOCATION queries. All works fine on Linux with mesa, even when forcing EGL.
I was using the 1.3.0 for Android. In the 1.4.1, it's working fine :) !