Index: /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 61330)
+++ /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 61331)
@@ -1374,6 +1374,4 @@
         return VINF_SUCCESS;
 
-    Assert(AUDIOMIXBUF_B2S(pMixBuf, cbBuf) <= pMixBuf->cSamples);
-
     uint32_t cToRead = RT_MIN(AUDIOMIXBUF_B2S(pMixBuf, cbBuf), pMixBuf->cUsed);
 
Index: /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 61330)
+++ /trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp	(revision 61331)
@@ -201,5 +201,5 @@
     char pvBuf[_1K];
     int16_t samples[32] = { 0xAA, 0xBB };
-    uint32_t read , written, mixed, temp;
+    uint32_t read , written, mixed;
 
     uint32_t cChild1Free     = cBufSize;
@@ -235,5 +235,5 @@
         RTTESTI_CHECK_MSG_BREAK(written == cSamplesChild2, ("Child2: Expected %RU32 written samples, got %RU32\n", cSamplesChild2, written));
         RTTESTI_CHECK_RC_OK_BREAK(AudioMixBufMixToParent(&child2, written, &mixed));
-        RTTESTI_CHECK_MSG_BREAK(AudioMixBufMixed(&child2) == mixed, ("Child2: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child2), temp));
+        RTTESTI_CHECK_MSG_BREAK(AudioMixBufMixed(&child2) == mixed, ("Child2: Expected %RU32 mixed samples, got %RU32\n", AudioMixBufMixed(&child2), AudioMixBufUsed(&parent)));
         RTTESTI_CHECK_MSG_BREAK(AudioMixBufUsed(&child2) == AUDIOMIXBUF_S2S_RATIO(&parent, mixed), ("Child2: Expected %RU32 used samples, got %RU32\n", AudioMixBufMixed(&child2), AUDIOMIXBUF_S2S_RATIO(&parent, mixed)));
         RTTESTI_CHECK_MSG_BREAK(AudioMixBufUsed(&parent) == 0, ("Parent2: Expected 0 used samples, got %RU32\n", AudioMixBufUsed(&parent)));
@@ -268,6 +268,5 @@
     PDMPCMPROPS     props;
 
-
-    RTTestSubF(hTest, "Sample conversion");
+    RTTestSubF(hTest, "Sample conversion (U8)");
 
     PDMAUDIOSTREAMCFG cfg_p =
@@ -278,5 +277,5 @@
         44100,                    /* Hz */
         1                         /* Channels */,
-        PDMAUDIOFMT_U8                /* Format */,
+        PDMAUDIOFMT_U8            /* Format */,
         PDMAUDIOENDIANNESS_LITTLE /* ENDIANNESS */
     };
@@ -302,5 +301,5 @@
         22050,                    /* Hz */
         1                         /* Channels */,
-        PDMAUDIOFMT_U8                /* Format */,
+        PDMAUDIOFMT_U8            /* Format */,
         PDMAUDIOENDIANNESS_LITTLE /* ENDIANNESS */
     };
@@ -314,6 +313,6 @@
 
     /* 8-bit unsigned samples. Often used with SB16 device. */
-    uint8_t     samples[16]  = { 0xAA, 0xBB, 0, 1, 43, 125, 126, 127,
-                                 128, 129, 130, 131, 132, UINT8_MAX - 1, UINT8_MAX, 0 };
+    uint8_t samples[16]  = { 0xAA, 0xBB, 0, 1, 43, 125, 126, 127,
+                             128, 129, 130, 131, 132, UINT8_MAX - 1, UINT8_MAX, 0 };
 
     /*
@@ -332,5 +331,5 @@
     /**** 8-bit unsigned samples ****/
     RTTestPrintf(hTest, RTTESTLVL_DEBUG, "Conversion test %uHz %uch 8-bit\n", cfg_c.uHz, cfg_c.cChannels);
-    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&child, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
     RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
@@ -348,4 +347,5 @@
         AudioMixBufFinish(&parent, read);
     }
+
     RTTESTI_CHECK_MSG(cSamplesRead == cSamplesParent, ("Parent: Expected %RU32 mixed samples, got %RU32\n", cSamplesParent, cSamplesRead));
 
@@ -378,6 +378,5 @@
     PDMPCMPROPS     props;
 
-
-    RTTestSubF(hTest, "Sample conversion 16-bit");
+    RTTestSubF(hTest, "Sample conversion (S16)");
 
     PDMAUDIOSTREAMCFG cfg_p =
@@ -388,5 +387,5 @@
         44100,                    /* Hz */
         1                         /* Channels */,
-        PDMAUDIOFMT_S16               /* Format */,
+        PDMAUDIOFMT_S16           /* Format */,
         PDMAUDIOENDIANNESS_LITTLE /* ENDIANNESS */
     };
@@ -435,5 +434,5 @@
     /**** 16-bit signed samples ****/
     RTTestPrintf(hTest, RTTESTLVL_DEBUG, "Conversion test %uHz %uch 16-bit\n", cfg_c.uHz, cfg_c.cChannels);
-    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&child, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
     RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
@@ -480,5 +479,4 @@
     uint32_t        cBufSize = 256;
     PDMPCMPROPS     props;
-
 
     RTTestSubF(hTest, "Volume control");
@@ -533,5 +531,5 @@
     AudioMixBufSetVolume(&child, &vol);
 
-    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&child, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
     RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
@@ -564,5 +562,5 @@
     AudioMixBufSetVolume(&child, &vol);
 
-    RTTESTI_CHECK_RC_OK(AudioMixBufWriteAt(&child, 0, &samples, sizeof(samples), &written));
+    RTTESTI_CHECK_RC_OK(AudioMixBufWriteCirc(&child, &samples, sizeof(samples), &written));
     RTTESTI_CHECK_MSG(written == cSamplesChild, ("Child: Expected %RU32 written samples, got %RU32\n", cSamplesChild, written));
     RTTESTI_CHECK_RC_OK(AudioMixBufMixToParent(&child, written, &mixed));
