VirtualBox

Changeset 87759 in vbox for trunk/src/VBox/Main/src-client


Ignore:
Timestamp:
Feb 15, 2021 12:15:18 PM (4 years ago)
Author:
vboxsync
Message:

Audio/HDA: Lots more code in the hope to resolve issue ticketoem2ref:36, namely:

  • Decoupled async I/O timing from guest driver-specific DMA timing to further reduce EMT workload.
  • Added data transfer heuristics (based on set-up DMA buffers) to detect Windows 10 guests (enabled by default).
  • Also expose and support 16kHz + 22,5kHz streams (16-bit signed).

Only tested on Win10 20H2 and various Ubuntu guests so far.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r87436 r87759  
    30523052                     * HDA-specific parameters.
    30533053                     */
    3054 
    30553054                    uint64_t uTmp;
    30563055                    GetExtraDataBoth(virtualBox, pMachine, "VBoxInternal2/Audio/Device/PosAdjustEnabled", &strTmp);
    30573056                    if (strTmp.isNotEmpty())
    3058                     {
    3059                         uTmp = strTmp.toUInt64(); /* Returns 0 if not set / invalid -> means disabled. */
    3060                         InsertConfigInteger(pCfg,          "PosAdjustEnabled",     uTmp);
    3061                     }
     3057                        InsertConfigInteger(pCfg,          "PosAdjustEnabled",             strTmp.equalsIgnoreCase("true")
     3058                                                                                        || strTmp.equalsIgnoreCase("1"));
    30623059
    30633060                    GetExtraDataBoth(virtualBox, pMachine, "VBoxInternal2/Audio/Device/PosAdjustFrames", &strTmp);
     
    30653062                    {
    30663063                        uTmp = strTmp.toUInt64(); /* Ditto. */
    3067                         InsertConfigInteger(pCfg,          "PosAdjustFrames",      uTmp);
     3064                        InsertConfigInteger(pCfg,          "PosAdjustFrames",           uTmp);
    30683065                    }
    30693066
     3067                    GetExtraDataBoth(virtualBox, pMachine, "VBoxInternal2/Audio/Device/TransferHeuristicsEnabled", &strTmp);
     3068                    if (strTmp.isNotEmpty())
     3069                        InsertConfigInteger(pCfg,          "TransferHeuristicsEnabled",    strTmp.equalsIgnoreCase("true")
     3070                                                                                        || strTmp.equalsIgnoreCase("1"));
    30703071                    break;
    30713072                }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette