Internships/ProjectIdeas/AudioGStreamer
QEMU audio backend
Summary: Rework QEMU audio backend
The audio backend facilitates audio playback and capture using host audio APIs (CoreAudio, PulseAudio, DirectSound, etc). It is used by emulated soundcards and may need to convert between the audio format supported by the emulated soundcard and the format supported by the physical soundcard. This area of the codebase has been stable for a long time but is now due some significant improvements.
The goal of this summer project is to improve the audio/ backend. The preliminary task is to rebase and merge (some or all) of the GSOC "audio 5.1 patches 00/51" series which modernizes the audio backend codebase.
Then, add a generic GStreamer audio backend. GStreamer is an open source multimedia framework that is cross-platform and already supports a lot of the functionality that is implemented in QEMU's audio backend.
Finally, try to replace as much of audio/ by custom gstreamer pipelines. This would be a major simplification that reduces the code size significantly, making QEMU's audio backend smaller and easier to maintain.
Links:
- https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html
- https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosink.html
- https://lists.nongnu.org/archive/html/qemu-devel/2016-01/msg02451.html
Details:
- Skill level: intermediate or advanced
- Language: C
- Mentors: mlureau@redhat.com, kraxel@redhat.com
- Contact: past gsoc student "Kővágó Zoltán" <dirty.ice.hu@gmail.com>
- Suggested by: mlureau@redhat.com