stuartiannaylor wrote: ↑
Tue May 07, 2019 11:44 pm
As far as I can gather VC4 is right at the very edge of its abilities with 1080p. It creates a direct frame buffer matching 1080p and manages but with no further room for scaling.
I've noticed that you are spilling the same kind of wrong information and misunderstandings regarding the VC4 and video decoding/playing in a number of forum threads.
1) The VC4 H264 decoder is specified for up to 1080p30. But it can easily decode 1080p60 if the H264 Decoder/Encoder (or the complete GPU) is slightly overclocked (300MHz). If I remenber correctly, omxplayer does this automatically, if it detects higher frame rates. I have been safely using a GPU clock of 500MHz on all my Rpis (starting from the Rpi B to the RPi 3B+).
2) The output of the video decoder is usually some kind of YUV format. The VC4 can send this directly to the video output using an overlay. This method is used by omxplayer, for example.
If you weant to use it inside a XORG-Window-Application, it has to be copied in real time into the frambuffer first. This is not just a simple copy but includes a rather costly color conversion from YUV to RGB(A). This method is used (added by the foundation developers) in chromium and VLC (and also in Epiphany up to Jessie).
The copying/conversion process has never worked perfectly in full screen resolution (at least not on 1920x1080 screen resolutions). There are always a number of lost frames. For this reason, the Foundation developers have added a special module to VLC (MMAL X11 Splitter). It switches to overlay method if you switch from window mode to full screen. No lost frames any more!
3) Video scaling is not a problem at all for the GPU. I'm using it all the time in my omxplayerGUI. This GUI wrapps a window around the (scaled) video output of omxplayer, but the video content is still running in an overlay.
4) 96 to 128 MB GPU memory are always enough for video in any resolution. More GPU memory is only needed for special applications which also use other parts of the GPU (Kodi, for example, needs a minimum of 160 MB). Another example is my Real Time Transcoder for DVB streams. Using more GPU memory will remove valuable memory from the ARM processor and in fact slow down the system (because it needs more swapping).
5) The DRM (full or fake KMS) drivers have nothing to do with video decoding acceleration at all. In fact, they may keep some things from working. They are still in alpha state and should only be used, if you want to accelerate 3D (and also some 2D) graphics.