VirtualBox

Changeset 71113 in vbox


Ignore:
Timestamp:
Feb 23, 2018 9:51:14 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
120980
Message:

Audio/DrvAudioCommon.cpp: Implemented DrvAudioHlpBytesToMs().

Location:
trunk/src/VBox/Devices/Audio
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DrvAudio.h

    r70993 r71113  
    154154uint32_t DrvAudioHlpCalcBitrate(uint8_t cBits, uint32_t uHz, uint8_t cChannels);
    155155uint32_t DrvAudioHlpCalcBitrate(const PPDMAUDIOPCMPROPS pProps);
     156uint64_t DrvAudioHlpBytesToMs(const PPDMAUDIOPCMPROPS pProps, size_t cbBytes);
    156157uint32_t DrvAudioHlpMsToBytes(const PPDMAUDIOPCMPROPS pProps, uint32_t uMs);
    157158bool DrvAudioHlpPCMPropsAreEqual(const PPDMAUDIOPCMPROPS pPCMProps1, const PPDMAUDIOPCMPROPS pPCMProps2);
  • trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp

    r70993 r71113  
    10501050{
    10511051    return DrvAudioHlpCalcBitrate(pProps->cBits, pProps->uHz, pProps->cChannels);
     1052}
     1053
     1054/**
     1055 * Returns the time (in ms) for given byte amount and PCM properties.
     1056 *
     1057 * @return  uint64_t            Calculated time (in ms).
     1058 * @param   pProps              PCM properties to calculate amount of bytes for.
     1059 * @param   cbBytes             Amount of bytes to calculate time for.
     1060 */
     1061uint64_t DrvAudioHlpBytesToMs(const PPDMAUDIOPCMPROPS pProps, size_t cbBytes)
     1062{
     1063    AssertPtrReturn(pProps, 0);
     1064
     1065    if (!cbBytes)
     1066        return 0;
     1067
     1068    const float dbBytesPerMs = ((pProps->cBits / 8) * pProps->cChannels * pProps->uHz) / 1000;
     1069    Assert(dbBytesPerMs >= 0.0f);
     1070    if (!dbBytesPerMs) /* Prevent division by zero. */
     1071        return 0;
     1072
     1073    return cbBytes / dbBytesPerMs;
    10521074}
    10531075
Note: See TracChangeset for help on using the changeset viewer.

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