Audio services: Difference between revisions

ByLaws (talk | contribs)
Add details about new 12.0.0 opus funcs
ByLaws (talk | contribs)
m Correct details of how hwopus Ex params are passed over IPC
Line 758: Line 758:


== OpenHardwareOpusDecoderEx ==
== OpenHardwareOpusDecoderEx ==
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.
Takes a struct [[#OpusParametersEx]] and a 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 [[#OpusParametersEx]] struct. When ''UseLargeFrameSize'' is 1 a larger output buffer that can store 120ms opus frames is used vs the default of 40ms.
When ''UseLargeFrameSize'' in the parameter struct is 1 a larger output buffer that can store 120ms opus frames is used vs the default of 40ms.


== GetWorkBufferSizeEx ==
== GetWorkBufferSizeEx ==
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.
Takes a struct [[#OpusParametersEx]]. 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 [[#OpusParametersEx]] struct.


== OpenHardwareOpusDecoderForMultiStreamEx ==
== OpenHardwareOpusDecoderForMultiStreamEx ==