Delve into the Broadcom VideoCore GPU used on the Raspberry Pi and master topics such as OpenGL ES and OpenMAX. Along the way, you’ll also learn some Dispmanx, OpenVG, and GPGPU programming.
The author, Jan Newmarch bumped into a need to do this kind of programming while trying to turn the RPi into a karaoke machine: with the CPU busting its gut rendering MIDI files, there was nothing left for showing images such as karaoke lyrics except for the GPU, and nothing really to tell him how to do it.
Raspberry Pi GPU Audio Video Programming scratches his itch and since he had to learn a lot about RPi GPU programming, he might as well share it with you. What started as a side issue turned into a full-blown project of its own; and this stuff is hard.
What You'll Learn
You should be comfortable with C programming and at least some concurrency and thread programming using it. This book is for experienced programmers who are new or learning about Raspberry Pi.
The author, Jan Newmarch bumped into a need to do this kind of programming while trying to turn the RPi into a karaoke machine: with the CPU busting its gut rendering MIDI files, there was nothing left for showing images such as karaoke lyrics except for the GPU, and nothing really to tell him how to do it.
Raspberry Pi GPU Audio Video Programming scratches his itch and since he had to learn a lot about RPi GPU programming, he might as well share it with you. What started as a side issue turned into a full-blown project of its own; and this stuff is hard.
What You'll Learn
- Use Dispmanx and EGL on Raspberry Pi
- Work with OpenMAX and its components, state, IL Client Library, * * Buffers, and more on RPi
- Process images and video on RPi
- Handle audio on RPi
- Render OpenMAX to OpenGL on the RPi
- Play multimedia files on the RPi
- Use OpenVG for text processing and more
- Master overlays
You should be comfortable with C programming and at least some concurrency and thread programming using it. This book is for experienced programmers who are new or learning about Raspberry Pi.