[streaming] Possible Memory leak & problems with UDP playback
videolanforums
videolanforums at vitalit.co.uk
Wed May 28 03:48:14 CEST 2008
Hi All,
Posting as suggested by Jean-Baptiste Kempf :
http://forum.videolan.org/viewtopic.php?f=13&t=46959
Here's my scenario :-
Ubuntu Hardy Heron 64Bit with standard apt-get of vlc version 0.8.6e
Janus - Compiler: gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7).
I have three DVB-T tuners :
1 x PCI "Tiger"
1 x USB MSI Mega sky 580 - Zarlink MT352
1 x USB Grand Tech - DiBcom 3000MC/P
Each USB tuner has it's own EHCI controller (on onboard & 1 add in PCI).
I select a transponder and stream each of the available channels to a
port on localhost with something like :
Code:
vlc --ts-es-id-pid --programs=8258,8325,8294,8353,8384 dvb:
--dvb-adapter=2 --dvb-frequency=665833330 --dvb-srate=27500000
--sout-standard-access=udp --sout-standard-mux=ts --sout
'#duplicate{dst=std{dst=127.255.255.255:8000},select="program=8258",dst=std{dst=127.255.255.255:8001},select="program=8325",dst=std{dst=127.255.255.255:8002},select="program=8294",dst=std{dst=127.255.255.255:8003},select="program=8353",dst=std{dst=127.255.255.255:8004},select="program=8384"}'
&
vlc --ts-es-id-pid --programs=12866,12992 dvb: --dvb-adapter=0
--dvb-frequency=650166670 --dvb-srate=27500000
--sout-standard-access=udp --sout-standard-mux=ts --sout
'#duplicate{dst=std{dst=127.255.255.255:9000},select="program=12866",dst=std{dst=127.255.255.255:9001},select="program=12992"}'
&
vlc --ts-es-id-pid --programs=4173,4237,4351,4415,4671 dvb:
--dvb-adapter=1 --dvb-frequency=641833330 --dvb-srate=27500000
--sout-standard-access=udp --sout-standard-mux=ts --sout
'#duplicate{dst=std{dst=127.255.255.255:7000},select="program=4173",dst=std{dst=127.255.255.255:7001},select="program=4237",dst=std{dst=127.255.255.255:7002},select="program=4351",dst=std{dst=127.255.255.255:7003},select="program=4415",dst=std{dst=127.255.255.255:7004},select="program=4671"}'
&
I then have a program that wraps libvlc to "restream" to my intended
clients - the cli version would like like this :
Code:
vlc udp://@:8000 --sout
'#duplicate{dst=std{access=udp,mux=ts,dst=10.250.250.69:7000}}'
With a client that wraps libvlc to display content and a means of
channel selection - a static client looks like :
Code:
vlc udp://@:7000
Problems
1) The main vlc instances that talk to the tuners seem to be leaking
memory like a sieve (Seems worse on transponders with moving channels -
see 3).
2) When a badly corrupted stream is read the client freezes displaying
the that data it could decode and will NOT always restart of it's own
accord.
3) Some of the dvb-t channels on my local multiplexes "swap" depending
on time of day - that is to say during the day you may see one channel
(kids tv for example) in a slot, but at night the channel changes to
more mature content. Vlc does not seem to notice this change in the
streams apart from losing the departing channel.
4) I have yet to discover the root cause, but vlc also seems at times to
incorrectly identify the audio pid as some channels start without audio
on the main channel - a restart or two of the backend vlc usually gets
it to pick the correct audio.
I have no C or C++ skills but will be glad to follow up and try to help
diagnosing these further.
Thoughts / advice ?
Thanks in advance
Matt
More information about the streaming
mailing list