Hands-On Jens Lorenz May 10, 2017 | ALSA Routing Adapter Plugin

Slides:



Advertisements
Similar presentations
Data import and export Skills: none IT concepts: data import and export, common data format This work is licensed under a Creative Commons Attribution-Noncommercial-
Advertisements

Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Audio recording Skills: microphone position and adjustment IT concepts: clipping, dynamic range This work is licensed under a Creative Commons Attribution-Noncommercial-
Chapter 3.7 Memory and I/O Systems. 2 Memory Management Only applies to languages with explicit memory management (C or C++) Memory problems are one of.
Author(s): Paul Conway, License: Unless otherwise noted, this material is made available under the terms of the Creative Commons Attribution.
Communicating with images This work is licensed under a Creative Commons Attribution-Noncommercial- Share Alike 3.0 License. Skills: none IT concepts:
Author(s): Bob Riddle, Kathleen Ludewig Omollo License: Unless otherwise noted, this material is made available under the terms of the Creative Commons.
S.N.A.P. Network Audio Project Team SNAP Radio Ryan Dallaire, Justin Vathje, and Jeremy Lawson.
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
Building a real-world, Internet- scale stock trading application Naveen Prabhu Quadwave Consulting Pvt. Ltd.
Chapter 9: Implementing the Cisco Adaptive Security Appliance
An answer to your common XACML dilemmas Asela Pathberiya Senior Software Engineer.
SERVER I SLIDE: 3. SERVER I Topic for tomorrow: Chapter 3: Configuring Hyper-V ■■ Objective 3.1: Create and configure virtual machine settings (Group.
Copyright © GENIVI Alliance 2015
All brands, logos, and trademarks used in this presentation are under the copyright of their legitimate owner.
IBM Systems Group © 2004 IBM Corporationv 3.04 This presentation is intended for the education of IBM and Business Partner sales personnel. It should not.
Linux Sound Drivers Framework
Virtual Local Area Networks In Security By Mark Reed.
Service Control Using SIP in 3GPP’s IP Multimedia Subsystem (IMS) Xin Chen Fujitsu Laboratories of Europe LTD
From Source Code to Packages and even whole distributions By Cool Person From openSUSE.
SUSE Studio: Building distributions By Cool Person From openSUSE.
Author(s): Rahul Sami and Paul Resnick, 2009
UML Diagrams: Class Diagrams The Static Analysis Model
AGL audio architecture in CES 2017 demo
Provisional Architecture for oneM2M
Copyright © GENIVI Alliance 2016
Intelligent IVI with AI
SCTP Handoff for Cluster Servers
Databases Advanced Course Introduction SoftUni Team Databases Advanced
A brief introduction to the topic
Software testing
CDL Project Status Update
Modernizing your Remote Access
Meta-ivi Testing BoF Tolkien Joh Stephen Lawrence
100% Exam Passing Guarantee & Money Back Assurance
Chapter 4: Routing Concepts
GDP and SOTA Arthur Taylor May 10th, 2017 | Status and Next Steps
Microsoft Azure P wer Lunch
IBM JBPM online Training in Chennai
PostgreSQL Database and C++ Interface (and Midterm Topics)
ADOPTION OF ECLIPSE RCP TO BUILD RICH GUI FOR THE SPACE DOMAIN
My Oracle Support (The next generation Metalink experience) lynn
Copyright © GENIVI Alliance 2014
OpenWorld 2018 Oracle API Platform: How to Manage Typical Workflows
OPERATING SYSTEMS PROCESSES
Microsoft Virtual Academy
Author(s): Paul Conway, PhD, 2010
Microsoft Virtual Academy
1 Author(s): Rebecca W. Van Dyke, M.D., 2012
COPYRIGHT A Melbourne Athenaeum Library Cybersafety Information Guide
Experience with an IT Asset Management System
Fiberdyne Systems DSP Audio HAL Fiberdyne Systems
1 Author(s): Rebecca W. Van Dyke, M.D., 2012
Microsoft Virtual Academy
Author(s): August E. Evrard, PhD
12/9/2018 Desktop Virtualization Corey Hynes Kyle Rosenthal President Technical Lead HynesITe Inc Spider Consulting @windowspcguy.
M318.
Author(s): Rahul Sami and Paul Resnick, 2009
This PowerPoint document can be found at:
Overview of AIGA platform
DESIGN PATTERNS : Adapter Pattern
IP Control Gateway (IPCG)
Hyper-V server deployment - Using the right tools
HD Audio 1.1 Overview David Flenniken
Web Servers (IIS and Apache)
COSMOS/ORBIT Tutorials (Introduction)
List servers (listservs)
Skills: microphone position and adjustment
Franca+ Bernhard Hennlich and Manfred Bathelt
Retrieving compound pages
Presentation transcript:

Hands-On Jens Lorenz May 10, 2017 | ALSA Routing Adapter Plugin Staff Engineer, ADIT GmbH, GENIVI Alliance

Why ALSA Routing Adapter?

Overview Existing Infrastructure Daemon Plugins CommonAPI DBus Generic Controller

Motivation Reduce learning curve Playground to understand domain concept Playground to understand static vs. dynamic IDs Playground independent of audio server AM works as a single daemon ALSA plugins for processing only i.e. mixing Works with Generic Controller Usable for real products Used in platforms with Hands-Free (ECNR) systems

What does it?

Design Domain Database Streaming Control Volume Control ALSA Control Filled on contraction Registered on startup Streaming Control Creates Proxies on demand Proxies can be replaced Volume Control Works with SoftVol ALSA Control On SoundProperty Request

Proxy in Audio

Proxy Interface class IAmRoutingAdapterALSAProxy { } IAmRoutingAdapterALSAProxy(const ra_Proxy_s & proxy); virtual ~IAmRoutingAdapterALSAProxy(); virtual am_timeSync_t getDelay() const = 0; virtual am_Error_e openStreaming() = 0; virtual am_Error_e startStreaming() = 0; virtual am_Error_e stopStreaming() = 0; virtual am_Error_e closeStreaming() = 0; }

Example Needed?

Domain Configuration with Gateway <amra_alsa> <tDOMAIN domNam = "Applications" nodNam = "Cpu"> <tSOURCE srcNam = "MediaPlayer" srcClsNam = "BASE“ /> <tSINK sinkNam = "GatewayIn" visible = "0“ /> </tDOMAIN> <tDOMAIN domNam = "VirtDSP" nodNam = "Cpu"> <tSOURCE srcNam = "GatewayOut" srcClsNam = "BASE" visible = "0“> <tGATEWAY gatewayNam = "Gateway" sinkNam = "GatewayIn" sinkDomNam = “Applications“ lstSrcFrmt = "2" lstSinkFrmt = "2" convertionMatrix = "1"> </tGATEWAY> </tSOURCE> <tSINK sinkNam = "AMP" sinkID = "1“ /> </amra_alsa>

Volume Configuration <tDOMAIN domNam = "Applications" nodNam = "Cpu"> <tSOURCE srcNam = "MediaPlayer" srcClsNam = "BASE“ pcmNam = "vdev_app_mediaplayer" volNam = "vol_mediaplayer" /> <tSINK sinkNam = "Gateway" visible = "0“ /> </tDOMAIN> ALSA configuration: pcm.vdev_app_mediaplayer { type plug slave.pcm vdev_mpsv } pcm.vdev_mpsv { type softvol slave.pcm “hw:Loopback,0" control.name vol_mediaplayer control.card 0

Proxy Configuration <tDOMAIN domNam = "VirtDSP" nodNam = "Cpu"> <tSOURCE srcNam = "Gateway" srcClsNam = "BASE" visible = "0“ /> <tSINK sinkNam = "AMP" sinkID = "1“ /> <tPROXY srcNam = "Gateway" sinkNam = "AMP“ pcmSrc = "vdev_dsp_gateway“ pcmSink = "vdev_dsp_amp“ lstRates = "48000" msBuffersize = "8" CPUSchedulingPolicy = "1" CPUSchedulingPriority = "80" /> </tDOMAIN> ALSA configuration: pcm.vdev_dsp_gateway { type hw slave.card “Loopback” slave.device 0 } pcm.vdev_dsp_amp { type dmix slave.pcm “hw:0” slave.rate 48000 slave.channels 2

Sound Properties <tDOMAIN domNam = "VirtDSP" nodNam = "Cpu"> <tSOURCE srcNam = "Gateway" srcClsNam = "BASE" pcmNam = "vdev_app_mediaplayer" /> <tPROPERTY type = "1"> <tPROPSPEC value = "1“ namsVals = "vol_mediaplayer, 50; ADC High-Pass Filter, High Pass;“ /> <tPROPSPEC value = "2“ namsVals = "vol_mediaplayer, 200; ADC High-Pass Filter, None;“ /> </tPROPERTY> </tSOURCE> </tDOMAIN>

Next?

Open Topics Generic Controller works with fix topology USB sound card detection support

Questions? genivi-audio-manager@lists.genivi.org jlorenz@de.adit-jv.com References https://github.com/GENIVI/AudioManager https://github.com/GENIVI/AudioManagerPlugins

Thank You! Visit GENIVI at http://www.genivi.org or http://projects.genivi.org Contact us: help@genivi.org This work is licensed under a Creative Commons Attribution-Share Alike 4.0 (CC BY-SA 4.0) GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries. Copyright © GENIVI Alliance 2017.