Skip to content

Stream statistics is broken on RTP streams

Operating system: Raspbian (based on Debian 8.0), but supposedly is reproducable on any OS. Hardware: Raspberry PI 3 (BCM2709, ARMv7 Processor rev 4 (v7l)), but supposedly is reproducable on any hardware. Exact version of VLC: nightly vlc-3.0.0-20170109-0241-git

How to reproduce: Play RTP multicast stream (tested on MPEG2 stream) in rvlc, and issue command "stats". Empty stats are shown. If this stream is recorded into a file and then replayed by rvlc, then stats are fine. If same stream is fetched by http, then stats are fine as well. Example of empty stats from rvlc output is in attachment.

After a lot of digging in sources, I believe that problem started with commit f4348329

In this commit "demux->pf_demux" was set to NULL for RTP streams. And in "src/input/input.c" in function MainLoop pf_demux still is checked. If it is NULL, then "i_wakeup" stays "-1" when called ControlPop later in this function, and loop stops there, waiting for a control. As loop stopped, MainLoopStatistics isn't called regularly, so stats are indeed empty.

Dirty workaround is to issue a control command in rvlc regularly, for example "rate 1". While doing so, stats are incrementing. Less dirty workaround can be done with a patch in attachment. But still, I don't think this workaround is clean enough for being a bugfix.

Edited by Jean-Baptiste Kempf
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information