sun microsystems Systems Architecture Committee _________________________________________________________________ Subject: Boomer: Next Generation Audio Submitted by: Garrett D'Amore File: PSARC/2008/318/opinion.ms Date: March 5th, 2009 Committee: Garrett D'Amore (opinion written by Phi Tran), James D. Carlson, Mark Carlson, Rick Matthews, Sebastien Roy, Glenn Skinner. Product Approval Committee: Solaris PAC solaris-pac-opinion@sun.com 1. Summary Boomer: Next Generation Audio is a project to modernize the Solaris kernel-based audio system. The framework will be modernized to support the popular Open Sound System API used by several popular free operating systems, including Linux and FreeBSD. Audio quality will be improved by adding features such as high definition (both high frequency and high resolution sampling) and multichannel (for example, 7.1 surround sound) audio support. 2. Decision & Precedence Information The project is approved as specified in reference [1] - [3], but as modified by the required technical change listed in Appendix A below. The project may be delivered in a minor release of the ON consolidation. The project depends on the following other project and may not be delivered before it. LSARC/2009/074 EOF sdtaudiocontrol 3. Interfaces PSARC/2008/318 Copyright 2009 Sun Microsystems - 2 - The project exports the following interfaces. ______________________________________________________________________________ | Interfaces Exported | |______________________|_______________________|_____________________________| |Interface | Classification | Comments | |______________________|_______________________|_____________________________| |audio(7I) | Obsolete Committed | We've marked this API as | | | | Obsolete. We've also | | | | changed some semantics in | | | | ways that we believe are | | | | compatible. | | | | See the specification | | | | for more detail. | |mixer(7I) | See comments. | The old Sun mixer(7I) has | | | | been REMOVED. A new OSSv4 | | | | API is provided in its | | | | place with Uncommitted | | | | binding. | | | | See the specification for | | | | more detail. | |OSS API | Uncommitted | External userland API spec.| |/dev/sndstat | Uncommitted | Node for finding OSS dev | | | | nodes. | |/dev/audio | Obsolete Committed | Legacy Sun | |/dev/audioctl | Obsolete Committed | Legacy Sun | |/dev/sound/[0-9]+ | Obsolete Committed | Legacy Sun | |/dev/sound/[0-9]+ctl | Obsolete Committed | Legacy Sun | |/dev/mixer | Uncommitted | Symbolic link to | | | | /dev/sndstat | |/dev/dsp | Uncommitted | File name may change. | |Boomer DDI | Consolidation Private| New device driver API | |ac97 DDI | Consolidation Private| AC'97 support routines. | |SADA DDI | REMOVED | Legacy device driver API | |amsrc2 | REMOVED | | |mixer(7d) | REMOVED | | |audiosup(7d) | REMOVED | | |mixerctl(1) | Uncommitted | New CLI switches, may raise| | | | commitment later. | |audio control names | Uncommitted | ASCIIZ representation for | | | | hardware audio controls. | |audioplay -p & -m | REMOVED | Per TCA | |audiorecord -p & -m | REMOVED | Per TCA | |Client Personality API| Project Private | "audio_client.h" header. | |audiopci | Uncommitted | New audio driver. | |______________________|_______________________|_____________________________| 4. Opinion PSARC/2008/318 Copyright 2009 Sun Microsystems - 3 - 4.1. sdtaudiocontrol dependency A member wanted to understand if sdtaudiocontrol should be removed from Nevada before Boomer integration. The project team noted that LSARC/2009/074 EOF sdtaudiocontrol has been filed. In addition, LSARC/2009/074 is noted as a dependency for this case and the project team will file a bug. 4.2. digital telephone interface support A member questioned if Boomer could architecturally support digital telephone interfaces which are inherently 8-bit mu- law PCM (or A-law in Europe). The project team clarified that there is no support currently in Boomer to handle tele- phone inputs, but that Boomer could support these interfaces if there was a need. 4.3. audioplay and audiorecord command line options A member asked if the disabled command line options in audioplay and audiorecord will have an EOF announcement. Other members stated that having the functionality of the command line options available and not work properly was problematic. The project team noted that these command line options were still available due to concern over breaking programs that depend on them. The project team decided that this concern was not a strong enough reason and agreed to a TCR to make the EOF announcement regarding the command line options. Also, the project team agreed to a TCA to remove disabled command line options that handle port selection and master settings such as volume control and monitor gain. 4.4. audigy and SADA DDI Since the audigy driver will not be supported in phase I, a member asked about the support of the public SADA inter- faces. The project team clarified that the SADA interfaces are actually consolidation private and not public. 5. Minority Opinion(s) None. 6. Advisory Information During the review, concerns were expressed over the lack of project alignment between SunRay and OpenSolaris. The com- mittee believes that this lack of alignment could, at least partially, be mitigated by SunRay components being reviewed within the OpenSolaris ARC process. 7. Appendices PSARC/2008/318 Copyright 2009 Sun Microsystems - 4 - 7.1. Appendix A: Technical Changes Required 1. The project team will make an EOF announcement about disabled audioplay and audiorecord command line options. 7.2. Appendix B: Technical Changes Advised 1. The project team will remove disabled command line options that handle port selection and master settings such as volume control and monitor gain. 7.3. Appendix C: Reference Material Unless stated otherwise, path names are relative to the case directory PSARC/2008/318. 1. 20 Questions File: inception.materials/boomer.20q 2. Project Specification File: commitment.materials/boomer.pdf 3. Issues and Responses File: issues 4. Man Page for dsp OSS API File: commitment.materials/dsp.7I 5. Man Page for mixer OSS API File: commitment.materials/mixer.7I 6. Community OSS website http://developer.opensound.com/ PSARC/2008/318 Copyright 2009 Sun Microsystems