VirtualBox

Changeset 70894 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Feb 7, 2018 5:13:53 PM (7 years ago)
Author:
vboxsync
Message:

Audio/DevHDA.cpp: Save a lot of stream startup time by avoiding to create/destroy the driver stream in hdaAddStream(). The driver streams already are getting created/destroyed hdaMixerAddStream/hdaMixerDestroyStream.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DevHDA.cpp

    r70669 r70894  
    19591959    AssertPtrReturn(pCfg,  VERR_INVALID_POINTER);
    19601960
    1961     int rc = VINF_SUCCESS;
    1962 
    1963     PHDADRIVER pDrv;
    1964     RTListForEach(&pThis->lstDrv, pDrv, HDADRIVER, Node)
    1965     {
    1966         int rc2;
    1967 
    1968         switch (pCfg->enmDir)
    1969         {
    1970             case PDMAUDIODIR_OUT:
    1971                 rc2 = hdaAddStreamOut(pThis, pCfg);
    1972                 break;
    1973 
    1974             case PDMAUDIODIR_IN:
    1975                 rc2 = hdaAddStreamIn(pThis, pCfg);
    1976                 break;
    1977 
    1978             default:
    1979                 rc2 = VERR_NOT_SUPPORTED;
    1980                 AssertFailed();
    1981                 break;
    1982         }
    1983 
    1984         if (   RT_FAILURE(rc2)
    1985             && (pDrv->fFlags & PDMAUDIODRVFLAGS_PRIMARY)) /* We only care about primary drivers here, the rest may fail. */
    1986         {
    1987             if (RT_SUCCESS(rc))
    1988                 rc = rc2;
    1989             /* Keep going. */
    1990         }
    1991     }
     1961    int rc;
     1962
     1963    LogFlowFuncEnter();
     1964
     1965    switch (pCfg->enmDir)
     1966    {
     1967        case PDMAUDIODIR_OUT:
     1968            rc = hdaAddStreamOut(pThis, pCfg);
     1969            break;
     1970
     1971        case PDMAUDIODIR_IN:
     1972            rc = hdaAddStreamIn(pThis, pCfg);
     1973            break;
     1974
     1975        default:
     1976            rc = VERR_NOT_SUPPORTED;
     1977            AssertFailed();
     1978            break;
     1979    }
     1980
     1981    LogFlowFunc(("Returning %Rrc\n", rc));
    19921982
    19931983    return rc;
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