Hi (Remi),
I have a problem when my application is using several vlc instances, all taking advantage of the vpdau hw acceleration.
In detail, I do the following:
1) I call XInitThreads()
2) I get an instance of libvlc_new()
3) I create a media player from that instance [media_player_new()]
4) I create a media from that instance [media_new()]
==> When playing live media (rtsp unicast/multicast), vdpau works fine:
- Library does not complaing about uninitialized X11
- I can see from Nvidia's proprietary linux program, in tab "GPU-0" => "Video Engine Utilization" becoming larger that "0 %" (**)
Now, when trying to play several live media simultaneously:
1) I call XInitThreads()
2) I create n libvlc_new() instances (take n=4 for starters)
3) I create a media player from each instance (= n media players)
4) I create a media from each instance (= n media)
==> When playing n live media, vdpau does not work correctly:
- Library does not complaing about uninitialized X11
- I can see from Nvidia's proprietary linux program, in tab "GPU-0" => "Video Engine Utilization" becoming larger that "0 %" (**)
- .. but however, the video is "choppy" and the vlc library is complaining all the time that "more than 5 secs too late video" .. finally the videos freeze
Question: is there some caveat here when using several vlc instances with vdpau from the same program..? Vdpau itself should be thread-safe, right?
On the contrary, when I launch from the command line n independent vlc client programs (say, again n=4), they all seem to use vdpau correctly (**) and there is no freezing of the video.
Any thoughts on this problem highly appreciated!
Regards,
Sampsa
P. S. This is in python, see also:
https://forum.videolan.org/viewtopic.php?f=32&t=136443