-
Notifications
You must be signed in to change notification settings - Fork 30
MfPack Structure
Structure of MfPack
MFPack follows mainly the structures from Microsoft, Microsoft | Learn Documentation
In that way we broke with the tradition used by former Delphi translations, where translations to TDelphitype are abandoned. The main reason is that It makes it easier to read and interpret the issues on MSDN, docs or learn, in relation to the Delphi translations. If you need a pointer to an object or want the fancy Delphi naming convention, you are free to do so.
MIDL Most translations are translated from MIDL (Microsoft Interface Definition Language) headers. The reason is that MIDL files are better commented. However; there should be no difference in-between the 2 translations (MIDL and C++), but if there are differences, the C++ header translation will be implemented.
MFPACK DIRECTORY STRUCTURES
MfPack - Core Audio headers
Headers and libraries that define all of the Core Audio APIs.
The Core Audio APIs are
- Multimedia Device API (MMDevice) Clients use this API to enumerate the audio endpoint devices in the system.
- Windows Audio Session API (WASAPI) Clients use this API to create and manage audio streams to and from audio endpoint devices.
- DeviceTopology API Clients use this API to directly access the topological features (for example, volume controls and multiplexers) that lie along the data paths inside hardware devices in audio adapters.
- EndpointVolume API Clients use this API to directly access the volume controls on audio endpoint devices. This API is primarily used by applications that manage exclusive-mode audio streams.
To find the header and library for a specific API element, please consult the reference pages on Microsoft | Learn Documentation and Header Files and System Components
For MfPack filelisting and location, see here
Additional Info on Helper Functions
The Windows 8 MFPlat.dll is a component of the Microsoft Windows operating system. It has several functions included in the module. MFPlat implements helper functionality for low level memory allocation, operation scheduling FIFOs, and win32 file access abstractions. To be more specific, it provides support for the following:
- allocating and initializing memory buffers (known as ‘samples’) and helpers to simplify managing their lifetimes
- efficient Data copying functions for memory buffers
- allocating and initializing operation FIFOs (known as ‘events’)
- implementing a simple clock object
- implementing a win32 file wrapper
- allocating and initializing arrays of memory buffers for CPUs and GPUs
If the MFStartup method succeeds, MFPlat provides the following work queue functionality:
- internally supporting I/O items (as used by the win32 file wrapper and socket libraries)
- providing an array of multithreaded work queues with thread priority support
- supporting work items, timer items and wait items through the work queues
MFPlat provides helper functionality for finding and creating media transforms and media sources registered on the system, and creating and manipulating media types, though MFPlat itself cannot create the actual media nor play it back.
REMARKS:
Every Delphi unit has a section that contains helpers specific for the Delphi programming language. If, however, a helper- or utility function covers more units, then this will be added in the shared Delphi helper unit (WinApi.MediaFoundationApi.MfMetLib.pas) or the WinApi.WinApiTypes.pas that holds shared types for all Delphi versions. WinApi.WinApiTypes.pas is depended on WinApiTypes.inc where you en- or disable the types your Delphi version does or doesn't support.