Index: trunk/src/VBox/Devices/Audio/AudioMixer.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 87994)
@@ -1715,5 +1715,5 @@
             break;
 
-        const uint32_t cbChunk = DrvAudioHlpFramesToBytes(cfChunk, &pSink->PCMProps);
+        const uint32_t cbChunk = DrvAudioHlpFramesToBytes(&pSink->PCMProps, cfChunk);
         Assert(cbChunk <= pSink->cbScratchBuf);
 
@@ -2119,5 +2119,5 @@
             break;
 
-        const uint32_t cbWrittenChunk = DrvAudioHlpFramesToBytes(cfWritten, &pSink->PCMProps);
+        const uint32_t cbWrittenChunk = DrvAudioHlpFramesToBytes(&pSink->PCMProps, cfWritten);
 
         Assert(cbToWrite >= cbWrittenChunk);
Index: trunk/src/VBox/Devices/Audio/DrvAudio.h
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvAudio.h	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvAudio.h	(revision 87994)
@@ -204,5 +204,5 @@
 uint64_t DrvAudioHlpBytesToMicro(PCPDMAUDIOPCMPROPS pProps, uint32_t cb);
 uint64_t DrvAudioHlpBytesToNano(PCPDMAUDIOPCMPROPS pProps, uint32_t cb);
-uint32_t DrvAudioHlpFramesToBytes(uint32_t cFrames, PCPDMAUDIOPCMPROPS pProps);
+uint32_t DrvAudioHlpFramesToBytes(PCPDMAUDIOPCMPROPS pProps, uint32_t cFrames);
 uint64_t DrvAudioHlpFramesToMilli(PCPDMAUDIOPCMPROPS pProps, uint32_t cFrames);
 uint64_t DrvAudioHlpFramesToNano(PCPDMAUDIOPCMPROPS pProps, uint32_t cFrames);
Index: trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 87994)
@@ -137,5 +137,5 @@
 
     Assert(pPCMProps->cbSample);
-    size_t cbToClear = DrvAudioHlpFramesToBytes(cFrames, pPCMProps);
+    size_t cbToClear = DrvAudioHlpFramesToBytes(pPCMProps, cFrames);
     Assert(cbBuf >= cbToClear);
 
@@ -1324,18 +1324,14 @@
 
 /**
- * Returns the bytes for a given audio frames amount and PCM properties.
- *
- * @return Calculated bytes for given audio frames.
- * @param  cFrames              Amount of audio frames to calculate bytes for.
- * @param  pProps               PCM properties to calculate bytes for.
- */
-uint32_t DrvAudioHlpFramesToBytes(uint32_t cFrames, PCPDMAUDIOPCMPROPS pProps)
+ * Converts frames to bytes.
+ *
+ * @return Number of bytes.
+ * @param   pProps      The PCM properties to use.
+ * @param   cFrames     Number of audio frames to convert.
+ */
+uint32_t DrvAudioHlpFramesToBytes(PCPDMAUDIOPCMPROPS pProps, uint32_t cFrames)
 {
     AssertPtrReturn(pProps, 0);
-
-    if (!cFrames)
-        return 0;
-
-    return cFrames * PDMAUDIOPCMPROPS_F2B(pProps, 1 /* Frame */);
+    return PDMAUDIOPCMPROPS_F2B(pProps, cFrames);
 }
 
Index: trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 87994)
@@ -1501,5 +1501,5 @@
     Log2Func(("cFramesDelay=%RI32, enmState=%d, rc=%d\n", cFramesDelay, enmState, rc));
 
-    return DrvAudioHlpFramesToBytes(cFramesDelay, &pStreamALSA->pCfg->Props);
+    return DrvAudioHlpFramesToBytes(&pStreamALSA->pCfg->Props, cFramesDelay);
 }
 
Index: trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 87994)
@@ -1305,5 +1305,5 @@
         return VERR_GENERAL_FAILURE; /** @todo Fudge! */
 
-    const size_t cbBufSize = DrvAudioHlpFramesToBytes(pCAStream->pCfg->Backend.cFramesPeriod, &pCAStream->pCfg->Props);
+    const size_t cbBufSize = DrvAudioHlpFramesToBytes(&pCAStream->pCfg->Props, pCAStream->pCfg->Backend.cFramesPeriod);
 
     /*
Index: trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 87994)
@@ -666,5 +666,5 @@
          */
         bd.dwFlags       = DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_LOCSOFTWARE;
-        bd.dwBufferBytes = DrvAudioHlpFramesToBytes(pCfgReq->Backend.cFramesBufferSize, &pCfgReq->Props);
+        bd.dwBufferBytes = DrvAudioHlpFramesToBytes(&pCfgReq->Props, pCfgReq->Backend.cFramesBufferSize);
 
         DSLOG(("DSound: Requested playback buffer is %RU64ms (%ld bytes)\n",
@@ -895,5 +895,5 @@
 
     if (   pStreamDS->Out.fFirstTransfer
-        && pStreamDS->Out.cbTransferred >= DrvAudioHlpFramesToBytes(pStreamDS->Cfg.Backend.cFramesPreBuffering, &pStreamDS->Cfg.Props))
+        && pStreamDS->Out.cbTransferred >= DrvAudioHlpFramesToBytes(&pStreamDS->Cfg.Props, pStreamDS->Cfg.Backend.cFramesPreBuffering))
     {
         hr = directSoundPlayStart(pThis, pStreamDS);
@@ -1401,5 +1401,5 @@
         bd.dwSize        = sizeof(bd);
         bd.lpwfxFormat   = &wfx;
-        bd.dwBufferBytes = DrvAudioHlpFramesToBytes(pCfgReq->Backend.cFramesBufferSize, &pCfgReq->Props);
+        bd.dwBufferBytes = DrvAudioHlpFramesToBytes(&pCfgReq->Props, pCfgReq->Backend.cFramesBufferSize);
 
         DSLOG(("DSound: Requested capture buffer is %RU64ms (%ld bytes)\n",
Index: trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 87994)
@@ -803,5 +803,5 @@
     pStreamPA->BufAttr.maxlength   = -1; /* Let the PulseAudio server choose the biggest size it can handle. */
     pStreamPA->BufAttr.prebuf      = cbLatency;
-    pStreamPA->BufAttr.minreq      = DrvAudioHlpFramesToBytes(pCfgReq->Backend.cFramesPeriod, &pCfgReq->Props);
+    pStreamPA->BufAttr.minreq      = DrvAudioHlpFramesToBytes(&pCfgReq->Props, pCfgReq->Backend.cFramesPeriod);
 
     LogFunc(("Requested: BufAttr tlength=%RU32, maxLength=%RU32, minReq=%RU32\n",
@@ -849,5 +849,5 @@
     pStreamPA->SampleSpec.channels = pCfgReq->Props.cChannels;
 
-    pStreamPA->BufAttr.fragsize    = DrvAudioHlpFramesToBytes(pCfgReq->Backend.cFramesPeriod, &pCfgReq->Props);
+    pStreamPA->BufAttr.fragsize    = DrvAudioHlpFramesToBytes(&pCfgReq->Props, pCfgReq->Backend.cFramesPeriod);
     pStreamPA->BufAttr.maxlength   = -1; /* Let the PulseAudio server choose the biggest size it can handle. */
 
Index: trunk/src/VBox/Devices/Audio/DrvHostValidationKit.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/DrvHostValidationKit.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/DrvHostValidationKit.cpp	(revision 87994)
@@ -145,5 +145,5 @@
     pStreamDbg->uSamplesSinceStarted = 0;
     pStreamDbg->Out.tsLastPlayed  = 0;
-    pStreamDbg->Out.cbPlayBuffer  = DrvAudioHlpFramesToBytes(pCfgReq->Backend.cFramesBufferSize, &pCfgReq->Props);
+    pStreamDbg->Out.cbPlayBuffer  = DrvAudioHlpFramesToBytes(&pCfgReq->Props, pCfgReq->Backend.cFramesBufferSize);
     pStreamDbg->Out.pu8PlayBuffer = (uint8_t *)RTMemAlloc(pStreamDbg->Out.cbPlayBuffer);
     AssertReturn(pStreamDbg->Out.pu8PlayBuffer, VERR_NO_MEMORY);
Index: trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp
===================================================================
--- trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 87993)
+++ trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 87994)
@@ -50,7 +50,7 @@
 
     uint32_t u32;
-    RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(44100, &s_Cfg441StereoS16)) == 44100 * 2 * 2,
+    RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoS16, 44100)) == 44100 * 2 * 2,
                       ("cb=%RU32\n", u32));
-    RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(2, &s_Cfg441StereoS16)) == 2 * 2 * 2,
+    RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoS16, 2)) == 2 * 2 * 2,
                       ("cb=%RU32\n", u32));
 
