Skip to content

The Most Efficient VDA Decoder on OSX

WangBin edited this page Apr 14, 2015 · 1 revision

Some players support VDA decoder and they are efficient enough for most video. They use IOSurface and OpenGL as Apple says. No data copy happens after a frame is decoded. But Apple only tell us UYVY pixel format is supported. It's so strange because many HW decoders support NV12(btw, another strange thing is we must use GL_TEXTURE_RECTANGLE). Also because there are APIs to get information a planar YUV image. So I tried on April 2015. The result is amazing. NV12 totally works and the performance is better than UYVY. Especially for hi resolution videos, the performance improvement is huge.

QtAV 1.5.0 has already support NV12+VDA. There's no zero copy support on that time. But the performance is better than UYVY. Now QtAV supports zero copy. The performance is the best now. Better than any other players.

I've told mpv developers about nv12 support for VDA. They are working on it. But they use new hwaccel api in ffmpeg. So they have to do some changes in ffmpeg. There will be an option to set NV12 in ffmpeg.

Clone this wiki locally