Changes

477 bytes removed ,  16:54, 9 February 2021
no edit summary
Line 16: Line 16:     
== ListAudioOuts ==
 
== ListAudioOuts ==
Takes a type-6 output buffer.
+
Takes a type-0x6 output buffer.
 
Populates the output buffer with the available audio output devices' names and returns an u32 with the number of device names written.
 
Populates the output buffer with the available audio output devices' names and returns an u32 with the number of device names written.
    
== OpenAudioOut ==
 
== OpenAudioOut ==
Takes a type-5 input buffer ('''DeviceNameIn'''), a type-6 output buffer ('''DeviceNameOut'''), two u32s '''SampleRate''' (must be 48000) and '''ChannelCount''' (only the higher u16 is used), one [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a PID and a copy-handle.
+
Takes a type-0x5 input buffer ('''DeviceNameIn'''), a type-0x6 output buffer ('''DeviceNameOut'''), two u32s '''SampleRate''' (must be 48000) and '''ChannelCount''' (only the higher u16 is used), one [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a PID and a copy-handle.
Returns an [[#IAudioOut]] object and four u32s: the sample rate, channel count, [[#PCM_format|PCM format]], and the initial AudioOutState.
+
Returns an [[#IAudioOut]] object and four u32s: the sample rate, channel count, [[#SampleFormat|SampleFormat]], and the initial AudioOutState.
 
  −
=== PCM format ===
  −
{| class="wikitable" border="1"
  −
|-
  −
! Value || Name
  −
|-
  −
| 0 || Invalid
  −
|-
  −
| 1 || INT8
  −
|-
  −
| 2 || INT16
  −
|-
  −
| 3 || INT24
  −
|-
  −
| 4 || INT32
  −
|-
  −
| 5 || PCM Float
  −
|-
  −
| 6 || ADPCM
  −
|}
      
== ListAudioOutsAuto ==
 
== ListAudioOutsAuto ==
Line 58: Line 38:  
| 0 || [[#GetAudioOutState]]
 
| 0 || [[#GetAudioOutState]]
 
|-
 
|-
| 1 || [[#StartAudioOut]]
+
| 1 || [[#Start]]
 
|-
 
|-
| 2 || [[#StopAudioOut]]
+
| 2 || [[#Stop]]
 
|-
 
|-
 
| 3 || [[#AppendAudioOutBuffer]]
 
| 3 || [[#AppendAudioOutBuffer]]
Line 66: Line 46:  
| 4 || [[#RegisterBufferEvent]]
 
| 4 || [[#RegisterBufferEvent]]
 
|-
 
|-
| 5 || [[#GetReleasedAudioOutBuffer]]
+
| 5 || [[#GetReleasedAudioOutBuffers]]
 
|-
 
|-
 
| 6 || [[#ContainsAudioOutBuffer]]
 
| 6 || [[#ContainsAudioOutBuffer]]
Line 72: Line 52:  
| 7 || [3.0.0+] [[#AppendAudioOutBufferAuto]]
 
| 7 || [3.0.0+] [[#AppendAudioOutBufferAuto]]
 
|-
 
|-
| 8 || [3.0.0+] [[#GetReleasedAudioOutBufferAuto]]
+
| 8 || [3.0.0+] [[#GetReleasedAudioOutBuffersAuto]]
 
|-
 
|-
 
| 9 || [4.0.0+] [[#GetAudioOutBufferCount]]
 
| 9 || [4.0.0+] [[#GetAudioOutBufferCount]]
Line 86: Line 66:     
=== GetAudioOutState ===
 
=== GetAudioOutState ===
Returns an u32 '''AudioOutState''' (0x00=Started, 0x01=Stopped).
+
Returns an u32 '''AudioOutState''' (0=Started, 1=Stopped).
   −
=== StartAudioOut ===
+
=== Start ===
 
Starts audio playback using data from appended buffers.
 
Starts audio playback using data from appended buffers.
   −
=== StopAudioOut ===
+
=== Stop ===
 
Stops audio playback. This waits for audio playback to finish before returning.
 
Stops audio playback. This waits for audio playback to finish before returning.
    
=== AppendAudioOutBuffer ===
 
=== AppendAudioOutBuffer ===
Takes a type-5 input buffer for sample data and a u64 which acts as a tag for the supplied buffer (official apps use the buffer's address).
+
Takes a type-0x5 input buffer of [[#AudioOutBuffer|AudioOutBuffer]] and a u64 which acts as a tag for the supplied buffer (official apps use the buffer's address).
 
  −
The format of the input buffer is as follows:
  −
{| class="wikitable" border="1"
  −
|-
  −
! Offset || Size || Description
  −
|-
  −
| 0x00 || 8 || Pointer to next buffer (unused)
  −
|-
  −
| 0x08 || 8 || Pointer to sample buffer
  −
|-
  −
| 0x10 || 8 || Capacity of sample buffer
  −
|-
  −
| 0x18 || 8 || Size of data in the sample buffer
  −
|-
  −
| 0x20 || 8 || Offset of data in the sample buffer (unused/ignored?)
  −
|}
      
=== RegisterBufferEvent ===
 
=== RegisterBufferEvent ===
 
Returns an event handle that is signalled when a buffer is released.
 
Returns an event handle that is signalled when a buffer is released.
   −
=== GetReleasedAudioOutBuffer ===
+
=== GetReleasedAudioOutBuffers ===
Takes a type-6 output buffer which will be filled with the identifiers from [[#AppendAudioOutBuffer]] of audio buffers that have been released.
+
Takes a type-0x6 output buffer which will be filled with the identifiers from [[#AppendAudioOutBuffer]] of audio buffers that have been released.
 
Returns an u32 '''ReleasedBuffersCount'''.
 
Returns an u32 '''ReleasedBuffersCount'''.
   Line 126: Line 90:  
Same as [[#AppendAudioOutBuffer]] but takes a type-0x21 buffer instead.
 
Same as [[#AppendAudioOutBuffer]] but takes a type-0x21 buffer instead.
   −
=== GetReleasedAudioOutBufferAuto ===
+
=== GetReleasedAudioOutBuffersAuto ===
 
Same as [[#GetReleasedAudioOutBuffer]] but takes a type-0x22 buffer instead.
 
Same as [[#GetReleasedAudioOutBuffer]] but takes a type-0x22 buffer instead.
   Line 173: Line 137:  
| 0 || [[#GetAudioInState]]
 
| 0 || [[#GetAudioInState]]
 
|-
 
|-
| 1 || StartAudioIn
+
| 1 || Start
 
|-
 
|-
| 2 || StopAudioIn
+
| 2 || Stop
 
|-
 
|-
 
| 3 || AppendAudioInBuffer
 
| 3 || AppendAudioInBuffer
Line 181: Line 145:  
| 4 || RegisterBufferEvent
 
| 4 || RegisterBufferEvent
 
|-
 
|-
| 5 || GetReleasedAudioInBuffer
+
| 5 || GetReleasedAudioInBuffers
 
|-
 
|-
 
| 6 || ContainsAudioInBuffer
 
| 6 || ContainsAudioInBuffer
 
|-
 
|-
| 7 || [3.0.0+] AppendAudioInBufferWithUserEvent
+
| 7 || [3.0.0+] AppendUacInBuffer
 
|-
 
|-
 
| 8 || [3.0.0+] AppendAudioInBufferAuto
 
| 8 || [3.0.0+] AppendAudioInBufferAuto
 
|-
 
|-
| 9 || [3.0.0+] GetReleasedAudioInBufferAuto
+
| 9 || [3.0.0+] GetReleasedAudioInBuffersAuto
 
|-
 
|-
| 10 || [3.0.0+] AppendAudioInBufferWithUserEventAuto
+
| 10 || [3.0.0+] AppendUacInBufferAuto
 
|-
 
|-
 
| 11 || [4.0.0+] GetAudioInBufferCount
 
| 11 || [4.0.0+] GetAudioInBufferCount
 
|-
 
|-
| 12 || [4.0.0+] SetAudioInDeviceGain
+
| 12 || [4.0.0+] SetDeviceGain
 
|-
 
|-
| 13 || [4.0.0+] GetAudioInDeviceGain
+
| 13 || [4.0.0+] GetDeviceGain
 
|-
 
|-
 
| 14 || [6.0.0+] FlushAudioInBuffers
 
| 14 || [6.0.0+] FlushAudioInBuffers
Line 203: Line 167:     
=== GetAudioInState ===
 
=== GetAudioInState ===
Returns an u32 '''AudioInState''' (0x00=Started, 0x01=Stopped).
+
Returns an u32 '''AudioInState''' (0=Started, 1=Stopped).
    
= audrec:u =
 
= audrec:u =
Line 297: Line 261:  
| 2 || [[#GetMixBufferCount]]
 
| 2 || [[#GetMixBufferCount]]
 
|-
 
|-
| 3 || [[#GetAudioRendererState]]
+
| 3 || [[#GetState]]
 
|-
 
|-
 
| 4 || RequestUpdate
 
| 4 || RequestUpdate
Line 317: Line 281:     
=== GetSampleRate ===
 
=== GetSampleRate ===
Returns the Sample Rate. (u32)
+
No input. Returns an u32 '''SampleRate'''.
    
=== GetSampleCount ===
 
=== GetSampleCount ===
Returns the Sample Count. (u32)
+
No input. Returns an u32 '''SampleCount'''.
    
=== GetMixBufferCount ===
 
=== GetMixBufferCount ===
Returns the number of Mix Buffers. (u32)
+
No input. Returns an u32 '''MixBufferCount'''.
   −
=== GetAudioRendererState ===
+
=== GetState ===
Returns an AudioRenderState, 0x00=Started 0x01=Stopped (u32)
+
No input. Returns an u32 '''State''' (0=Started, 1=Stopped).
    
=== SetRenderingTimeLimit ===
 
=== SetRenderingTimeLimit ===
Takes a upper limit of the rendering time in percent. (u32)
+
Takes an u32 '''RenderingTimeLimit'''. No output.
    
=== GetRenderingTimeLimit ===
 
=== GetRenderingTimeLimit ===
Returns the upper limit of the rendering time in percent. (u32)
+
No input. Returns an u32 '''RenderingTimeLimit'''.
    
== IAudioDevice ==
 
== IAudioDevice ==
Line 369: Line 333:     
=== ListAudioDeviceName ===
 
=== ListAudioDeviceName ===
Takes a type-0x6 output buffer containing an array of '''DeviceName''', returns an output s32 for total number of output entries.
+
Takes a type-0x6 output buffer containing an array of '''DeviceName'''. Returns an output s32 for total number of output entries.
    
=== SetAudioDeviceOutputVolume ===
 
=== SetAudioDeviceOutputVolume ===
Line 378: Line 342:     
=== ListAudioDeviceNameAuto ===
 
=== ListAudioDeviceNameAuto ===
Takes a type-0x22 output buffer containing an array of '''DeviceName''', returns an output s32 for total number of output entries.
+
Takes a type-0x22 output buffer containing an array of '''DeviceName'''. Returns an output s32 for total number of output entries.
    
=== SetAudioDeviceOutputVolumeAuto ===
 
=== SetAudioDeviceOutputVolumeAuto ===
Line 395: Line 359:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || RequestSuspendAudioOuts
+
| 0 || RequestSuspend
 
|-
 
|-
| 1 || RequestResumeAudioOuts
+
| 1 || RequestResume
 
|-
 
|-
| 2 || GetAudioOutsProcessMasterVolume
+
| 2 || GetProcessMasterVolume
 
|-
 
|-
| 3 || SetAudioOutsProcessMasterVolume
+
| 3 || SetProcessMasterVolume
 
|-
 
|-
| 4 || [4.0.0+] GetAudioOutsProcessRecordVolume
+
| 4 || [4.0.0+] GetProcessRecordVolume
 
|-
 
|-
| 5 || [4.0.0+] SetAudioOutsProcessRecordVolume
+
| 5 || [4.0.0+] SetProcessRecordVolume
 
|}
 
|}
   −
[4.0.0+] RequestSuspendAudioOuts/RequestResumeAudioOuts no longer returns an output handle.
+
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
    
= audin:a =
 
= audin:a =
Line 419: Line 383:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || RequestSuspendAudioIns
+
| 0 || RequestSuspend
 
|-
 
|-
| 1 || RequestResumeAudioIns
+
| 1 || RequestResume
 
|-
 
|-
| 2 || GetAudioInsProcessMasterVolume
+
| 2 || GetProcessMasterVolume
 
|-
 
|-
| 3 || SetAudioInsProcessMasterVolume
+
| 3 || SetProcessMasterVolume
 
|}
 
|}
   −
[4.0.0+] RequestSuspendAudioIns/RequestResumeAudioIns no longer returns an output handle.
+
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
    
= audrec:a =
 
= audrec:a =
Line 437: Line 401:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || RequestSuspendFinalOutputRecorders
+
| 0 || RequestSuspend
 
|-
 
|-
| 1 || RequestResumeFinalOutputRecorders
+
| 1 || RequestResume
 
|}
 
|}
   −
[4.0.0+] RequestSuspendFinalOutputRecorders/RequestResumeFinalOutputRecorders no longer returns an output handle.
+
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
    
= audren:a =
 
= audren:a =
Line 453: Line 417:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || RequestSuspendAudioRenderers
+
| 0 || RequestSuspend
 
|-
 
|-
| 1 || RequestResumeAudioRenderers
+
| 1 || RequestResume
 
|-
 
|-
| 2 || GetAudioRenderersProcessMasterVolume
+
| 2 || GetProcessMasterVolume
 
|-
 
|-
| 3 || SetAudioRenderersProcessMasterVolume
+
| 3 || SetProcessMasterVolume
 
|-
 
|-
 
| 4 || RegisterAppletResourceUserId
 
| 4 || RegisterAppletResourceUserId
Line 465: Line 429:  
| 5 || UnregisterAppletResourceUserId
 
| 5 || UnregisterAppletResourceUserId
 
|-
 
|-
| 6 || [4.0.0+] GetAudioRenderersProcessRecordVolume
+
| 6 || [4.0.0+] GetProcessRecordVolume
 
|-
 
|-
| 7 || [4.0.0+] SetAudioRenderersProcessRecordVolume
+
| 7 || [4.0.0+] SetProcessRecordVolume
 
|}
 
|}
   −
[4.0.0+] RequestSuspendAudioRenderers/RequestResumeAudioRenderers no longer returns an output handle.
+
[4.0.0+] RequestSuspend/RequestResume no longer returns an output handle.
    
= audout:d, audin:d, audrec:d, audren:d =
 
= audout:d, audin:d, audrec:d, audren:d =
Line 481: Line 445:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#RequestSuspendForDebug]]
+
| 0 || [[#RequestSuspend]]
 
|-
 
|-
| 1 || [[#RequestResumeForDebug]]
+
| 1 || [[#RequestResume]]
 
|}
 
|}
   −
== RequestSuspendForDebug ==
+
== RequestSuspend ==
 
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
 
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
   −
== RequestResumeForDebug ==
+
== RequestResume ==
 
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
 
Takes an u64 [[AM_services#AppletResourceUserId|AppletResourceUserId]].
   Line 561: Line 525:     
=== UpdateHeadphoneSettings ===
 
=== UpdateHeadphoneSettings ===
 
+
Takes one input bool. No output.
Takes one input byte bool, no output.
   
NS calls this with the result of IParentalControlService::IsRestrictionEnabled[https://switchbrew.org/wiki/Parental_Control_services#IParentalControlService].
 
NS calls this with the result of IParentalControlService::IsRestrictionEnabled[https://switchbrew.org/wiki/Parental_Control_services#IParentalControlService].
   Line 574: Line 537:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#InitializeCodecController]]
+
| 0 || [[#Initialize]]
 
|-
 
|-
| 1 || [[#FinalizeCodecController]]
+
| 1 || [[#Finalize]]
 
|-
 
|-
| 2 || [[#SleepCodecController]]
+
| 2 || [[#Sleep]]
 
|-
 
|-
| 3 || [[#WakeCodecController]]
+
| 3 || [[#Wake]]
 
|-
 
|-
| 4 || [[#SetCodecVolume]]
+
| 4 || [[#SetVolume]]
 
|-
 
|-
| 5 || [[#GetCodecVolumeMax]]
+
| 5 || [[#GetVolumeMax]]
 
|-
 
|-
| 6 || [[#GetCodecVolumeMin]]
+
| 6 || [[#GetVolumeMin]]
 
|-
 
|-
| 7 || [[#SetCodecActiveTarget]]
+
| 7 || [[#SetActiveTarget]]
 
|-
 
|-
| 8 || [[#GetCodecActiveTarget]]
+
| 8 || [[#GetActiveTarget]]
 
|-
 
|-
| 9 || [[#BindCodecHeadphoneMicJackInterrupt]]
+
| 9 || [[#BindHeadphoneMicJackInterrupt]]
 
|-
 
|-
| 10 || [[#IsCodecHeadphoneMicJackInserted]]
+
| 10 || [[#IsHeadphoneMicJackInserted]]
 
|-
 
|-
| 11 || [[#ClearCodecHeadphoneMicJackInterrupt]]
+
| 11 || [[#ClearHeadphoneMicJackInterrupt]]
 
|-
 
|-
| 12 || [[#IsCodecDeviceRequested]]
+
| 12 || [[#IsRequested]]
 
|}
 
|}
   −
== InitializeCodecController ==
+
== Initialize ==
Takes no input.
+
No input/output.
   −
== FinalizeCodecController ==
+
== Finalize ==
Takes no input.
+
No input/output.
   −
== SleepCodecController ==
+
== Sleep ==
Takes no input.
+
No input/output.
   −
== WakeCodecController ==
+
== Wake ==
Takes no input.
+
No input/output.
   −
== SetCodecVolume ==
+
== SetVolume ==
Takes an u32 '''Volume'''.
+
Takes an u32 '''Volume'''. No output.
   −
== GetCodecVolumeMax ==
+
== GetVolumeMax ==
Returns an u32 '''VolumeMax'''.
+
No input. Returns an u32 '''VolumeMax'''.
   −
== GetCodecVolumeMin ==
+
== GetVolumeMin ==
Returns an u32 '''VolumeMin'''.
+
No input. Returns an u32 '''VolumeMin'''.
   −
== SetCodecActiveTarget ==
+
== SetActiveTarget ==
Takes an u32 '''Target'''.
+
Takes an u32 '''Target'''. No output.
   −
== GetCodecActiveTarget ==
+
== GetActiveTarget ==
Returns an u32 '''Target'''.
+
No input. Returns an u32 '''Target'''.
   −
== BindCodecHeadphoneMicJackInterrupt ==
+
== BindHeadphoneMicJackInterrupt ==
Returns an event handle.
+
No input. Returns an event handle.
   −
== IsCodecHeadphoneMicJackInserted ==
+
== IsHeadphoneMicJackInserted ==
Returns a bool.
+
No input. Returns a bool.
   −
== ClearCodecHeadphoneMicJackInterrupt ==
+
== ClearHeadphoneMicJackInterrupt ==
Takes no input.
+
No input/output.
   −
== IsCodecDeviceRequested ==
+
== IsRequested ==
Returns a bool.
+
No input. Returns a bool.
    
= hwopus =
 
= hwopus =
Line 647: Line 610:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#Initialize]]
+
| 0 || [[#OpenHardwareOpusDecoder]]
 
|-
 
|-
 
| 1 || [[#GetWorkBufferSize]]
 
| 1 || [[#GetWorkBufferSize]]
Line 658: Line 621:  
Official sw can use either software libopus, or hwopus via "nn::codec::HardwareOpus*" (separate from the former).
 
Official sw can use either software libopus, or hwopus via "nn::codec::HardwareOpus*" (separate from the former).
   −
== Initialize ==
+
== OpenHardwareOpusDecoder ==
 
Takes two s32s '''SampleRate''' and '''ChannelCount''' packed as an u64, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
 
Takes two s32s '''SampleRate''' and '''ChannelCount''' packed as an u64, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
   −
== GetWorkBufferSize==
+
== GetWorkBufferSize ==
 
Takes two s32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
 
Takes two s32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
   Line 673: Line 636:     
The input buffer is a [[#MultiStreamParameters]] struct.
 
The input buffer is a [[#MultiStreamParameters]] struct.
  −
== MultiStreamParameters ==
  −
{| class="wikitable" border="1"
  −
|-
  −
! Offset
  −
! Size
  −
! Description
  −
|-
  −
| 0x0
  −
| 0x4
  −
| Sample rate (Hz)
  −
|-
  −
| 0x4
  −
| 0x4
  −
| Number of channels
  −
|-
  −
| 0x8
  −
| 0x4
  −
| Number of streams
  −
|-
  −
| 0xC
  −
| 0x4
  −
| Number of stereo streams
  −
|-
  −
| 0x10
  −
| 0x100
  −
| u8 array of channel mappings
  −
|}
      
== IHardwareOpusDecoder ==
 
== IHardwareOpusDecoder ==
Line 731: Line 666:     
=== DecodeInterleavedOld ===
 
=== DecodeInterleavedOld ===
Takes a type-5 input buffer ('''OpusDataIn''') and a type-6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
+
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
    
Calls the same func as [[#DecodeInterleaved]] internally with flag=0 and out_u64_ptr=NULL.
 
Calls the same func as [[#DecodeInterleaved]] internally with flag=0 and out_u64_ptr=NULL.
    
=== SetContext ===
 
=== SetContext ===
Takes a type-5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. The input buffer is unused.
+
Takes a type-0x5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder. The input buffer is unused.
    
=== DecodeInterleavedForMultiStreamOld ===
 
=== DecodeInterleavedForMultiStreamOld ===
Takes a type-5 input buffer ('''OpusDataIn''') and a type-6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
+
Takes a type-0x5 input buffer ('''OpusDataIn''') and a type-0x6 output buffer ('''PcmDataOut'''). Decodes the Opus source data to PCM and returns output s32 '''DecodedDataSize''' and s32 '''DecodedSampleCount'''.
    
Calls the same func as [[#DecodeInterleavedForMultiStream]] internally with flag=0 and out_u64_ptr=NULL.
 
Calls the same func as [[#DecodeInterleavedForMultiStream]] internally with flag=0 and out_u64_ptr=NULL.
    
=== SetContextForMultiStream ===
 
=== SetContextForMultiStream ===
Takes a type-5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder.
+
Takes a type-0x5 input buffer ('''DecoderContextIn'''). Sends the unknown context data to the hardware decoder.
    
=== DecodeInterleavedWithPerfOld ===
 
=== DecodeInterleavedWithPerfOld ===
Line 779: Line 714:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || StartDspProfiler
+
| 0 || ProfilerStart
 
|-
 
|-
| 1 || StopDspProfiler
+
| 1 || ProfilerStop
 
|-
 
|-
| 2 || StartCpuProfiler
+
| 2 || CpuProfilerStart
 
|-
 
|-
| 3 || StopCpuProfiler
+
| 3 || CpuProfilerStop
 
|}
 
|}
   Line 830: Line 765:  
|-
 
|-
 
| 1 || RequestResumeAudioForDebug
 
| 1 || RequestResumeAudioForDebug
 +
|}
 +
 +
= SampleFormat =
 +
This is "nn::audio::SampleFormat".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Name
 +
|-
 +
| 0 || Invalid
 +
|-
 +
| 1 || PcmInt8
 +
|-
 +
| 2 || PcmInt16
 +
|-
 +
| 3 || PcmInt24
 +
|-
 +
| 4 || PcmInt32
 +
|-
 +
| 5 || PcmFloat
 +
|-
 +
| 6 || Adpcm
 +
|}
 +
 +
= AudioOutBuffer =
 +
This is "nn::audio::AudioOutBuffer".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x00 || 8 || Pointer to next buffer (unused)
 +
|-
 +
| 0x08 || 8 || Pointer to sample buffer
 +
|-
 +
| 0x10 || 8 || Capacity of sample buffer
 +
|-
 +
| 0x18 || 8 || Size of data in the sample buffer
 +
|-
 +
| 0x20 || 8 || Offset of data in the sample buffer (unused/ignored?)
 +
|}
 +
 +
= MultiStreamParameters =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Sample rate (Hz)
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Number of channels
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Number of streams
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Number of stereo streams
 +
|-
 +
| 0x10
 +
| 0x100
 +
| u8 array of channel mappings
 
|}
 
|}
    
[[Category:Services]]
 
[[Category:Services]]