Opened 10 years ago

#3347 new defect

Amounts of UDP traffic below some limit are not transmitted with aviocat

Reported by: Andrey Utkin Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
Amounts of UDP traffic below some limit are not transmitted with aviocat. Haven't determined yet whether that's just aviocat, or UDP protocol implementation failure.
The problem must be on receiving side (because traffic is seen in sniffer, and because GStreamer udpsrc catches it).
Transmitting and reading continuous media stream by same UDP address works (both unicast and multicast).

ffmpeg version N-60111-g094516a

How to reproduce:

./tools/aviocat "udp://127.0.0.1:1234" /dev/stdout &  sleep 1; yes | head -n 10000 | ./tools/aviocat /dev/stdin "udp://127.0.0.1:1234?pkt_size=2"; fg
./tools/aviocat "udp://225.1.1.1:1234?localaddr=127.0.0.1" /dev/stdout &  sleep 1; yes | head -n 10000 | ./tools/aviocat /dev/stdin "udp://225.1.1.1:1234?localaddr=127.0.0.1&pkt_size=2"; fg

There you get no "y" lines output in terminal. Setting fifo_size=0 and/or buffer_size=0 on receiving side does not help.

Although if you increase number of transmitted packets, then you get output:

./tools/aviocat "udp://127.0.0.1:1234" /dev/stdout &  sleep 1; yes | head -n 100000 | ./tools/aviocat /dev/stdin "udp://127.0.0.1:1234?pkt_size=2"; fg

GStreamer socket reading interface gives output even with one byte transmitted:

gst-launch-1.0 udpsrc uri=udp://127.0.0.1:1234  ! fdsink fd://1 &  sleep 1; echo -n "y" | ./tools/aviocat /dev/stdin udp://127.0.0.1:1234; fg

Change History (0)

Note: See TracTickets for help on using tickets.