Audio services: Difference between revisions

Line 589: Line 589:
| 1 || [[#GetWorkBufferSize]]
| 1 || [[#GetWorkBufferSize]]
|-
|-
| 2 || [3.0.0+] OpenHardwareOpusDecoderForMultiStream
| 2 || [3.0.0+] [[#OpenHardwareOpusDecoderForMultiStream]]
|-
|-
| 3 || [3.0.0+] GetWorkBufferSizeForMultiStream
| 3 || [3.0.0+] [[#GetWorkBufferSizeForMultiStream]]
|}
|}


Line 601: Line 601:
== GetWorkBufferSize==
== GetWorkBufferSize==
Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
Takes two u32s '''SampleRate''' and '''ChannelCount''' packed as an u64. Returns the required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
== OpenHardwareOpusDecoderForMultiStream ==
Takes a type-0x19 input buffer, an u32 '''WorkBufferSize''' and a TransferMemory handle for '''WorkBuffer'''. Returns an [[#IHardwareOpusDecoder]] object. The TransferMemory is created by the user-process with permissions=0.
The input buffer is a 0x110-byte struct.
== GetWorkBufferSizeForMultiStream ==
Takes a type-0x19 input buffer. Returns the u32 required size for the decoder's work buffer. Official user-processes align the output size to page-alignment.
The input buffer is a 0x110-byte struct. The user-process initializes this struct the same way as [[#OpenHardwareOpusDecoderForMultiStream]].


== IHardwareOpusDecoder ==
== IHardwareOpusDecoder ==