After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 729061 - Pipeline ported from 0.10 to 1.0 seems to limit packets
Pipeline ported from 0.10 to 1.0 seems to limit packets
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: dont know
1.2.3
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-27 14:17 UTC by David Peverley
Modified: 2014-11-17 00:17 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description David Peverley 2014-04-27 14:17:14 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
Comment 1 Wim Taymans 2014-04-30 14:32:00 UTC
Current git has some improvements in performance
Comment 2 Tim-Philipp Müller 2014-06-24 17:57:56 UTC
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).