reactos/drivers
Oleg Dubinskiy 12b3272d9e
[AUDIO] Implement support for WAVE_FORMAT_EXTENSIBLE audio format (#6686)
[MMIXER] Implement hadling WAVE_FORMAT_EXTENSIBLE audio format
Fix opening audio device error when trying to open it with WAVE_FORMAT_EXTENSIBLE format tag set in wFormatTag member of WAVEFORMATEX:
- Pass additional data size from WAVEFORMATEX.cbSize to pin data format.
- Append it to the whole size of pin data format (KSDATAFORMAT.FormatSize).
- Set additional fields in WAVEFORMATEXTENSIBLE structure (data format, BPS and channel mask) when WAVE_FORMAT_EXTENSIBLE is used. They are used by our inbuilt Intel AC97 miniport driver at least. It simply fails when these members are not set.
- Fix pin connect allocation size by appending an additional data size from WAVEFORMATEX.cbSize to KSPIN_CONNECT + KSDATAFORMAT + WAVEFORMATEX. This allows to proerly initialize additional extensible data and avoids kernel memory leakage when using extensible audio format.
- Remove format tag check which allowed WAVE_FORMAT_PCM to be opened correctly. So now all possible audio formats can be opened properly at least (although it does not mean they may work correctly).
This fixes the audio playback for all apps those are supporting extensible audio data and use it by default (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium-based browsers, GameDev Tycoon Demo game etc.).
CORE-10907, CORE-14783

* [KS] Allow passing additional extensible audio data when extensible audio format is used
- Append additional data size from WAVEFORMATEX.cbSize to pin connect size passed to KsCreatePin. If the tag is WAVE_FORMAT_PCM, then this member should always be zero. So in that case, no any additional data is passed to creation request, and the passed data size is correct for PCM too (KSDATAFORMAT + WAVEFORMATEX).
This fixes audio playback in several apps those are supporting extensibble audio and use it by default (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium based browsers, GameDev Tycoon Demo game etc.).
CORE-10907, CORE-14783.

* [WDMAUD.DRV] Pass the correct additional data size to I/O control request
Store a correct size of additional data in WAVEFORMATEX.cbSize when performing open of audio device, when WAVE_FORMAT_EXTENSIBLE audio format is used.
It allows to properly open audio device with Legacy APIs enabled too.
This fixes audio playback in several apps those are using extensible audio data (e. g. AIMP 5.30, QMMP 0.12.17, all Chrome/Chromium based browsers, GameDevTycoon Demo game etc.).
CORE-10907, CORE-14783
2024-04-11 11:59:14 +02:00
..
base [BOOTVID] Don't NTAPI non-exported functions; remove useless @implemented (#6650) 2024-03-23 15:16:00 +01:00
battery [BATTC] Make input buffer on IOCTL_BATTERY_QUERY_TAG optional 2024-02-01 10:08:51 +01:00
bluetooth [REACTOS] Silence warnings in 3r-party code 2021-07-23 22:03:48 +02:00
bus [ACPI] Fix object evaluation (#6302) 2024-04-01 18:21:35 +02:00
crypto [KSECDD] Fix RtlEncryptMemory and improve test 2020-09-25 09:39:51 +02:00
filesystems [UDFS] Remove packing around include of ntifs.h 2024-04-10 21:46:34 +02:00
filters [FLTMGR] CreateClientPort(): Fix ObInsertObject() error handling 2021-12-28 02:27:50 +03:00
hid [ACLEDIT][MSIMG32][HIDCLASS] Fix DLL-main function argument type in spec file. 2022-10-06 16:16:40 +02:00
input [INPORT] Fix swapped buttons for the inport bus mouse 2023-08-05 16:40:07 +03:00
ksfilter [AUDIO] Implement support for WAVE_FORMAT_EXTENSIBLE audio format (#6686) 2024-04-11 11:59:14 +02:00
multimedia [BDASUP][KMIXER][MMIXER][STREAM] Replace meaningless YDEBUG (#5818) 2023-10-31 12:04:24 +00:00
network [DC21X4] Recognize all ports emulated by VPC 2007 (#6501) 2024-02-16 16:56:07 +01:00
parallel [DRIVERS] Use IoForwardIrpSynchronously in drivers 2022-01-05 02:17:56 +03:00
processor [DRIVERS][INF] Update Romanian (ro-RO) translation (#6088) 2023-12-09 20:19:54 +01:00
sac [SACDRV] Add 2 OBJ_KERNEL_HANDLE 2022-05-08 19:42:49 +02:00
serial [DRIVERS] Add some missing OBJ_KERNEL_HANDLE (#4493) 2022-05-07 22:12:19 +03:00
setup [BLUE] Optimize ScrIoControl for speed (#5185) 2023-03-28 08:12:38 +09:00
storage [DRIVERS][INF] Update Romanian (ro-RO) translation (#6088) 2023-12-09 20:19:54 +01:00
usb [USBOHCI] Fix broken indentation 2024-03-23 23:08:01 +01:00
wdm [HDAUDBUS] Silence debug spam 2024-03-19 07:43:39 +01:00
wmi [FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
CMakeLists.txt