We need to develop functionality for live stream HD playback in VLC. This describes our situation:
? We use VLC on ION and ION2.
? CPU Atom 330 and Atom D525
* VAAPI and VDPAU-VIDEO installed (vlc and ffmpeg compiled with support for these)
* VLC (MPEG-4 TS h264 1080i50) no-ffmpeg-hw = 100% cpu, almost still picture (lots of lagging)
* VLC (MPEG-4 TS h264 1080i50) with ffmpeg-hw = 90%-100% cpu, lots of lag
* We have tested mplayer (MPEG-4 TS h264 1080i50) -vo vdpau = 2%-10% cpu, fine playback.
Since we can get mplayer to play the same sources (Multicasted MPEG4 TS 1080i50) with almost no CPU usage, it should be possible to get VLC to play with good performance as well. The reason we want to use VLC instead of mplayer is that we in general think VLC is a better player, especially with multicasts, and that we are having audio/video sync problems with mplayer.
Although we do not know how VLC operates in details, we have a theory why mplayer is performing better than VLC on this task. As far as we know, mplayer is displaying the output from vdpau directly, while VLC is copying each frame from va api via memory. (The theory about this being the problem is supported by the fact that VLC performs worse on ION2 (and Atom D525) than ION (and Atom 330). Which may be explained by that with ION the GPU is on the northbridge while with ION2 it is placed on the southbridge)
As we understand it this is necessary for VLC to have complete control of the output and be able to perform picture processing. If this is the case, we think we need VLC to perform any picture processing. We need the source to be deinterlaced. And in addition we must support subtitles, but that should also be possible to render separately without the need to copy the whole picture via memory.
It should be possible to open for an option in VLC to display the output from VA API directly without memcopy.
For your interest we have tried all possible combinations of *--fmpeg-skip-frame=1/2/3/4 --ffmpeg-skip-idct=1/2/3/4 --ffmpeg-skipframeloop=1/2/3/4 --ffmpeg-hurry-up --ffmpeg-fast --ffmpeg-dr --no-ffmpeg-dr --no-audio --no-osd*without any severe performance improvements.