Internships/ProjectIdeas/VirtioSound: Difference between revisions

From QEMU
No edit summary
No edit summary
Line 10: Line 10:


To familiarize yourself with the project idea (see links below):
To familiarize yourself with the project idea (see links below):
1. Review the VIRTIO sound device specification.
# Review the VIRTIO sound device specification.
2. Review the audio/audio.h QEMU audio subsystem API.
# Review the audio/audio.h QEMU audio subsystem API.
3. Review the unfinished patches.
# Review the unfinished patches.


This project will expose you to device emulation, VIRTIO, and you'll learn how audio devices work at the hardware interface level.
This project will expose you to device emulation, VIRTIO, and you'll learn how audio devices work at the hardware interface level.

Revision as of 15:34, 31 January 2023

VirtioSound

Summary: Implement device emulation for the new virtio-sound device.

The VIRTIO specification defines a sound device and Linux has a guest driver for it, but QEMU does not emulate the virtio-sound device yet.

The goal is to implement virtio-sound in QEMU with mono and stereo playback and capture. There is unfinished code for virtio-sound playback support that you can use as a starting point. It will be necessary to clean up the code and add capture support.

As stretch goals you can implement additional functionality covered by the specification, including support for multi-channel devices (e.g. surround sound playback), channel maps, etc.

To familiarize yourself with the project idea (see links below):

  1. Review the VIRTIO sound device specification.
  2. Review the audio/audio.h QEMU audio subsystem API.
  3. Review the unfinished patches.

This project will expose you to device emulation, VIRTIO, and you'll learn how audio devices work at the hardware interface level.

Links:

Details:

  • Skill level: intermediate/advanced
  • Language: C
  • Mentor: Stefan Hajnoczi <stefanha@redhat.com>
  • Suggested by: Gerd Hoffmann <kraxel@redhat.com>