Securing critical audio paths
By allocating audio resources based on the correlation between requests and key audio paths in the audio processing system, the problem of bad actors covering key audio is solved, and resource conservation and security are improved.
Patent Information
- Application Number
- CN202380075716.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-11-07
- Filing Date
- 2023-09-20
- Publication Date
- 2025-06-03
AI Technical Summary
The prior art is difficult to effectively protect critical audio paths, resulting in bad actors that may cover critical audio, reduce security and waste resources in audio chains.
Receive requests for audio sessions, channels, or pins in audio digital signal processor (DSP), time division multiplexing (TDM) blocks, and codec hardware, and send an indication of the assigned audio session ID, port, or hardware pin based on the request's dependence with the critical audio path.
Effectively prevent bad actors from occupying audio resources unnecessary, thereby saving power and processing resources and improving the security of the audio chain.
Smart Images

Figure CN120092229A_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This patent application claims priority to U.S. Non - Provisional Patent Application No. 18 / 053,207, entitled "SECURING CRITICAL AUDIOPATHS", filed on November 7, 2022, which is hereby incorporated by reference in its entirety. Technical Field
[0003] Aspects of the present disclosure generally relate to audio generation and, for example, to securing critical audio paths. Background Art
[0004] For audio playback, the audio chain typically includes a digital signal processor (DSP) to generate a digital output signal based on an input file or another type of digital input from an audio source. Additionally, the DSP will send the output signal to a time - division multiplexing (TDM) block (which may be part of a digital - to - analog converter (DAC)) for conversion to an analog signal and possibly combined with additional signals (e.g., from other audio sessions processed by the DSP). The TDM block (e.g., via the DAC's bus) may send the analog signal to a codec, and the codec may generate analog commands for an audio speaker to output an audio wave corresponding to the input from the audio source. Summary of the Invention
[0005] Some aspects described herein relate to an apparatus for audio generation at an audio digital signal processor (DSP). The apparatus may include a memory and one or more processors coupled to the memory. The one or more processors may be configured to receive a request for an audio session. The one or more processors may be configured to send an indication of an assigned audio session identifier (ID) at least in part based on whether the request is associated with a critical audio path.
[0006] Some aspects described herein relate to an apparatus for audio generation at a time - division multiplexing (TDM) block. The apparatus may include a memory and one or more processors coupled to the memory. The one or more processors may be configured to receive a request for an audio channel. The one or more processors may be configured to send an indication of an assigned audio port at least in part based on whether the request is associated with a critical audio path.
[0007] Some aspects described herein relate to an apparatus for audio generation at codec hardware. The apparatus may include a memory and one or more processors coupled to the memory. The one or more processors may be configured to receive a request for an audio channel. The one or more processors may be configured to send an indication of an assigned hardware pin, at least in part, based on whether the request is associated with a critical audio path.
[0008] Some aspects described herein relate to an apparatus for audio generation at an audio system. The apparatus may include a memory and one or more processors coupled to the memory. The one or more processors may be configured to receive a request for an audio session at an audio DSP. The one or more processors may be configured to send an indication of an assigned audio session ID, at least in part, by the audio DSP based on whether the request for the audio session is associated with a critical audio path. The one or more processors may be configured to receive a request for an audio channel at a TDM block. The one or more processors may be configured to send an indication of an assigned audio port, at least in part, by the TDM block based on whether the request for the audio channel is associated with a critical audio path. The one or more processors may be configured to receive a request for an audio pin at codec hardware. The one or more processors may be configured to send an indication of an assigned hardware pin, at least in part, by the codec hardware based on whether the request for the audio pin is associated with a critical audio path.
[0009] Some aspects described herein relate to a method performed by an audio DSP. The method may include receiving a request for an audio session. The method may include sending an indication of an assigned audio session ID, at least in part, based on whether the request is associated with a critical audio path.
[0010] Some aspects described herein relate to a method performed by a TDM block. The method may include receiving a request for an audio channel. The method may include sending an indication of an assigned audio port, at least in part, based on whether the request is associated with a critical audio path.
[0011] Some aspects described herein relate to a method performed by codec hardware. The method may include receiving a request for an audio channel. The method may include sending an indication of an assigned hardware pin, at least in part, based on whether the request is associated with a critical audio path.
[0012] Some aspects described herein relate to a method performed by an audio system. The method may include receiving, at an audio DSP, a request for an audio session. The method may include sending, by the audio DSP, an indication of an assigned audio session ID based at least in part on whether the request for the audio session is associated with a critical audio path. The method may include receiving, at a TDM block, a request for an audio channel. The method may include sending, by the TDM block, an indication of an assigned audio port based at least in part on whether the request for the audio channel is associated with a critical audio path. The method may include receiving, at codec hardware, a request for an audio pin. The method may include sending, by the codec hardware, an indication of an assigned hardware pin based at least in part on whether the request for the audio pin is associated with a critical audio path.
[0013] Some aspects described herein relate to a non-transitory computer-readable medium storing a set of instructions for audio generation by an audio DSP. The set of instructions, when executed by one or more processors of the audio DSP, may cause the audio DSP to receive a request for an audio session. The set of instructions, when executed by one or more processors of the audio DSP, may cause the audio DSP to send an indication of an assigned audio session ID based at least in part on whether the request is associated with a critical audio path.
[0014] Some aspects described herein relate to a non-transitory computer-readable medium storing a set of instructions for audio generation by a TDM block. The set of instructions, when executed by one or more processors of the TDM block, may cause the TDM block to receive a request for an audio channel. The set of instructions, when executed by one or more processors of the TDM block, may cause the TDM block to send an indication of an assigned audio port based at least in part on whether the request is associated with a critical audio path.
[0015] Some aspects described herein relate to a non-transitory computer-readable medium storing a set of instructions for wireless communication by codec hardware. The set of instructions, when executed by one or more processors of the codec hardware, may cause the codec hardware to receive a request for an audio channel. The set of instructions, when executed by one or more processors of the codec hardware, may cause the codec hardware to send an indication of an assigned hardware pin based at least in part on whether the request is associated with a critical audio path.
[0016] Some aspects described herein relate to a non-transitory computer-readable medium that stores a set of instructions for audio generation by an audio system. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to receive a request for an audio session at an audio DSP. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to send an indication of an assigned audio session ID at least in part based on whether the request for the audio session is associated with a critical audio path. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to receive a request for an audio channel at a TDM block. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to send an indication of an assigned audio port at least in part based on whether the request for the audio channel is associated with a critical audio path. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to receive a request for an audio pin at codec hardware. The set of instructions, when executed by one or more processors of the audio system, can cause the audio system to send an indication of an assigned hardware pin at least in part based on whether the request for the audio pin is associated with a critical audio path.
[0017] Some aspects described herein relate to an apparatus for wireless communication. The apparatus can include means for receiving a request for an audio session. The apparatus can include means for sending an indication of an assigned audio session ID at least in part based on whether the request is associated with a critical audio path.
[0018] Some aspects described herein relate to an apparatus for wireless communication. The apparatus can include means for receiving a request for an audio channel. The apparatus can include means for sending an indication of an assigned audio port at least in part based on whether the request is associated with a critical audio path.
[0019] Some aspects described herein relate to an apparatus for wireless communication. The apparatus can include means for receiving a request for an audio pin. The apparatus can include means for sending an indication of an assigned hardware pin at least in part based on whether the request is associated with a critical audio path.
[0020] Some aspects described herein relate to an apparatus for wireless communication. The apparatus may include components for receiving a request for an audio session at an audio DSP. The apparatus may include components for sending an indication of an assigned audio session ID based at least in part on whether the request for the audio session is associated with a critical audio path. The apparatus may include components for receiving a request for an audio channel at a TDM block. The apparatus may include components for sending an indication of an assigned audio port based at least in part on whether the request for the audio channel is associated with a critical audio path. The apparatus may include components for receiving a request for an audio pin at codec hardware. The apparatus may include components for sending an indication of an assigned hardware pin based at least in part on whether the request for the audio pin is associated with a critical audio path.
[0021] Aspects generally include methods, apparatus, systems, computer program products, non-transitory computer-readable media, user equipment, user gear, wireless communication devices, and / or processing systems as substantially described with reference to the figures and as illustrated in the figures and the description.
[0022] The features and technical advantages of examples in accordance with the present disclosure have been outlined rather broadly above so that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter. The disclosed concepts and specific examples may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Such equivalent constructions do not depart from the scope of the appended claims. When considered in conjunction with the accompanying figures, the characteristics (both their organization and method of operation) of the concepts disclosed herein, as well as the associated advantages, will be better understood. Each of the figures provided is for the purpose of illustration and description and is not a definition of the limits of the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] To gain a more particular understanding of the above-described features of the present disclosure, a more specific description of the inventive content briefly outlined above may be obtained by reference to aspects, some of which are illustrated in the figures. It should be noted, however, that the figures illustrate only certain typical aspects of the present disclosure and are therefore not to be considered limiting of its scope, as the specification may admit other equally effective aspects. The same reference numerals in different figures may identify the same or similar elements.
[0024] Figure 1 is a diagram illustrating an example environment in which the protection of a critical audio path described herein may be implemented in accordance with the present disclosure.
[0025] Figure 2 is a diagram illustrating an example of Figure 1 one or more devices such as an audio output device shown in accordance with the present disclosure.
[0026] Figures 3A to 3B is a diagram illustrating an example associated with protecting a critical audio path according to the present disclosure.
[0027] Figures 4A to 4B is a diagram illustrating an example associated with protecting a critical audio path according to the present disclosure.
[0028] Figures 5A to 5B is a diagram illustrating an example associated with protecting a critical audio path according to the present disclosure.
[0029] Figure 6 , Figure 7 and Figure 8 are flowcharts showing example processes associated with protecting a critical audio path according to the present disclosure. Detailed Description
[0030] Aspects of the present disclosure are more fully described below with reference to the accompanying drawings. However, the present disclosure may be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art. Those skilled in the art should understand that the scope of the present disclosure is intended to cover any aspect of the present disclosure disclosed herein, whether implemented independently of or in combination with any other aspect of the present disclosure. For example, any number of the aspects set forth herein may be used to implement a device or practice a method. Additionally, the scope of the present disclosure is intended to cover such devices or methods practiced using other structures, functions, or a combination of structures and functions in addition to or different from the aspects of the present disclosure set forth herein. It should be understood that any aspect of the present disclosure disclosed herein may be embodied by one or more elements of the claims.
[0031] The output audio chain may include a Digital Signal Processor (DSP) configured to generate a digital output based on a digital input from an audio source. The audio source may include a host system and / or a user device (e.g., a user device connected to the host system via a wired connection and / or a wireless connection). The DSP may perform mathematical operations (e.g., multiply-accumulate (MAC) operations or other similar arithmetic operations) on the digital input to generate the digital output. The DSP may send the digital output to a Time Division Multiplexing (TDM) block (e.g., the hardware and / or software portion of a Digital-to-Analog Converter (DAC)) for conversion to an analog signal. The TDM block may additionally combine the digital outputs from DSPs associated with multiple audio sessions. The TDM block (e.g., via the bus of the DAC) may send the analog signal to a codec. The codec may include hardware or a combination of hardware and software, and the codec may generate analog commands to cause an audio speaker to output an audio wave corresponding to the digital input from the audio source.
[0032] Many audio systems allow external devices (e.g., user devices) to use one or more speakers for audio playback. For example, an infotainment system in a vehicle may receive an input from an external device (e.g., using Bluetooth ® ) and process the input for playback through the speakers. In some embodiments, the infotainment system may authorize the operating system (OS) of the external device to directly access the audio chain of the infotainment system. Alternatively, the infotainment system may receive the input at the OS of the infotainment system, which in turn provides the input to the audio chain.
[0033] Some audio from the host system may be critical compared to other audio from the host system and / or audio from external devices. For example, some audio may be associated with an Advanced Driver Assistance System (ADAS), a fully autonomous driving system, or an emergency alert system, etc. However, malicious actors may use an external device or hack into the host system in order to override the critical audio. In addition to reducing security, overriding critical audio may waste power and processing resources at the audio chain. For example, a malicious actor may unnecessarily occupy an audio session identifier (ID), an audio channel, and / or an audio pin in order to override the critical audio.
[0034] Some embodiments described herein enable the DSP, the TDM block, and / or the codec of the audio chain to reserve an audio session ID, an audio channel, and / or an audio pin for a critical audio path, respectively. Thus, power and processing resources are saved because malicious actors are prevented from unnecessarily occupying an audio session ID, an audio channel, and / or an audio pin in order to override the critical audio. Additionally, security is improved because the critical audio is not overridden.
[0035] Figure 1FIG. 100 is a diagram of an example environment 100 in which the systems and / or methods described herein can be implemented. As Figure 1 shown, environment 100 may include a user device 110, an audio output device 120, and a host system 130. The devices of environment 100 may be interconnected via a wired connection, a wireless connection, or a combination of wired and wireless connections.
[0036] The user device 110 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with audio, as described elsewhere herein. The user device 110 may include a communication device and / or a computing device. For example, the user device 110 may include a wireless communication device, a mobile phone, a user equipment, a laptop computer, a tablet computer, a desktop computer, a game console, a set-top box, a wearable communication device (e.g., a smartwatch, a pair of smart glasses, a head-mounted display, or a virtual reality head-mounted device), or a similar type of device.
[0037] The audio output device 120 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with audio, as described elsewhere herein. The audio output device 120 may include an audio chain and at least one speaker configured to generate audio waves based on information input to the audio output device 120. The audio output device 120 may be at least partially integrated with the host system 130 (e.g., physically, logically, and / or virtually integrated). Accordingly, the OS of the host system 130 may control the audio output device 120 and provide input thereto. In some embodiments, the host system 130 may allow the user device 110 to control the audio output device 120 and provide input thereto.
[0038] The host system 130 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with audio, as described elsewhere herein. The host system 130 may include a communication device and / or a computing device. For example, the host system 130 may include an infotainment system (e.g., of a vehicle), a stereo system, a pair of headphones (wired or wireless), or a similar type of device. The host system 130 may implement an OS to control the hardware of the host system 130 and the hardware associated therewith (e.g., the audio output device 120).
[0039] The user device 110 may communicate with the host system 130 via one or more wired and / or wireless networks. For example, the user device 110 and the host system 130 may communicate via a wireless wide area network (e.g., a cellular network or a public land mobile network), a local area network (e.g., a wired local area network or a wireless local area network (WLAN), such as a Wi-Fi network), a personal area network (e.g., a Bluetooth network), a near field communication network, a telephone network, a private network, the Internet, and / or a combination of these or other types of networks.
[0040] Figure 1 The number and arrangement of devices and networks shown are provided as examples. In practice, there may be Figure 1 The devices and / or networks shown may include additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged in a different manner than those shown. Figure 1 Two or more of the devices shown may be implemented in a single device, or Figure 1 The single device shown may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (eg, one or more devices) of environment 100 may perform one or more functions described as being performed by another set of devices of environment 100.
[0041] Figure 2 2 is a diagram illustrating example components of a device 200 according to the present disclosure. Device 200 may correspond to user device 110, audio output device 120, and / or host system 130. In some aspects, user device 110, audio output device 120, and / or host system 130 may include one or more devices 200 and / or one or more components of device 200. Figure 2 As shown, device 200 may include a bus 205, a processor 210, a memory 215, a storage component 220, an input component 225, an output component 230, a communication interface 235, one or more sensors 240, a DSP 245, a TDM block 250 and / or a codec 255.
[0042] The bus 205 includes components that permit communication among the various components of the device 200. The processor 210 is implemented in hardware, firmware, or a combination of hardware and software. The processor 210 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a DSP, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or another type of processing component. In some aspects, the processor 210 includes one or more processors that can be programmed to perform functions. The memory 215 includes random access memory (RAM), read only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by the processor 210.
[0043] The storage component 220 stores information and / or software related to the operation and use of the device 200. For example, the storage component 220 can include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cassette tape, a magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive.
[0044] The input component 225 includes components (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and / or a microphone) that permit the device 200 to receive information (such as via user input). Additionally or alternatively, the input component 225 can include components for determining the location or position of the device 200 (e.g., a global positioning system (GPS) component, or a global navigation satellite system (GNSS) component), and / or sensors for sensing information (e.g., an accelerometer, a gyroscope, an actuator, or another type of location or environmental sensor). The output component 230 includes components (e.g., a display, a speaker, a haptic feedback component, and / or an audio or visual indicator) that provide output information from the device 200.
[0045] The communication interface 235 includes transceiver-like components (e.g., a transceiver and / or separate receiver and transmitter) that enable the device 200 to communicate with other devices (such as via a wired connection, a wireless connection, or a combination of a wired connection and a wireless connection). The communication interface 235 can permit the device 200 to receive information from another device and / or provide information to another device. For example, the communication interface 235 can include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency interface, a universal serial bus (USB) interface, a wireless local area interface (e.g., a Wi-Fi interface), and / or a cellular network interface.
[0046] The sensor 240 includes one or more devices that perform measurements on the environment of the device 200. For example, the sensor 240 may include an accelerometer, a gravitometer, a magnetometer, a compass, an inertial measurement unit (IMU), a pressure sensor, a barometer, and / or a thermometer, etc. The sensor 240 may additionally or alternatively include a position sensor, such as a GPS sensor or another type of GNSS sensor.
[0047] The DSP 245 includes a dedicated processor that is configured to execute mathematical functions for decoding digital inputs into digital audio signals. For example, the DSP 245 may include an integrated circuit (IC), an FPGA, and / or another type of processor that is programmed (e.g., at least in part via hardware) to perform MAC operations and / or other types of arithmetic operations for audio processing.
[0048] The TDM block 250 includes a time-division multiplexer that processes digital audio signals from the DSP 245. In some embodiments, the TDM block 250 is at least partially integrated with the DAC. Alternatively, the TDM block 250 and the DAC may communicate through one or more interfaces therebetween.
[0049] The codec 255 includes hardware (or a combination of hardware and software) that is configured to process analog audio signals into commands for the speaker. For example, the codec 255 may include an IC and / or another type of dedicated processor that is programmed (e.g., at least in part via hardware) to control the speaker (e.g., via a bus) based on the analog input.
[0050] The device 200 may execute one or more of the processes described herein. The device 200 may execute these processes based on software instructions stored in a non-transitory computer-readable medium (such as the memory 215 and / or the storage component 220) by the processor 210. The computer-readable medium is defined herein as a non-transitory memory device. The memory device includes storage space within a single physical storage device or storage space distributed across multiple physical storage devices.
[0051] The software instructions may be read into the memory 215 and / or the storage component 220 from another computer-readable medium or another device via the communication interface 235. The software instructions stored in the memory 215 and / or the storage component 220, when executed, may cause the processor 210 to execute one or more of the processes described herein. Additionally or alternatively, one or more of the processes described herein may be performed using hardwired circuitry instead of or in combination with software instructions. Thus, the aspects described herein are not limited to any particular combination of hardware circuitry and software.
[0052] In some aspects, device 200 includes components for performing one or more of the processes described herein and / or components for performing one or more operations of the processes described herein. For example, device 200 may include components for receiving a request for an audio session; components for sending an indication of an assigned audio session ID based at least in part on whether the request is associated with a critical audio path; components for receiving a request for an audio channel; components for sending an indication of an assigned audio port based at least in part on whether the request is associated with a critical audio path; and / or components for sending an indication of an assigned hardware pin based at least in part on whether the request is associated with a critical audio path. In some aspects, such components may include one or more components of device 200 described in conjunction with Figure 2 such as bus 205, processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, sensor 240, DSP 245, TDM block 250, and / or codec 255.
[0053] Figure 2 The number and arrangement of the components shown are provided as an example. In practice, device 200 may include additional components, fewer components, different components, or differently arranged components compared to those shown in Figure 2 . Additionally or alternatively, a set of components of device 200 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 200.
[0054] Figures 3A to 3B is a diagram illustrating example 300 associated with protecting a critical audio path according to the present disclosure. As Figures 3A to 3B shown, example 300 includes a user device that communicates with a host system (e.g., via a wired and / or wireless connection). The host system may control an audio chain including a DSP, a TDM block, a codec, and speakers.
[0055] As Figure 3A and reference numeral 305a show, the user device may send and the DSP may receive a request for an audio session. For example, a user may interact with the user device (e.g., via a touch screen, mouse, keyboard, and / or another type of input device) and trigger the user device to play audio. Accordingly, the user device may request an audio session from the DSP in order to play audio through speakers associated with the host system. Additionally or alternatively, an application executing on the user device may buffer audio to the user device's OS for playback, and the OS may send a request in response to detecting the audio in the buffer.
[0056] The user equipment can directly send a request to the DSP (e.g., when the host system provides access to the DSP to the OS of the user equipment). Alternatively, as shown by reference numeral 305b, the user equipment can send and the host system can receive a request for an audio session. Thus, the host system can send a request for an audio session based on the request from the user equipment, and the DSP can receive this request for the audio session, as shown by reference numeral 310. The host system can forward the request from the user equipment or can use the information included in the request from the user equipment to generate a new request for sending to the DSP.
[0057] Additionally or alternatively, the host system can send and the DSP can receive a request for an audio session of the host system. For example, the user can interact with the host system (e.g., via a touch screen, a mouse, a keyboard, and / or another type of input device) and trigger the host system to play audio. Thus, the host system can request an audio session from the DSP to play audio through the speaker. Additionally or alternatively, an application executed on the host system can buffer audio for playback, and the OS of the host system can send a request in response to detecting the audio in the buffer.
[0058] As shown by reference numeral 315, the DSP can determine whether the request for the audio session is associated with a critical audio path. For example, the request can be associated with ADAS audio, fully autonomous driving system audio, emergency alert system audio, or another type of critical audio that should not be overridden. Alternatively, the request can be associated with radio audio (e.g., satellite radio, frequency modulation (FM) radio, or amplitude modulation (AM) radio), an audio application (e.g., Spotify ® , Audible ® or another type of application that buffers entertainment audio executed by the user equipment and / or the host system), or a navigation application (e.g., Waze ® , Apple ® Maps, or another type of application that buffers navigation directions executed by the user equipment and / or the host system), etc.
[0059] In some specific implementations, the DSP can determine whether a request is associated with a critical audio path at least in part based on the source associated with the request. For example, the DSP can determine that audio from the host system is critical while audio from the user device is not critical. Additionally or alternatively, the DSP can determine whether a request is associated with a critical audio path at least in part based on a flag associated with the request. For example, the request can include at least one bit indicating whether the request is critical. Additionally or alternatively, the DSP can determine whether a request is associated with a critical audio path at least in part based on a key associated with the request. For example, the request can include a sequence (or another type of data) generated using a private key. Thus, the host system can use the private key to generate the sequence and thereby indicate when the request is critical. Since an external device such as the user device does not have the key, the user device cannot generate the sequence. Any of the above factors can be combined. For example, when the source is the host system and when the request includes a flag, the DSP can determine that the request is associated with a critical audio path.
[0060] As shown by reference numeral 320a, the DSP can send an indication of the assigned audio session ID at least in part based on whether the request is associated with a critical audio path, and the user device can receive the indication. For example, the DSP can reserve a first set of audio session IDs for the critical audio path, while a second set of audio session IDs can be used for other audio paths. The first set of audio session IDs and the second set of audio session IDs can be pre-configured (e.g., hard-wired or otherwise programmed into the DSP). Alternatively, the DSP can dynamically reserve the first set of audio session IDs and assign the remaining audio session IDs to the second set of audio session IDs. For example, the DSP can receive an input from the host system indicating the number of critical audio paths and reserve the first set of audio session IDs based on that number. In some specific implementations, the first set of audio session IDs can be further selected based on a lower limit (e.g., always having at least one, two, or more audio session IDs reserved for critical audio) and / or an upper limit (e.g., having no more than three, four, or more audio session IDs reserved for critical audio).
[0061] Thus, when the request is critical, the DSP can select the assigned audio session ID from the first set of audio session IDs, and when the request is not critical, the DSP can select the assigned audio session ID from the second set of audio session IDs.
[0062] The user equipment can directly receive the audio session ID from the DSP (e.g., when the host system provides access to the DSP to the OS of the user equipment). Alternatively, as shown by reference numeral 320b, the DSP can send and the host system can receive the audio session ID. Thus, the host system can send and the user equipment can receive an indication of the audio session ID. The host system can forward a packet indicating the audio session ID from the DSP, or can generate a new packet indicating the audio session ID for sending to the user equipment.
[0063] As Figure 3B and shown by reference numeral 325a, the user equipment can send and the DSP can receive an input associated with the assigned audio session ID. For example, the OS of the user equipment or an application executed on the user equipment can buffer audio for playback, and the OS of the user equipment can send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0064] The user equipment can directly send an input to the DSP (e.g., when the host system provides access to the DSP to the OS of the user equipment). Alternatively, as shown by reference numeral 325b, the user equipment can send and the host system can receive an input associated with the assigned audio session ID. Thus, the host system can send a digital input based on the input from the user equipment, and the DSP can receive the digital input, as shown by reference numeral 330. The host system can forward the input from the user equipment, or can use the information included in the input from the user equipment to generate a new packet for sending to the DSP.
[0065] Additionally or alternatively, the host system can send and the DSP can receive an input associated with the assigned audio session ID. For example, the OS of the host system or an application executed on the host system can buffer audio for playback, and the OS of the host system can send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0066] As shown by reference numeral 335, the DSP can process the input (from the user equipment and / or the host system) to generate a digital output stream (including an output signal), and send the digital output stream to the TDM block. Additionally, as shown by reference numeral 340, the TDM block can combine the digital output streams from the DSP, process the combined stream to generate an analog output stream (including an output audio stream), and send the analog output stream to the codec. As shown by reference numeral 345, the codec can decode the analog output stream to generate an output analog signal, and send the output analog signal to the speaker, which will generate an audio wave from the output analog signal.
[0067] By using in combination Figures 3A to 3BThe described technology improves security because the critical audio path is protected by the DSP. As a result, power and processing resources at the audio chain are saved because malicious actors are prevented from unnecessarily occupying the audio session ID in order to override critical audio.
[0068] As indicated above, Figures 3A to 3B is provided as an example. Other examples may be different from those described with respect to Figures 3A to 3B the description.
[0069] Figures 4A to 4B is a diagram illustrating Example 400 associated with protecting a critical audio path according to the present disclosure. As Figures 4A to 4B shown, Example 400 includes a user device that communicates with a host system (e.g., via a wired and / or wireless connection). The host system may control an audio chain including a DSP, a TDM block, a codec, and a speaker.
[0070] As described above in connection with Figures 3A to 3B the description, the DSP may assign an audio session ID to the user device or the host system. Additionally, as Figure 4A shown by reference numeral 405, the DSP may send and the TDM block may receive a request for an audio channel. For example, the DSP may have inputs associated with one or more audio session IDs to process and output to the TDM block, and may thus request an audio channel in order to output the processed data associated with the one or more session IDs to the TDM block.
[0071] As shown by reference numeral 410, the TDM block may determine whether a request for an audio channel is associated with a critical audio path. For example, the request may be associated with ADAS audio, fully autonomous driving system audio, emergency alert system audio, or another type of critical audio that should not be overridden. Alternatively, the request may be associated with radio audio (e.g., satellite radio, FM radio, or AM radio), an audio application (e.g., Spotify, Audible, or another type of application that buffers entertainment audio executed by the user device and / or the host system), or a navigation application (e.g., Waze, Apple Maps, or another type of application that buffers navigation directions executed by the user device and / or the host system), etc.
[0072] In some embodiments, the TDM block may determine whether a request is associated with a critical audio path at least in part based on the source associated with the request. For example, the TDM block may determine that audio associated with some audio session IDs is critical, while audio associated with other audio session IDs is not. Additionally or alternatively, the TDM block may determine whether a request is associated with a critical audio path at least in part based on a flag associated with the request. For example, the request may include at least one bit indicating whether the request is critical. Additionally or alternatively, the TDM block may determine whether a request is associated with a critical audio path at least in part based on a key associated with the request. For example, the request may include a sequence (or another type of data) generated using a private key. Thus, the DSP may use the private key to generate the sequence and thereby indicate when the request is critical. Any of the above factors may be combined. For example, when the source indicates a critical audio session ID and when the request includes a flag, the TDM block may determine that the request is associated with a critical audio path.
[0073] As shown by reference numeral 415, the TDM block may send an indication of the allocated audio port at least in part based on whether the request is associated with a critical audio path, and the DSP may receive the indication. For example, the TDM block may reserve a first set of audio ports for the critical audio path, while a second set of audio ports may be used for other audio paths. The first set of audio ports and the second set of audio ports may be pre-configured (e.g., hardwired or otherwise programmed into the TDM block). Alternatively, the TDM block may dynamically reserve the first set of audio ports and allocate the remaining audio ports to the second set of audio ports. For example, the TDM block may receive an input from the host system indicating the number of critical audio paths and reserve the first set of audio ports based on that number. In some embodiments, the first set of audio ports may be further selected based on a lower limit (e.g., always having at least one, two, or more audio ports reserved for critical audio) and / or an upper limit (e.g., having no more than three, four, or more audio ports reserved for critical audio).
[0074] Thus, when the request is critical, the TDM block may select the allocated audio port from the first set of audio ports, and when the request is not critical, the TDM block may select the allocated audio port from the second set of audio ports. As Figure 4B shown by reference numeral 420a, the user equipment may send and the DSP may receive an input associated with an audio session ID. For example, the OS of the user equipment or an application executing on the user equipment may buffer audio for playback, and the OS of the user equipment may send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0075] The user equipment can directly send an input to the DSP (e.g., when the host system provides access to the DSP to the user equipment's OS). Alternatively, as shown by reference numeral 420b, the user equipment can send and the host system can receive an input associated with an audio session ID. Thus, the host system can send a digital input based on the input from the user equipment, and the DSP can receive the digital input, as shown by reference numeral 425. The host system can forward the input from the user equipment or can use the information included in the input from the user equipment to generate a new packet for sending to the DSP.
[0076] Additionally or alternatively, the host system can send and the DSP can receive an input associated with an audio session ID. For example, the OS of the host system or an application executing on the host system can buffer audio for playback, and the OS of the host system can send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0077] As shown by reference numeral 430, the DSP can process the input (from the user equipment and / or the host system) to generate a digital output stream (including an output signal) and send the digital output stream to the TDM block. Additionally, as shown by reference numeral 435, the TDM block can combine the digital output streams from the DSP, process the combined stream to generate an analog output stream (including an output audio stream), and send the analog output stream to the codec. As shown by reference numeral 440, the codec can decode the analog output stream to generate an output analog signal and send the output analog signal to the speaker, which will generate an audio wave from the output analog signal.
[0078] By using the techniques described in connection with Figures 4A to 4B Since the critical audio path is protected by the TDM block, the security is improved. Thus, power and processing resources at the audio chain are saved because malicious actors are prevented from unnecessarily occupying the audio port to override critical audio.
[0079] As indicated above, Figures 4A to 4B is provided as an example. Other examples may be different from what is described in connection with Figures 4A to 4B what is described.
[0080] Figures 5A to 5B is a diagram illustrating Example 500 associated with protecting a critical audio path according to the present disclosure. As Figures 5A to 5B shown, Example 500 includes a user equipment communicating with a host system (e.g., via a wired and / or wireless connection). The host system can control an audio chain including a DSP, a TDM block, a codec, and a speaker.
[0081] As described above in connection with Figures 3A to 3BAs described, the DSP can assign an audio session ID to a user device or a host system. Additionally, as described above in connection with Figures 4A to 4B the TDM block can assign an audio port to the DSP. As shown in Figure 5A and reference numeral 505, the TDM block can send and the codec can receive requests for audio channels. For example, the TDM block can have an input associated with the audio port to process and output to the codec, and thus can request an audio channel in order to output the processed data associated with the audio port to the codec.
[0082] As shown in reference numeral 510, the codec can determine whether a request for an audio channel is associated with a critical audio path. For example, the request can be associated with ADAS audio, fully autonomous driving system audio, emergency alert system audio, or another type of critical audio that should not be overridden. Alternatively, the request can be associated with radio audio (e.g., satellite radio, FM radio, or AM radio), an audio application (e.g., Spotify, Audible, or another type of application for buffered entertainment audio executed by the user device and / or the host system), or a navigation application (e.g., Waze, Apple Maps, or another type of application for buffered navigation directions executed by the user device and / or the host system), etc.
[0083] In some embodiments, the codec can determine whether a request is associated with a critical audio path at least in part based on the source associated with the request. For example, the codec can determine that the audio associated with some audio ports is critical while the audio associated with other audio ports is not. Additionally or alternatively, the codec can determine whether a request is associated with a critical audio path at least in part based on a flag associated with the request. For example, the request can include at least one bit indicating whether the request is critical. Additionally or alternatively, the codec can determine whether a request is associated with a critical audio path at least in part based on a key associated with the request. For example, the request can include a sequence (or another type of data) generated using a private key. Thus, the TDM block can use the private key to generate the sequence and thus indicate when the request is critical. Any of the above factors can be combined. For example, when the source indicates a critical audio port and when the request includes a flag, the codec can determine that the request is associated with a critical audio path.
[0084] As shown by reference numeral 515, the codec can send an indication of the allocated hardware pins at least in part based on whether the request is associated with the critical audio path, and the TDM block can receive this indication. For example, the codec can reserve a first set of hardware pins for the critical audio path, while a second set of hardware pins can be used for other audio paths. The first set of hardware pins and the second set of hardware pins can be pre-configured (e.g., hard-wired or otherwise programmed into the codec). Alternatively, the codec can dynamically reserve the first set of hardware pins and allocate the remaining hardware pins to the second set of hardware pins. For example, the codec can receive an input from the host system indicating the number of critical audio paths and reserve the first set of hardware pins based on this number. In some embodiments, the first set of hardware pins can be further selected based on a lower limit (e.g., always having at least one, two, or more hardware pins reserved for the critical audio) and / or an upper limit (e.g., having no more than three, four, or more hardware pins reserved for the critical audio).
[0085] Accordingly, when the request is critical, the codec can select the allocated hardware pins from the first set of hardware pins, and when the request is not critical, the codec can select the allocated hardware pins from the second set of hardware pins. As Figure 5B shown by reference numeral 520a, the user equipment can send and the DSP can receive an input associated with the audio session ID. For example, the OS of the user equipment or an application executed on the user equipment can buffer the audio for playback, and the OS of the user equipment can send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0086] The user equipment can send the input directly to the DSP (e.g., when the host system provides access to the DSP to the OS of the user equipment). Alternatively, as shown by reference numeral 520b, the user equipment can send and the host system can receive an input associated with the audio session ID. Accordingly, the host system can send a digital input based on the input from the user equipment, and the DSP can receive this digital input, as shown by reference numeral 525. The host system can forward the input from the user equipment or can use the information included in the input from the user equipment to generate a new packet for sending to the DSP.
[0087] Additionally or alternatively, the host system can send and the DSP can receive an input associated with the audio session ID. For example, the OS of the host system or an application executed on the host system can buffer the audio for playback, and the OS of the host system can send an input (e.g., digitally encode the buffered audio) in response to detecting the audio in the buffer.
[0088] As shown by reference numeral 530, the DSP may process the input (from the user device and / or the host system) to generate a digital output stream (including an output signal), and send the digital output stream to the TDM block. Additionally, as shown by reference numeral 535, the TDM block may combine the digital output streams from the DSP, process the combined streams to generate an analog output stream (including an output audio stream), and send the analog output stream to the codec. As shown by reference numeral 540, the codec may decode the analog output stream to generate an output analog signal, and send the output analog signal to a speaker, which will generate an audio wave from the output analog signal.
[0089] By using the techniques described in conjunction with Figures 5A to 5B security is enhanced because the critical audio path is protected by the codec. Thus, power and processing resources at the audio chain are saved because malicious actors are prevented from unnecessarily taking over hardware pins to override critical audio.
[0090] Examples 300, 400, and / or 500 may be combined. For example, the DSP may reserve an audio session ID in combination with the TDM block reserving an audio port and / or the codec reserving hardware pins. In another example, the TDM block may reserve an audio port in combination with the codec reserving hardware pins and / or the DSP reserving an audio session ID.
[0091] As indicated above, Figures 5A to 5B is provided as an example. Other examples may differ from what is described with respect to Figures 5A to 5B what is described.
[0092] Figure 6 is a flowchart of an example process 600 associated with protecting a critical audio path. In some implementations, Figure 6 one or more of the process blocks of Figure 6 are performed by an audio output device (e.g., audio output device 120). In some implementations, Figure 6 one or more of the process blocks of
[0093] are performed by another device or a set of devices separate from or including the audio output device, such as a user device (e.g., user device 110) and / or a host system (e.g., host system 130). Additionally or alternatively, Figure 6 one or more of the process blocks of
[0093] may be performed by one or more components of device 200, such as processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, and / or DSP 245.
[0093] As Figure 6 shown, process 600 may include receiving a request for an audio session (block 610). For example, an audio output device (e.g., using DSP 245) may receive a request for an audio session, as described herein.
[0094] As Figure 6 Figure 6 As further shown, process 600 may include sending an indication of an assigned audio session ID (block 620) at least in part based on whether the request is associated with a critical audio path. For example, an audio output device (e.g., using DSP 245) may send an indication of an assigned audio session ID at least in part based on whether the request is associated with a critical audio path, as described herein.
[0095] Process 600 may include additional embodiments, such as any individual embodiment or any combination of embodiments described below and / or in combination with one or more other processes described elsewhere herein.
[0096] In a first embodiment, process 600 includes determining (e.g., using DSP 245) whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0097] In a second embodiment, either alone or in combination with the first embodiment, a first set of audio session IDs is associated with a critical audio path, a second set of audio session IDs is associated with other audio paths, and the assigned audio session ID is selected from the first set of audio session IDs or the second set of audio session IDs.
[0098] In a third embodiment, either alone or in combination with one or more of the first and second embodiments, process 600 includes reserving (e.g., using DSP245) a first set of audio session IDs at least in part based on the number of critical audio paths, and assigning (e.g., using DSP 245) the remaining audio session IDs to a second set of audio session IDs.
[0099] In a fourth embodiment, either alone or in combination with one or more of the first through third embodiments, process 600 includes receiving (e.g., using DSP 245) an input associated with the assigned audio session ID, and processing (e.g., using DSP 245) the input to generate an output signal.
[0100] Although Figure 6 Figure 6 example blocks of process 600 are shown, in some embodiments, process 600 includes additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner than those depicted in Figure 6 Figure 6 . Additionally or alternatively, two or more blocks of process 600 may be executed in parallel.
[0101] Figure 7is a flowchart of an example process 700 associated with protecting a critical audio path. In some specific implementations, Figure 7 one or more process blocks of are performed by an audio output device (e.g., audio output device 120). In some specific implementations, Figure 6 one or more process blocks of are performed by another device or a group of devices separate from or including the audio output device, such as a user device (e.g., user device 110) and / or a host system (e.g., host system 130). Additionally or alternatively, Figure 6 one or more process blocks of may be performed by one or more components of device 200, such as processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, and / or TDM block 250).
[0102] As Figure 7 shown, process 700 may include receiving a request for an audio channel (block 710). For example, an audio output device (e.g., using TDM block 250) may receive a request for an audio channel as described herein.
[0103] As Figure 7 further shown, process 700 may include sending an indication of an allocated audio port (block 720) at least in part based on whether the request is associated with a critical audio path. For example, an audio output device (e.g., using TDM block 250) may send an indication of an allocated audio port at least in part based on whether the request is associated with a critical audio path as described herein.
[0104] Process 700 may include additional specific implementations, such as any single specific implementation or any combination of specific implementations described below and / or in combination with one or more other processes described elsewhere herein.
[0105] In a first specific implementation, process 700 includes determining (e.g., using TDM block 250) whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0106] In a second specific implementation, either alone or in combination with the first specific implementation, a first set of audio ports is associated with a critical audio path, a second set of audio ports is associated with other audio paths, and the allocated audio port is selected from the first set of audio ports or the second set of audio ports.
[0107] In a third specific implementation, either alone or in combination with one or more of the first and second specific implementations, process 700 includes retaining (e.g., using TDM block 250) a first set of audio ports based at least in part on the number of critical audio paths, and allocating (e.g., using TDM block 250) the remaining audio ports to a second set of audio ports.
[0108] In a fourth specific implementation, either alone or in combination with one or more of the first through third specific implementations, process 700 includes receiving (e.g., using TDM block 250) an input associated with the allocated audio ports, and processing (e.g., using TDM block 250) the input to generate an output audio stream.
[0109] Although Figure 7 example blocks of process 700 are shown, in some specific implementations, process 700 includes additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner compared to the Figure 7 depicted blocks. Additionally or alternatively, two or more blocks of process 700 may be executed in parallel.
[0110] Figure 8 is a flowchart of an example process 800 associated with protecting critical audio paths. In some specific implementations, Figure 8 one or more process blocks are executed by an audio output device (e.g., audio output device 120). In some specific implementations, Figure 6 one or more process blocks are executed by another device or a set of devices separate from or including the audio output device, such as a user device (e.g., user device 110) and / or a host system (e.g., host system 130). Additionally or alternatively, Figure 6 one or more process blocks may be executed by one or more components of device 200, such as processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, and / or codec 255.
[0111] As Figure 8 shown, process 800 may include receiving a request for an audio channel (block 810). For example, an audio output device (e.g., using codec 255) may receive a request for an audio channel as described herein.
[0112] As Figure 8Further shown, process 800 may include sending an indication of an assigned hardware pin (block 820) at least in part based on whether the request is associated with a critical audio path. For example, an audio output device (e.g., using codec 255) may send an indication of an assigned hardware pin at least in part based on whether the request is associated with a critical audio path, as described herein.
[0113] Process 800 may include additional embodiments, such as any individual embodiment or any combination of embodiments described below and / or in combination with one or more other processes described elsewhere herein.
[0114] In a first embodiment, process 800 includes determining (e.g., using codec 255) whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0115] In a second embodiment, either alone or in combination with the first embodiment, a first set of hardware pins is associated with a critical audio path, a second set of hardware pins is associated with other audio paths, and the assigned hardware pin is selected from the first set of hardware pins or the second set of hardware pins.
[0116] In a third embodiment, either alone or in combination with one or more of the first and second embodiments, process 800 includes reserving (e.g., using codec 255) a first set of hardware pins at least in part based on the number of critical audio paths, and allocating (e.g., using codec 255) the remaining hardware pins to a second set of hardware pins.
[0117] In a fourth embodiment, either alone or in combination with one or more of the first through third embodiments, process 800 includes receiving (e.g., using codec 255) an input on the assigned hardware pin and processing (e.g., using codec 255) the input to generate an output analog signal.
[0118] Although Figure 8 example blocks of process 800 are shown, in some embodiments, process 800 includes additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner compared to the Figure 8 depicted blocks. Additionally or alternatively, two or more blocks of process 800 may be executed in parallel.
[0119] An overview of some aspects of the present disclosure is provided below:
[0120] Aspect 1: A method performed by an audio digital signal processor (DSP), the method comprising: receiving a request for an audio session; and sending an indication of an assigned audio session identifier (ID) at least in part based on whether the request is associated with a critical audio path.
[0121] Aspect 2: The method according to Aspect 1, the method further comprising: determining whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0122] Aspect 3: The method according to any one of Aspects 1 to 2, wherein a first set of audio session IDs is associated with a critical audio path, a second set of audio session IDs is associated with other audio paths, and the assigned audio session ID is selected from the first set of audio session IDs or the second set of audio session IDs.
[0123] Aspect 4: The method according to Aspect 3, the method further comprising: reserving the first set of audio session IDs at least in part based on the number of critical audio paths; and assigning the remaining audio session IDs to the second set of audio session IDs.
[0124] Aspect 5: The method according to any one of Aspects 1 to 4, the method further comprising: receiving an input associated with the assigned audio session ID; and processing the input to generate an output signal.
[0125] Aspect 6: A method performed by a time-division multiplexing (TDM) block, the method comprising: receiving a request for an audio channel; and sending an indication of an assigned audio port at least in part based on whether the request is associated with a critical audio path.
[0126] Aspect 7: The method according to Aspect 6, the method further comprising: determining whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0127] Aspect 8: The method according to any one of Aspects 6 to 7, wherein a first set of audio ports is associated with a critical audio path, a second set of audio ports is associated with other audio paths, and the assigned audio port is selected from the first set of audio ports or the second set of audio ports.
[0128] Aspect 9: The method according to Aspect 8, the method further comprising: reserving the first set of audio ports at least in part based on the number of critical audio paths; and assigning the remaining audio ports to the second set of audio ports.
[0129] Aspect 10: The method according to any one of aspects 6 to 9, the method further comprising: receiving an input associated with the allocated audio port; and processing the input to generate an output audio stream.
[0130] Aspect 11: A method performed by codec hardware, the method comprising: receiving a request for an audio channel; and sending an indication of an allocated hardware pin at least in part based on whether the request is associated with a critical audio path.
[0131] Aspect 12: The method according to aspect 11, the method further comprising: determining whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0132] Aspect 13: The method according to any one of aspects 11 to 12, wherein a first set of hardware pins is associated with a critical audio path, a second set of hardware pins is associated with other audio paths, and the allocated hardware pin is selected from the first set of hardware pins or the second set of hardware pins.
[0133] Aspect 14: The method according to aspect 13, the method further comprising: reserving the first set of hardware pins at least in part based on the number of critical audio paths; and allocating the remaining hardware pins to the second set of hardware pins.
[0134] Aspect 15: The method according to any one of aspects 11 to 14, the method further comprising: receiving an input on the allocated hardware pin; and processing the input to generate an output analog signal.
[0135] Aspect 16: A method performed by an audio system, the method comprising: receiving a request for an audio session at an audio digital signal processor (DSP); sending, by the audio DSP, an indication of an allocated audio session identifier (ID) at least in part based on whether the request for the audio session is associated with a critical audio path; receiving a request for an audio channel at a time division multiplexing (TDM) block; sending, by the TDM block, an indication of an allocated audio port at least in part based on whether the request for the audio channel is associated with a critical audio path; receiving a request for an audio pin at codec hardware; and sending, by the codec hardware, an indication of an allocated hardware pin at least in part based on whether the request for the audio pin is associated with a critical audio path.
[0136] Aspect 17: The method according to aspect 16, the method further comprising: determining whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
[0137] Aspect 18: The method according to any one of aspects 16 to 17, wherein the first set of audio session IDs is associated with a critical audio path, the second set of audio session IDs is associated with other audio paths, and the assigned audio session ID is selected from the first set of audio session IDs or the second set of audio session IDs.
[0138] Aspect 19: The method according to aspect 18, the method further comprising: reserving the first set of audio session IDs at least partially based on the number of critical audio paths; and assigning the remaining audio session IDs to the second set of audio session IDs.
[0139] Aspect 20: The method according to any one of aspects 16 to 19, the method further comprising: receiving, at the audio DSP, an input associated with the assigned audio session ID; and processing, by the audio DSP, the input to generate an output signal.
[0140] Aspect 21: The method according to any one of aspects 16 to 20, wherein the first set of audio ports is associated with a critical audio path, the second set of audio ports is associated with other audio paths, and the assigned audio port is selected from the first set of audio ports or the second set of audio ports.
[0141] Aspect 22: The method according to aspect 21, the method further comprising: reserving the first set of audio ports at least partially based on the number of critical audio paths; and assigning the remaining audio ports to the second set of audio ports.
[0142] Aspect 23: The method according to any one of aspects 16 to 22, the method further comprising: receiving, at the TDM block, an input associated with the assigned audio port; and processing, by the TDM block, the input to generate an output audio stream.
[0143] Aspect 24: The method according to any one of aspects 16 to 23, wherein the first set of hardware pins is associated with a critical audio path, the second set of hardware pins is associated with other audio paths, and the assigned hardware pin is selected from the first set of hardware pins or the second set of hardware pins.
[0144] Aspect 25: The method according to aspect 24, the method further comprising: reserving the first set of hardware pins at least partially based on the number of critical audio paths; and assigning the remaining hardware pins to the second set of hardware pins.
[0145] Aspect 26: The method according to any one of aspects 16 to 25, the method further comprising: receiving an input at the allocated hardware pin at the codec hardware; and processing the input by the codec hardware to generate an output analog signal.
[0146] Aspect 27: An apparatus for audio generation at a device, the apparatus comprising: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform the method according to one or more of aspects 1 to 5.
[0147] Aspect 28: A device for audio generation, the device comprising: a memory; and one or more processors coupled to the memory, the one or more processors configured to perform the method according to one or more of aspects 1 to 5.
[0148] Aspect 29: An apparatus for audio generation, the apparatus comprising: at least one component for performing the method according to one or more of aspects 1 to 5.
[0149] Aspect 30: A non-transitory computer-readable medium storing code for audio generation, the code comprising instructions executable by a processor to perform the method according to one or more of aspects 1 to 5.
[0150] Aspect 31: A non-transitory computer-readable medium storing an instruction set for audio generation, the instruction set comprising one or more instructions that, when executed by one or more processors of a device, cause the device to perform the method according to one or more of aspects 1 to 5.
[0151] Aspect 32: An apparatus for audio generation at a device, the apparatus comprising: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform the method according to one or more of aspects 6 to 10.
[0152] Aspect 33: A device for audio generation, the device comprising: a memory; and one or more processors coupled to the memory, the one or more processors configured to perform the method according to one or more of aspects 6 to 10.
[0153] Aspect 34: An apparatus for audio generation, the apparatus comprising: at least one component for performing the method according to one or more of aspects 6 to 10.
[0154] Aspect 35: A non-transitory computer-readable medium storing code for audio generation, the code including instructions executable by a processor to perform the method according to one or more of aspects 6 to 10.
[0155] Aspect 36: A non-transitory computer-readable medium storing an instruction set for audio generation, the instruction set including one or more instructions that, when executed by one or more processors of a device, cause the device to perform the method according to one or more of aspects 6 to 10.
[0156] Aspect 37: An apparatus for audio generation at a device, the apparatus including: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform the method according to one or more of aspects 11 to 15.
[0157] Aspect 38: A device for audio generation, the device including: a memory; and one or more processors coupled to the memory, the one or more processors configured to perform the method according to one or more of aspects 11 to 15.
[0158] Aspect 39: An apparatus for audio generation, the apparatus including: at least one component for performing the method according to one or more of aspects 11 to 15.
[0159] Aspect 40: A non-transitory computer-readable medium storing code for audio generation, the code including instructions executable by a processor to perform the method according to one or more of aspects 11 to 15.
[0160] Aspect 41: A non-transitory computer-readable medium storing an instruction set for audio generation, the instruction set including one or more instructions that, when executed by one or more processors of a device, cause the device to perform the method according to one or more of aspects 11 to 15.
[0161] Aspect 42: An apparatus for audio generation at a device, the apparatus including: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform the method according to one or more of aspects 16 to 26.
[0162] Aspect 43: A device for audio generation, the device comprising: a memory; and one or more processors coupled to the memory, the one or more processors being configured to execute the method according to one or more of Aspects 16 to 26.
[0163] Aspect 44: An apparatus for audio generation, the apparatus comprising: at least one component for executing the method according to one or more of Aspects 16 to 26.
[0164] Aspect 45: A non-transitory computer-readable medium storing code for audio generation, the code comprising instructions executable by a processor to execute the method according to one or more of Aspects 16 to 26.
[0165] Aspect 46: A non-transitory computer-readable medium storing an instruction set for audio generation, the instruction set comprising one or more instructions that, when executed by one or more processors of a device, cause the device to execute the method according to one or more of Aspects 16 to 26.
[0166] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the aspects to the precise forms disclosed. Modifications and variations can be made in light of the above disclosure, or can be obtained from practice of the aspects.
[0167] As used herein, the term "component" is intended to be broadly construed as hardware and / or a combination of hardware and software. Whether referred to as software, firmware, middleware, microcode, hardware description language, or other names, "software" should be broadly construed to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, and / or functions, etc. As used herein, a "processor" is implemented by hardware and / or a combination of hardware and software. It will be apparent that the systems and / or methods described herein can be implemented in different forms of hardware and / or combinations of hardware and software. The actual specific control hardware or software code for implementing these systems and / or methods does not limit the aspects. Accordingly, the operation and behavior of the systems and / or methods are not described herein with reference to specific software code, as those skilled in the art will understand that the software and hardware can be designed at least in part based on the description herein to implement the systems and / or methods.
[0168] As used herein, depending on the context, "meeting a threshold" can mean a value greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, etc.
[0169] Although specific combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the various aspects. Many of these features may be combined in ways not specifically recited in the claims and / or not disclosed in the specification. The disclosure of each aspect includes each dependent claim in combination with every other claim in the set of claims. As used herein, the phrase referring to a list of items “at least one of” refers to any combination of those items (including a single member). By way of example, “at least one of a, b, or c” is intended to cover a, b, c, a + b, a + c, b + c, and a + b + c, as well as any combination with multiple of the same element (e.g., a + a, a + a + a, a + a + b, a + a + c, a + b + b, a + c + c, b + b, b + b + b, b + b + c, c + c, and c + c + c, or any other ordering of a, b, and c).
[0170] Any element, act, or instruction used herein should not be construed as critical or essential unless explicitly stated as such. Further, as used herein, the article “a” is intended to include one or more items and may be used interchangeably with “one or more.” Further, as used herein, the article “the” is intended to include one or more of the items mentioned in connection with the article “the” and may be used interchangeably with “one or more.” Further, as used herein, the terms “set” and “group” are intended to include one or more items and may be used interchangeably with “one or more.” If only intending to refer to a single item, the phrase “only one” or similar will be used. Also, as used herein, the terms “having,” “comprising,” etc. are intended to be open-ended terms that do not limit the elements they modify (e.g., an element having A may also have B). Further, the phrase “based on” is intended to mean “at least partially based on” unless otherwise explicitly stated. Further, as used herein, the term “or” when used in a series is intended to be open-ended and may be used interchangeably with “and / or” unless otherwise explicitly stated (e.g., if used in conjunction with “either” or “only one”).
Claims
1. An apparatus for audio generation at an audio digital signal processor (DSP), the apparatus comprises: a memory; and one or more processors coupled to the memory, the one or more processors being configured to: receive a request for an audio session; and send an indication of an assigned audio session identifier (ID) at least in part based on whether the request is associated with a critical audio path.
2. The apparatus according to claim 1, wherein the one or more processors are further configured to: determine whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
3. The apparatus according to claim 1, wherein a first set of audio session IDs is associated with a critical audio path, a second set of audio session IDs is associated with other audio paths, and the assigned audio session ID is selected from the first set of audio session IDs or the second set of audio session IDs.
4. The apparatus according to claim 3, wherein the one or more processors are further configured to: reserve the first set of audio session IDs at least in part based on the number of critical audio paths; and assign the remaining audio session IDs to the second set of audio session IDs.
5. The apparatus according to claim 1, wherein the one or more processors are further configured to: receive an input associated with the assigned audio session ID; and process the input to generate an output signal.
6. An apparatus for audio generation by a time-division multiplexing (TDM) block, the apparatus comprises: a memory; and one or more processors coupled to the memory, the one or more processors being configured to: receive a request for an audio channel; and send an indication of an assigned audio port at least in part based on whether the request is associated with a critical audio path.
7. The apparatus according to claim 6, wherein the one or more processors are further configured to: determine whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
8. The apparatus according to claim 6, wherein a first set of audio ports is associated with a critical audio path, a second set of audio ports is associated with other audio paths, and the assigned audio port is selected from the first set of audio ports or the second set of audio ports.
9. The apparatus according to claim 8, wherein the one or more processors are further configured to: reserve the first set of audio ports at least in part based on the number of critical audio paths; and assign the remaining audio ports to the second set of audio ports.
10. The apparatus according to claim 6, wherein the one or more processors are further configured to: receive an input associated with the assigned audio port; and process the input to generate an output audio stream.
11. An apparatus for audio generation at a codec hardware, the apparatus comprises: a memory; and one or more processors coupled to the memory, the one or more processors being configured to: receive a request for an audio channel; and send an indication of an allocated hardware pin at least in part based on whether the request is associated with a critical audio path.
12. The apparatus according to claim 11, wherein the one or more processors are further configured to: determine whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
13. The apparatus according to claim 11, wherein a first set of hardware pins is associated with a critical audio path, a second set of hardware pins is associated with other audio paths, and the allocated hardware pin is selected from the first set of hardware pins or the second set of hardware pins.
14. The apparatus according to claim 13, wherein the one or more processors are further configured to: reserve the first set of hardware pins at least in part based on a number of critical audio paths; and allocate remaining hardware pins to the second set of hardware pins.
15. The apparatus according to claim 11, wherein the one or more processors are further configured to: receive an input on the allocated hardware pin; and process the input to generate an output analog signal.
16. An apparatus for audio generation at an audio system, the apparatus comprises: a memory; and one or more processors coupled to the memory, the one or more processors being configured to: receive a request for an audio session at an audio digital signal processor (DSP); send an indication of an allocated audio session identifier (ID) by the audio DSP at least in part based on whether the request for the audio session is associated with a critical audio path; receive a request for an audio channel at a time-division multiplexing (TDM) block; send an indication of an allocated audio port by the TDM block at least in part based on whether the request for the audio channel is associated with a critical audio path; receive a request for an audio pin at a codec hardware; and send an indication of an allocated hardware pin by the codec hardware at least in part based on whether the request for the audio pin is associated with a critical audio path.
17. The apparatus according to claim 16, wherein the one or more processors are further configured to: determine whether the request is associated with a critical audio path at least in part based on a source associated with the request, a flag associated with the request, or a key associated with the request.
18. The apparatus according to claim 16, wherein a first set of audio session IDs is associated with a critical audio path, a second set of audio session IDs is associated with other audio paths, and the allocated audio session ID is selected from the first set of audio session IDs or the second set of audio session IDs.
19. The apparatus according to claim 18, wherein the one or more processors are further configured to: retain the first set of audio session IDs at least in part based on the number of critical audio paths; and assign the remaining audio session IDs to the second set of audio session IDs.
20. The apparatus according to claim 16, wherein the one or more processors are further configured to: receive an input associated with the assigned audio session ID at the audio DSP; and process the input by the audio DSP to generate an output signal.
21. The apparatus according to claim 16, wherein a first set of audio ports is associated with critical audio paths, a second set of audio ports is associated with other audio paths, and the assigned audio ports are selected from the first set of audio ports or the second set of audio ports.
22. The apparatus according to claim 21, wherein the one or more processors are further configured to: retain the first set of audio ports at least in part based on the number of critical audio paths; and assign the remaining audio ports to the second set of audio ports.
23. The apparatus according to claim 16, wherein the one or more processors are further configured to: receive an input associated with the assigned audio ports at the TDM block; and process the input by the TDM block to generate an output audio stream.
24. The apparatus according to claim 16, wherein a first set of hardware pins is associated with critical audio paths, a second set of hardware pins is associated with other audio paths, and the assigned hardware pins are selected from the first set of hardware pins or the second set of hardware pins.
25. The apparatus according to claim 24, wherein the one or more processors are further configured to: retain the first set of hardware pins at least in part based on the number of critical audio paths; and assign the remaining hardware pins to the second set of hardware pins.
26. The apparatus according to claim 16, wherein the one or more processors are further configured to: receive an input on the assigned hardware pins at the codec hardware; and process the input by the codec hardware to generate an output analog signal.