GNOME Bugzilla – Bug 729061
Pipeline ported from 0.10 to 1.0 seems to limit packets
Last modified: 2014-11-17 00:17:57 UTC
I have a pair of pipelines from 0.10 that have issues under 1.0. To replicate, use the following : System information : I've tested using the following gstreamer versions (distributed via Ubuntu 14.04) : gst-launch-0.10 version 0.10.36 gst-launch-1.0 version 1.2.3 The tests were performed on on a HP z600 Dual Quad-Xeon with 24GB ram (speedy!) using the on-board BCM5764M gigabit ethernet (eth0) on a netgear ethernet switch with the following multicast route configured : route add -net 224.0.0.0 netmask 240.0.0.0 eth0 Common config : export MULTICAST_ADDR=239.192.1.254 export PORT=5004 export WIDTH=1024 export HEIGHT=768 Send using GStreamer 0.10 : gst-launch-0.10 videotestsrc ! \ "video/x-raw-yuv,framerate=30/1,width=$WIDTH,height=$HEIGHT" ! \ queue ! rtpvrawpay ! udpsink host=$MULTICAST_ADDR port=$PORT auto-multicast=true Send using GStreamer 1.0 : gst-launch-1.0 videotestsrc ! \ "video/x-raw,format=UYVY,framerate=30/1,width=$WIDTH,height=$HEIGHT" ! \ queue ! rtpvrawpay ! udpsink host=$MULTICAST_ADDR port=$PORT auto-multicast=true Note that the only changes are changing from : video/x-raw-yuv to : video/x-raw,format=UYVY as suggested. In essence the bug is that the stream in 0.01 streams at 30fps as expected but in 1.0 it drops to around 18fps. You can verify this by executing the following loop in another terminal : while true; do \ T1=`cat /sys/class/net/eth0/statistics/tx_packets` ; \ sleep 1; \ T2=`cat /sys/class/net/eth0/statistics/tx_packets` ; \ TXPPS=`expr $T2 - $T1` ; \ echo "tx $1: $TXPPS pkts/s" ; \ done Note : The above is obviously assuming you're using a dedicated ethernet interface for the multicasting with no additional traffic on it! On my machine this produces : 0.10 TX : average 34,350 pkt/s +/- 50 1.0 TX : average 22,900 pkt/s +/- 1000
Current git has some improvements in performance
I would be interested to know what improvements you see with git master of core/base/good (incl. patches to rtpvrawpay) and the patches from bug #732152 and bug #719646 (with gstmultiudpsink.h changed so that the define says that g_socket_send_messages() is available).