From 4f20de43d0803702d6364a5d2adbe37f7cad2a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delanoy?= Date: Wed, 7 Aug 2013 17:50:58 +0200 Subject: [docs] winedev: Update wine multimedia DLLs paths Reply-To: wine-devel --- en/winedev-multimedia.sgml | 137 +++++++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 60 deletions(-) diff --git a/en/winedev-multimedia.sgml b/en/winedev-multimedia.sgml index a38d7a2..1225b14 100644 --- a/en/winedev-multimedia.sgml +++ b/en/winedev-multimedia.sgml @@ -7,12 +7,30 @@ - The implementation can be found in the - dlls/winmm/ directory (and in many of its - subdirectories), but also in dlls/msacm/ - (for the audio compression/decompression manager) and - dlls/msvideo/ (for the video - compression/decompression manager). + The implementation can be found in a number of directories: + + + + dlls/winmm/, dlls/mmsystem.dll16/ and dlls/msacm32.drv/ + + + + + dlls/msacm32/ and dlls/msacm.dll16/ (for the audio compression/decompression + manager) + + + + + dlls/msvfw32/ and dlls/msvideo.dll16/ (for the video + compression/decompression manager). + + + @@ -21,8 +39,8 @@ The multimedia stuff is split into 3 layers. The low level (device drivers), mid level (MCI commands) and high level abstraction layers. - The low level layer has also some helper DLLs (like the MSACM/MSACM32 - and MSVIDEO/MSVFW32 pairs). + The low level layer has also some helper DLLs (like the msacm32/msacm.dll16 + and msvfw32/msvideo.dll16 pairs). @@ -163,10 +181,10 @@ Kernel space | Client applications | | v v v | | v v v v | | +---------------+---+-------------+-------------+ | | | waveInXXX | | mciXXX | *playSound* | - | | | waveOutXXX | | | mmioXXX | WinMM.dll + | | | waveOutXXX | | | mmioXXX | winmm.dll | | | midiInXXX | | | timeXXX | 32-bit | | | midiOutXXX | | | driverXXX | - | | | midiStreamXXX | | | | MMSystem.dll + | | | midiStreamXXX | | | | mmsystem.dll16 | | | mixerXXX | | | | 16-bit | | | auxXXX +---+ +---+ mmThread| | | | | joyXXX | Call back | mmTask | | @@ -177,7 +195,7 @@ Kernel space | Client applications +---------+ | | +-------------+ +----------+ |HW driver|<------->| *.drv | | mci*.drv | +---------+ | | +--------------+ +-----------+ - | | | msacm.drv | | mciwave | + | | | msacm32.drv | | mciwave | | | +--------------+ +-----------+ | | | midimap.drv | | mcimidi | | | +-------------+ +-----------+ @@ -238,7 +256,7 @@ Kernel space | Client applications - There are two specific low level drivers (msacm.drv for wave input/output, + There are two specific low level drivers (msacm32.drv for wave input/output, midimap.drv for MIDI output only). These drivers (also present in Windows): @@ -303,21 +321,21 @@ Kernel space | Client applications - Wave mapper (msacm.drv) + Wave mapper (msacm32.drv, mmsystem.dll16) The Wave mapper device allows to load on-demand audio codecs in order to perform software conversion for the types the actual low level driver (hardware). Those codecs are - provided through the standard ACM drivers in MSACM32 DLL. + provided through the standard ACM drivers in msacm32 or msacm.dll16 DLL. Wave mapper driver implementation can be found in - dlls/winmm/wavemap/ directory. This - driver heavily relies on MSACM and MSACM32 DLLs which can be - found in dlls/msacm and - dlls/msacm32. Those DLLs load ACM + dlls/msacm32.drv/ directory. This + driver heavily relies on msacm DLLs + found in dlls/msacm32 and + dlls/msacm.dll16. Those DLLs load ACM drivers which provide the conversion to PCM format (which is normally supported by low level drivers). A Law, uLaw, ADPCM, MP3... fit into the category of non PCM formats. @@ -326,7 +344,7 @@ Kernel space | Client applications - MIDI mapper (midimap.drv) + MIDI mapper (midimap) Midi mapper allows to map each one of 16 MIDI channels to a @@ -338,7 +356,7 @@ Kernel space | Client applications A built-in MIDI mapper can be found in - dlls/winmm/midimap/. It partly provides + dlls/midimap/. It partly provides the same functionality as the Windows one. It allows to pick up destination channels: you can map a given channel to a specific playback device channel (see the configuration @@ -375,9 +393,9 @@ Kernel space | Client applications CdAudio - MciCDA.drv + mcicda MCI interface to a CD audio player - dlls/winmm/mcicda/ + dlls/mcicda/ Relies on NTDLL CdRom raw interface (through DeviceIoControl). @@ -385,27 +403,27 @@ Kernel space | Client applications WaveAudio - MciWave.drv + mciwave MCI interface for wave playback and record - dlls/winmm/mciwave/ + dlls/mciwave/ It uses the low level audio API. Sequencer - MciSeq.drv + mciseq Midi Sequencer (playback) - dlls/winmm/mciseq/ + dlls/mciseq/ It uses the low level midi APIs AviVideo - MciAvi.drv + mciavi32 AVI playback and record - dlls/winmm/mciavi/ + dlls/mciavi32/ - It rather heavily relies on MSVIDEO/MSVFW32 DLLs + It rather heavily relies on msvfw32/msvideo.dll16 DLLs pair to work. @@ -435,33 +453,31 @@ Kernel space | Client applications High level layers - WINMM (and MMSYSTEM) - + winmm (and mmsystem.dll16) + - The high level layers encompass basically the MMSYSTEM and - WINMM DLLs exported APIs. It also provides the skeleton for + The high level layers encompass basically the winmm and + mmsystem.dll16 DLLs exported APIs. It also provides the skeleton for the core functionality for multimedia playback and - recording. Note that native MMSYSTEM and WINMM do not + recording. Note that native WINMM and MMSYSTEM do not currently work under Wine and there is no plan to support them (it would require to also fully support VxD, which is not done yet). - WINMM and MMSYSTEM in Wine can handle both 16- and 32-bit - drivers (for low level and MCI drivers). It will handle all - the conversions transparently for the all the calls to WINMM - and MMSYSTEM, as it knows what the driver interface is (16- - or 32-bit) and it manages the information sent + winmm and mmsystem.dll16 in Wine can handle both 32- and 16-bit + drivers (for low level and MCI drivers). Wine will handle all + the conversions transparently for all the calls to winmm + and mmsystem.dll16, as it knows what the driver interface is (32- + or 16-bit) and it manages the information sent accordingly. MCI drivers are seen as regular Wine modules, and can be loaded (with a correct load order between builtin, native), - as any other DLL. Please note, that MCI drivers module names - must bear the .drv extension to be - correctly understood. + as any other DLL. @@ -486,7 +502,7 @@ Kernel space | Client applications Note that a Wine specific flag has been added to the wodOpen function, so that the DSound DLL can get a reference to a COM sound object from a given - WINMM wave output device. This should be changed in the + winmm wave output device. This should be changed in the future. @@ -501,7 +517,7 @@ Kernel space | Client applications Contents - The MSACM32 (and its 16-bit sibling MSACM) provide a way to + The msacm32 (and its 16-bit sibling msacm.dll16) DLL provide a way to map a given wave format to another format. It also provides filtering capabilities. Those DLLs only implement the proper switch between a caller and a driver providing the @@ -565,7 +581,7 @@ Kernel space | Client applications Caching - The MSACM/MSACM32 keeps some data cached for all known ACM + The msacm32/msacm.dll16 keeps some data cached for all known ACM drivers. Under the key Software\Microsoft\AudioCompressionManager\DriverCache\<driver name> @@ -622,7 +638,7 @@ Kernel space | Client applications Contents - The MSVFW32 (and its 16-bit sibling MSVIDEO) provide + The msvfw32 (and its 16-bit sibling msvideo.dll16) provide encode/decode video streams. Those DLLs only implement the proper switch between a caller and a driver providing the implementation of the requested format coding/decoding @@ -829,13 +845,13 @@ HKLM\Software\Microsoft\Windows NT\CurrentVersion Here's a sample configuration: [mci] - cdaudio=mcicda.drv - sequencer=mciseq.drv - waveaudio=mciwave.drv - avivideo=mciavi.drv - videodisc=mcipionr.drv + MPEGVideo=mciqtz32.dll + MPEGVideo2=mciqtz32.dll + avivideo=mciavi32.dll + cdaudio=mcicda.dll + sequencer=mciseq.dll vcr=mcivisca.drv - MPEGVideo=mciqtz.drv + waveaudio=mciwave.dll @@ -845,10 +861,11 @@ HKLM\Software\Microsoft\Windows NT\CurrentVersion installation from the wine.inf file). [drivers32] - MSACM.imaadpcm=imaadp32.acm - MSACM.msadpcm=msadp32.acm - MSACM.msg711=msg711.acm - MSACM.winemp3=winemp3.acm + msacm.imaadpcm=imaadp32.acm + msacm.msadpcm=msadp32.acm + msacm.msg711=msg711.acm + msacm.winemp3=winemp3.acm + msacm.msgsm610=msgsm32.acm @@ -859,9 +876,9 @@ HKLM\Software\Microsoft\Windows NT\CurrentVersion file). [drivers32] - VIDC.MRLE=msrle32.dll - VIDC.MSVC=msvidc32.dll - VIDC.CVID=iccvid.dll + vidc.mrle=msrle32.dll + vidc.msvc=msvidc32.dll + vidc.cvid=iccvid.dll @@ -917,7 +934,7 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\MediaProperties\PrivatePrope to remap channels internally (for example 9 -> 16), to change instruments identification, event controllers values. See the source file - dlls/winmm/midimap/midimap.c for the + dlls/midimap/midimap.c for the details (this isn't implemented yet). -- 1.8.3.4