Index: /trunk/src/VBox/Devices/Audio/DrvAudio.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.h	(revision 71112)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.h	(revision 71113)
@@ -154,4 +154,5 @@
 uint32_t DrvAudioHlpCalcBitrate(uint8_t cBits, uint32_t uHz, uint8_t cChannels);
 uint32_t DrvAudioHlpCalcBitrate(const PPDMAUDIOPCMPROPS pProps);
+uint64_t DrvAudioHlpBytesToMs(const PPDMAUDIOPCMPROPS pProps, size_t cbBytes);
 uint32_t DrvAudioHlpMsToBytes(const PPDMAUDIOPCMPROPS pProps, uint32_t uMs);
 bool DrvAudioHlpPCMPropsAreEqual(const PPDMAUDIOPCMPROPS pPCMProps1, const PPDMAUDIOPCMPROPS pPCMProps2);
Index: /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 71112)
+++ /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 71113)
@@ -1050,4 +1050,26 @@
 {
     return DrvAudioHlpCalcBitrate(pProps->cBits, pProps->uHz, pProps->cChannels);
+}
+
+/**
+ * Returns the time (in ms) for given byte amount and PCM properties.
+ *
+ * @return  uint64_t            Calculated time (in ms).
+ * @param   pProps              PCM properties to calculate amount of bytes for.
+ * @param   cbBytes             Amount of bytes to calculate time for.
+ */
+uint64_t DrvAudioHlpBytesToMs(const PPDMAUDIOPCMPROPS pProps, size_t cbBytes)
+{
+    AssertPtrReturn(pProps, 0);
+
+    if (!cbBytes)
+        return 0;
+
+    const float dbBytesPerMs = ((pProps->cBits / 8) * pProps->cChannels * pProps->uHz) / 1000;
+    Assert(dbBytesPerMs >= 0.0f);
+    if (!dbBytesPerMs) /* Prevent division by zero. */
+        return 0;
+
+    return cbBytes / dbBytesPerMs;
 }
 
