Delphi libvlc multi threaded troubles
Posted: 23 Dec 2013 18:25
HI!
We've developed a video surveillance application written in delphi which uses libvlc and multiple player instances for video decoding. We also use vlc's vlm for video stream distribution from ip cameras (rstp input ---> http output (sometimes with transcoding from h264 to mjpeg).
Everything works fine from the start, but after some time users run into issues:
1) If user changes video screens rapidly some vlc player instances seams to hang while trying to disconnect from source and our app waits for them eternally.
2) After a very long time of playing ( from 2 to 3 days typically) whole libvlc somehow crashes and present the same picture to callback over and over again with no cpu or network activivity ( looks like a freeze frame to user). Attempt to disconnect from source results in previous issue- dead hang.
Right now we are using libvlc from vlc player 1.1.9.
We've tried moving to latest 2.1.X tree, but somehow it gives us new troubles:
1) Cpu and memory consumption are greater than vlc 1.1.X
2) Our app cannot spawn more than 19 video channels ( vlc player instances). With vlc 1.1.X we could do 36 channels on the same hardware.
What can we do about all those troubles? We are pretty much stuck with no ideas, so you help would be very appreciated.
We've developed a video surveillance application written in delphi which uses libvlc and multiple player instances for video decoding. We also use vlc's vlm for video stream distribution from ip cameras (rstp input ---> http output (sometimes with transcoding from h264 to mjpeg).
Everything works fine from the start, but after some time users run into issues:
1) If user changes video screens rapidly some vlc player instances seams to hang while trying to disconnect from source and our app waits for them eternally.
2) After a very long time of playing ( from 2 to 3 days typically) whole libvlc somehow crashes and present the same picture to callback over and over again with no cpu or network activivity ( looks like a freeze frame to user). Attempt to disconnect from source results in previous issue- dead hang.
Right now we are using libvlc from vlc player 1.1.9.
We've tried moving to latest 2.1.X tree, but somehow it gives us new troubles:
1) Cpu and memory consumption are greater than vlc 1.1.X
2) Our app cannot spawn more than 19 video channels ( vlc player instances). With vlc 1.1.X we could do 36 channels on the same hardware.
What can we do about all those troubles? We are pretty much stuck with no ideas, so you help would be very appreciated.