6 ms·
I wrote the Vulkan ProRes backend. The bitstream decoder was implemented from scratch, for a number of reasons. First, the original code was reverse-engineered
by averne_ 6mo ago
I wrote the Vulkan ProRes backend. The bitstream decoder was implemented from scratch, for a number of reasons.
First, the original code was reverse-engineered, before Apple published an SMPTE document describing the bitstream syntax. Second, I tried my best at optimizing the code for GPU hardware. And finally, I wanted take the learning opportunity :)
And to answer the parent's question, the shaders are written in pure GLSL. For instance, this is the ProRes bitstream decoder in question: https://code.ffmpeg.org/FFmpeg/FFmpeg/src/branch/master/libavcodec/vulkan/prores_vld.comp.glsl https://code.ffmpeg.org/FFmpeg/FFmpeg/src/branch/master/liba...
- sylware 6mo agoglsl: this is the really bad part, as this is a definitive nono. Should have been a plaind and simple C coded generator of SPIR-V byte code.