Index: /trunk/include/VBox/vmm/pdmaudioifs.h
===================================================================
--- /trunk/include/VBox/vmm/pdmaudioifs.h	(revision 73528)
+++ /trunk/include/VBox/vmm/pdmaudioifs.h	(revision 73529)
@@ -511,6 +511,6 @@
 typedef struct PDMAUDIOPCMPROPS
 {
-    /** Sample width. Bits per sample. */
-    uint8_t     cBits;
+    /** Sample width (in bytes). */
+    uint8_t     cBytes;
     /** Number of audio channels. */
     uint8_t     cChannels;
@@ -535,11 +535,11 @@
 
 /** Initializor for PDMAUDIOPCMPROPS. */
-#define PDMAUDIOPCMPROPS_INITIALIZOR(a_cBits, a_fSigned, a_cCannels, a_uHz, a_cShift, a_fSwapEndian) \
-    { a_cBits, a_cCannels, a_cShift, a_fSigned, a_fSwapEndian, a_uHz }
+#define PDMAUDIOPCMPROPS_INITIALIZOR(a_cBytes, a_fSigned, a_cCannels, a_uHz, a_cShift, a_fSwapEndian) \
+    { a_cBytes, a_cCannels, a_cShift, a_fSigned, a_fSwapEndian, a_uHz }
 /** Calculates the cShift value of given sample bits and audio channels.
  *  Note: Does only support mono/stereo channels for now. */
-#define PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(cBits, cChannels)     ((cChannels == 2) + (cBits / 16))
+#define PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(cBytes, cChannels)    ((cChannels == 2) + (cBytes / 2))
 /** Calculates the cShift value of a PDMAUDIOPCMPROPS structure. */
-#define PDMAUDIOPCMPROPS_MAKE_SHIFT(pProps)                     PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS((pProps)->cBits, (pProps)->cChannels)
+#define PDMAUDIOPCMPROPS_MAKE_SHIFT(pProps)                     PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS((pProps)->cBytes, (pProps)->cChannels)
 /** Converts (audio) frames to bytes.
  *  Needs the cShift value set correctly, using PDMAUDIOPCMPROPS_MAKE_SHIFT. */
Index: /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/AudioMixBuffer.cpp	(revision 73529)
@@ -844,5 +844,5 @@
     pMixBuf->AudioFmt = AUDMIXBUF_AUDIO_FMT_MAKE(pProps->uHz,
                                                  pProps->cChannels,
-                                                 pProps->cBits,
+                                                 pProps->cBytes * 8 /* Bit */,
                                                  pProps->fSigned);
 
Index: /trunk/src/VBox/Devices/Audio/AudioMixer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/AudioMixer.cpp	(revision 73529)
@@ -553,5 +553,5 @@
 
     LogFlowFunc(("[%s] fFlags=0x%x (enmDir=%ld, %RU8 bits, %RU8 channels, %RU32Hz)\n",
-                 pSink->pszName, fFlags, pCfg->enmDir, pCfg->Props.cBits, pCfg->Props.cChannels, pCfg->Props.uHz));
+                 pSink->pszName, fFlags, pCfg->enmDir, pCfg->Props.cBytes * 8, pCfg->Props.cChannels, pCfg->Props.uHz));
 
     /*
@@ -1322,10 +1322,10 @@
     if (pSink->PCMProps.uHz)
         LogFlowFunc(("[%s] Old format: %RU8 bit, %RU8 channels, %RU32Hz\n",
-                     pSink->pszName, pSink->PCMProps.cBits, pSink->PCMProps.cChannels, pSink->PCMProps.uHz));
+                     pSink->pszName, pSink->PCMProps.cBytes * 8, pSink->PCMProps.cChannels, pSink->PCMProps.uHz));
 
     memcpy(&pSink->PCMProps, pPCMProps, sizeof(PDMAUDIOPCMPROPS));
 
     LogFlowFunc(("[%s] New format %RU8 bit, %RU8 channels, %RU32Hz\n",
-                 pSink->pszName, pSink->PCMProps.cBits, pSink->PCMProps.cChannels, pSink->PCMProps.uHz));
+                 pSink->pszName, pSink->PCMProps.cBytes * 8, pSink->PCMProps.cChannels, pSink->PCMProps.uHz));
 
 #ifdef VBOX_AUDIO_MIXER_WITH_MIXBUF
Index: /trunk/src/VBox/Devices/Audio/DevHDA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevHDA.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DevHDA.cpp	(revision 73529)
@@ -1841,5 +1841,5 @@
 
             pCfg->Props.cChannels = 2;
-            pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBits, pCfg->Props.cChannels);
+            pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBytes, pCfg->Props.cChannels);
 
             rc = hdaCodecAddStream(pThis->pCodec, PDMAUDIOMIXERCTL_FRONT, pCfg);
Index: /trunk/src/VBox/Devices/Audio/DevHDACommon.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevHDACommon.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DevHDACommon.cpp	(revision 73529)
@@ -528,15 +528,15 @@
     }
 
-    uint8_t cBits = 0;
+    uint8_t cBytes = 0;
     switch (EXTRACT_VALUE(u32SDFMT, HDA_SDFMT_BITS_MASK, HDA_SDFMT_BITS_SHIFT))
     {
         case 0:
-            cBits = 8;
+            cBytes = 1;
             break;
         case 1:
-            cBits = 16;
+            cBytes = 2;
             break;
         case 4:
-            cBits = 32;
+            cBytes = 4;
             break;
         default:
@@ -551,9 +551,9 @@
         RT_BZERO(pProps, sizeof(PDMAUDIOPCMPROPS));
 
-        pProps->cBits     = cBits;
+        pProps->cBytes    = cBytes;
         pProps->fSigned   = true;
         pProps->cChannels = (u32SDFMT & 0xf) + 1;
         pProps->uHz       = u32Hz * u32HzMult / u32HzDiv;
-        pProps->cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBits, pProps->cChannels);
+        pProps->cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBytes, pProps->cChannels);
     }
 
Index: /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 73529)
@@ -1766,7 +1766,7 @@
 
             pCfg->Props.cChannels = 2;
-            pCfg->Props.cBits     = 16;
+            pCfg->Props.cBytes    = 2 /* 16-bit */;
             pCfg->Props.fSigned   = true;
-            pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBits, pCfg->Props.cChannels);
+            pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBytes, pCfg->Props.cChannels);
 
             rc = ichac97R3MixerAddDrvStreams(pThis, pMixSink, pCfg);
Index: /trunk/src/VBox/Devices/Audio/DevSB16.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 73529)
@@ -1036,7 +1036,7 @@
     pCfg->Props.uHz       = pThis->freq;
     pCfg->Props.cChannels = 1; /* Mono */
-    pCfg->Props.cBits     = 8;
+    pCfg->Props.cBytes    = 1 /* 8-bit */;
     pCfg->Props.fSigned   = false;
-    pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBits, pCfg->Props.cChannels);
+    pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBytes, pCfg->Props.cChannels);
 
     AssertCompile(sizeof(pCfg->szName) > sizeof("Output"));
@@ -2042,7 +2042,7 @@
         Cfg.Props.uHz       = pThis->freq;
         Cfg.Props.cChannels = 1 << pThis->fmt_stereo;
-        Cfg.Props.cBits     = pThis->fmt_bits;
+        Cfg.Props.cBytes    = pThis->fmt_bits / 8;
         Cfg.Props.fSigned   = RT_BOOL(pThis->fmt_signed);
-        Cfg.Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(Cfg.Props.cBits, Cfg.Props.cChannels);
+        Cfg.Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(Cfg.Props.cBytes, Cfg.Props.cChannels);
 
         if (!DrvAudioHlpPCMPropsAreEqual(&Cfg.Props, &pThis->Out.Cfg.Props))
Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 73529)
@@ -543,9 +543,9 @@
     LogRel2(("Audio: Guest %s format for '%s': %RU32Hz, %RU8%s, %RU8 %s\n",
              pCfgGuest->enmDir == PDMAUDIODIR_IN ? "recording" : "playback", pStream->szName,
-             pCfgGuest->Props.uHz, pCfgGuest->Props.cBits, pCfgGuest->Props.fSigned ? "S" : "U",
+             pCfgGuest->Props.uHz, pCfgGuest->Props.cBytes * 8, pCfgGuest->Props.fSigned ? "S" : "U",
              pCfgGuest->Props.cChannels, pCfgGuest->Props.cChannels == 1 ? "Channel" : "Channels"));
     LogRel2(("Audio: Requested host %s format for '%s': %RU32Hz, %RU8%s, %RU8 %s\n",
              pCfgHost->enmDir == PDMAUDIODIR_IN ? "recording" : "playback", pStream->szName,
-             pCfgHost->Props.uHz, pCfgHost->Props.cBits, pCfgHost->Props.fSigned ? "S" : "U",
+             pCfgHost->Props.uHz, pCfgHost->Props.cBytes * 8, pCfgHost->Props.fSigned ? "S" : "U",
              pCfgHost->Props.cChannels, pCfgHost->Props.cChannels == 1 ? "Channel" : "Channels"));
 
@@ -562,5 +562,5 @@
     LogRel2(("Audio: Acquired host %s format for '%s': %RU32Hz, %RU8%s, %RU8 %s\n",
              CfgHostAcq.enmDir == PDMAUDIODIR_IN ? "recording" : "playback",  pStream->szName,
-             CfgHostAcq.Props.uHz, CfgHostAcq.Props.cBits, CfgHostAcq.Props.fSigned ? "S" : "U",
+             CfgHostAcq.Props.uHz, CfgHostAcq.Props.cBytes * 8, CfgHostAcq.Props.fSigned ? "S" : "U",
              CfgHostAcq.Props.cChannels, CfgHostAcq.Props.cChannels == 1 ? "Channel" : "Channels"));
 
@@ -624,5 +624,5 @@
 
     /* Make sure to (re-)set the host buffer's shift size. */
-    CfgHostAcq.Props.cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(CfgHostAcq.Props.cBits, CfgHostAcq.Props.cChannels);
+    CfgHostAcq.Props.cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(CfgHostAcq.Props.cBytes, CfgHostAcq.Props.cChannels);
 
     rc = AudioMixBufInit(&pStream->Host.MixBuf, pStream->szName, &CfgHostAcq.Props,
@@ -648,5 +648,5 @@
 
     /* Make sure to (re-)set the guest buffer's shift size. */
-    pCfgGuest->Props.cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgGuest->Props.cBits, pCfgGuest->Props.cChannels);
+    pCfgGuest->Props.cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgGuest->Props.cBytes, pCfgGuest->Props.cChannels);
 
     /* Set set guest buffer size multiplicator. */
Index: /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvAudioCommon.cpp	(revision 73529)
@@ -136,5 +136,5 @@
         return;
 
-    Assert(pPCMProps->cBits);
+    Assert(pPCMProps->cBytes);
     size_t cbToClear = DrvAudioHlpFramesToBytes(cFrames, pPCMProps);
     Assert(cbBuf >= cbToClear);
@@ -143,6 +143,6 @@
         cbToClear = cbBuf;
 
-    Log2Func(("pPCMProps=%p, pvBuf=%p, cFrames=%RU32, fSigned=%RTbool, cBits=%RU8\n",
-              pPCMProps, pvBuf, cFrames, pPCMProps->fSigned, pPCMProps->cBits));
+    Log2Func(("pPCMProps=%p, pvBuf=%p, cFrames=%RU32, fSigned=%RTbool, cBytes=%RU8\n",
+              pPCMProps, pvBuf, cFrames, pPCMProps->fSigned, pPCMProps->cBytes));
 
     Assert(pPCMProps->fSwapEndian == false); /** @todo Swapping Endianness is not supported yet. */
@@ -154,7 +154,7 @@
     else
     {
-        switch (pPCMProps->cBits)
+        switch (pPCMProps->cBytes)
         {
-            case 8:
+            case 1: /* 8 bit */
             {
                 memset(pvBuf, 0x80, cbToClear);
@@ -162,5 +162,5 @@
             }
 
-            case 16:
+            case 2: /* 16 bit */
             {
                 uint16_t *p = (uint16_t *)pvBuf;
@@ -175,5 +175,5 @@
             /** @todo Add 24 bit? */
 
-            case 32:
+            case 4: /* 32 bit */
             {
                 uint32_t *p = (uint32_t *)pvBuf;
@@ -188,5 +188,5 @@
             default:
             {
-                AssertMsgFailed(("Invalid bits: %RU8\n", pPCMProps->cBits));
+                AssertMsgFailed(("Invalid bytes per sample: %RU8\n", pPCMProps->cBytes));
                 break;
             }
@@ -806,5 +806,5 @@
     return    pProps1->uHz         == pProps2->uHz
            && pProps1->cChannels   == pProps2->cChannels
-           && pProps1->cBits       == pProps2->cBits
+           && pProps1->cBytes      == pProps2->cBytes
            && pProps1->fSigned     == pProps2->fSigned
            && pProps1->fSwapEndian == pProps2->fSwapEndian;
@@ -827,10 +827,10 @@
     if (fValid)
     {
-        switch (pProps->cBits)
+        switch (pProps->cBytes)
         {
-            case 8:
-            case 16:
+            case 1:
+            case 2:
             /** @todo Do we need support for 24-bit samples? */
-            case 32:
+            case 4:
                 break;
             default:
@@ -844,5 +844,5 @@
 
     fValid &= pProps->uHz > 0;
-    fValid &= pProps->cShift == PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBits, pProps->cChannels);
+    fValid &= pProps->cShift == PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBytes, pProps->cChannels);
     fValid &= pProps->fSwapEndian == false; /** @todo Handling Big Endian audio data is not supported yet. */
 
@@ -874,5 +874,5 @@
 uint32_t DrvAudioHlpPCMPropsBytesPerFrame(const PPDMAUDIOPCMPROPS pProps)
 {
-    return (pProps->cBits / 8) * pProps->cChannels;
+    return pProps->cBytes * pProps->cChannels;
 }
 
@@ -887,5 +887,5 @@
 
     Log(("uHz=%RU32, cChannels=%RU8, cBits=%RU8%s",
-         pProps->uHz, pProps->cChannels, pProps->cBits, pProps->fSigned ? "S" : "U"));
+         pProps->uHz, pProps->cChannels, pProps->cBytes * 8, pProps->fSigned ? "S" : "U"));
 }
 
@@ -1013,5 +1013,5 @@
     LogFunc(("szName=%s, enmDir=%RU32 (uHz=%RU32, cBits=%RU8%s, cChannels=%RU8)\n",
              pCfg->szName, pCfg->enmDir,
-             pCfg->Props.uHz, pCfg->Props.cBits, pCfg->Props.fSigned ? "S" : "U", pCfg->Props.cChannels));
+             pCfg->Props.uHz, pCfg->Props.cBytes * 8, pCfg->Props.fSigned ? "S" : "U", pCfg->Props.cChannels));
 }
 
@@ -1119,5 +1119,5 @@
 uint32_t DrvAudioHlpCalcBitrate(const PPDMAUDIOPCMPROPS pProps)
 {
-    return DrvAudioHlpCalcBitrate(pProps->cBits, pProps->uHz, pProps->cChannels);
+    return DrvAudioHlpCalcBitrate(pProps->cBytes * 8, pProps->uHz, pProps->cChannels);
 }
 
@@ -1169,5 +1169,5 @@
     AssertPtrReturn(pProps, 0);
 
-    return cbBytes / ((pProps->cBits / 8) * pProps->cChannels);
+    return cbBytes / (pProps->cBytes * pProps->cChannels);
 }
 
@@ -1186,5 +1186,5 @@
         return 0;
 
-    const uint64_t cbBytesPerSec = (pProps->cBits / 8) * pProps->cChannels * pProps->uHz;
+    const uint64_t cbBytesPerSec = pProps->cBytes * pProps->cChannels * pProps->uHz;
     const double dbBytesPerMs = (double)cbBytesPerSec / (double)RT_MS_1SEC;
     Assert(dbBytesPerMs >= 0.0f);
@@ -1209,5 +1209,5 @@
         return 0;
 
-    const double dbBytesPerMs = ((pProps->cBits / 8) * pProps->cChannels * pProps->uHz) / RT_NS_1SEC;
+    const double dbBytesPerMs = (pProps->cBytes * pProps->cChannels * pProps->uHz) / RT_NS_1SEC;
     Assert(dbBytesPerMs >= 0.0f);
     if (!dbBytesPerMs) /* Prevent division by zero. */
@@ -1231,6 +1231,5 @@
         return 0;
 
-    const uint32_t cbFrame = (pProps->cBits / 8) * pProps->cChannels;
-    return cFrames * cbFrame;
+    return cFrames * pProps->cBytes * pProps->cChannels;
 }
 
@@ -1289,5 +1288,5 @@
         return 0;
 
-    const uint64_t cbBytesPerSec = (pProps->cBits / 8) * pProps->cChannels * pProps->uHz;
+    const uint64_t cbBytesPerSec = pProps->cBytes * pProps->cChannels * pProps->uHz;
     return ((double)cbBytesPerSec / (double)RT_MS_1SEC) * uMs;
 }
@@ -1307,5 +1306,5 @@
         return 0;
 
-    const uint64_t cbBytesPerSec = (pProps->cBits / 8) * pProps->cChannels * pProps->uHz;
+    const uint64_t cbBytesPerSec = pProps->cBytes * pProps->cChannels * pProps->uHz;
     return ((double)cbBytesPerSec / (double)RT_NS_1SEC) * uNs;
 }
@@ -1322,5 +1321,5 @@
     AssertPtrReturn(pProps, 0);
 
-    const uint32_t cbFrame = (pProps->cBits / 8) * pProps->cChannels;
+    const uint32_t cbFrame = pProps->cBytes * pProps->cChannels;
     if (!cbFrame) /* Prevent division by zero. */
         return 0;
@@ -1340,5 +1339,5 @@
     AssertPtrReturn(pProps, 0);
 
-    const uint32_t cbFrame = (pProps->cBits / 8) * pProps->cChannels;
+    const uint32_t cbFrame = pProps->cBytes * pProps->cChannels;
     if (!cbFrame) /* Prevent division by zero. */
         return 0;
@@ -1579,5 +1578,5 @@
         Assert(pProps->cChannels);
         Assert(pProps->uHz);
-        Assert(pProps->cBits);
+        Assert(pProps->cBytes);
 
         pFile->pvData = (PAUDIOWAVFILEDATA)RTMemAllocZ(sizeof(AUDIOWAVFILEDATA));
@@ -1599,7 +1598,7 @@
             pData->Hdr.u16NumChannels   = pProps->cChannels;
             pData->Hdr.u32SampleRate    = pProps->uHz;
-            pData->Hdr.u32ByteRate      = DrvAudioHlpCalcBitrate(pProps->cBits, pProps->uHz, pProps->cChannels) / 8;
-            pData->Hdr.u16BlockAlign    = pProps->cChannels * pProps->cBits / 8;
-            pData->Hdr.u16BitsPerSample = pProps->cBits;
+            pData->Hdr.u32ByteRate      = DrvAudioHlpCalcBitrate(pProps) / 8;
+            pData->Hdr.u16BlockAlign    = pProps->cChannels * pProps->cBytes;
+            pData->Hdr.u16BitsPerSample = pProps->cBytes * 8;
 
             /* Data chunk. */
Index: /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 73529)
@@ -142,13 +142,13 @@
 static snd_pcm_format_t alsaAudioPropsToALSA(PPDMAUDIOPCMPROPS pProps)
 {
-    switch (pProps->cBits)
-    {
-        case 8:
+    switch (pProps->cBytes)
+    {
+        case 1:
             return pProps->fSigned ? SND_PCM_FORMAT_S8 : SND_PCM_FORMAT_U8;
 
-        case 16:
+        case 2:
             return pProps->fSigned ? SND_PCM_FORMAT_S16_LE : SND_PCM_FORMAT_U16_LE;
 
-        case 32:
+        case 4:
             return pProps->fSigned ? SND_PCM_FORMAT_S32_LE : SND_PCM_FORMAT_U32_LE;
 
@@ -157,5 +157,5 @@
     }
 
-    AssertMsgFailed(("%RU8 bits not supported\n", pProps->cBits));
+    AssertMsgFailed(("%RU8 bytes not supported\n", pProps->cBytes));
     return SND_PCM_FORMAT_U8;
 }
@@ -167,26 +167,26 @@
     {
         case SND_PCM_FORMAT_S8:
-            pProps->cBits   = 8;
+            pProps->cBytes  = 1;
             pProps->fSigned = true;
             break;
 
         case SND_PCM_FORMAT_U8:
-            pProps->cBits   = 8;
+            pProps->cBytes  = 1;
             pProps->fSigned = false;
             break;
 
         case SND_PCM_FORMAT_S16_LE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = true;
             break;
 
         case SND_PCM_FORMAT_U16_LE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = false;
             break;
 
         case SND_PCM_FORMAT_S16_BE:
-            pProps->cBits       = 16;
-            pProps->fSigned     = true;
+            pProps->cBytes  = 2;
+            pProps->fSigned = true;
 #ifdef RT_LITTLE_ENDIAN
             pProps->fSwapEndian = true;
@@ -195,6 +195,6 @@
 
         case SND_PCM_FORMAT_U16_BE:
-            pProps->cBits       = 16;
-            pProps->fSigned     = false;
+            pProps->cBytes  = 2;
+            pProps->fSigned = false;
 #ifdef RT_LITTLE_ENDIAN
             pProps->fSwapEndian = true;
@@ -203,16 +203,16 @@
 
         case SND_PCM_FORMAT_S32_LE:
-            pProps->cBits   = 32;
+            pProps->cBytes  = 4;
             pProps->fSigned = true;
             break;
 
         case SND_PCM_FORMAT_U32_LE:
-            pProps->cBits   = 32;
+            pProps->cBytes  = 4;
             pProps->fSigned = false;
             break;
 
         case SND_PCM_FORMAT_S32_BE:
-            pProps->cBits       = 32;
-            pProps->fSigned     = true;
+            pProps->cBytes  = 4;
+            pProps->fSigned = true;
 #ifdef RT_LITTLE_ENDIAN
             pProps->fSwapEndian = true;
@@ -221,6 +221,6 @@
 
         case SND_PCM_FORMAT_U32_BE:
-            pProps->cBits       = 32;
-            pProps->fSigned     = false;
+            pProps->cBytes  = 4;
+            pProps->fSigned = false;
 #ifdef RT_LITTLE_ENDIAN
             pProps->fSwapEndian = true;
@@ -233,7 +233,7 @@
     }
 
-    Assert(pProps->cBits);
+    Assert(pProps->cBytes);
     Assert(pProps->cChannels);
-    pProps->cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBits, pProps->cChannels);
+    pProps->cShift = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pProps->cBytes, pProps->cChannels);
 
     return VINF_SUCCESS;
Index: /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 73529)
@@ -183,5 +183,5 @@
     pASBD->mSampleRate       = (Float64)pPCMProps->uHz;
     pASBD->mChannelsPerFrame = pPCMProps->cChannels;
-    pASBD->mBitsPerChannel   = pPCMProps->cBits;
+    pASBD->mBitsPerChannel   = pPCMProps->cBytes * 8;
     if (pPCMProps->fSigned)
         pASBD->mFormatFlags |= kAudioFormatFlagIsSignedInteger;
@@ -198,7 +198,7 @@
     pCfg->Props.cChannels = pASBD->mChannelsPerFrame;
     pCfg->Props.uHz       = (uint32_t)pASBD->mSampleRate;
-    pCfg->Props.cBits     = pASBD->mBitsPerChannel;
+    pCfg->Props.cBytes    = pASBD->mBitsPerChannel / 8;
     pCfg->Props.fSigned   = RT_BOOL(pASBD->mFormatFlags & kAudioFormatFlagIsSignedInteger);
-    pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBits, pCfg->Props.cChannels);
+    pCfg->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfg->Props.cBytes, pCfg->Props.cChannels);
 
     return VINF_SUCCESS;
Index: /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 73529)
@@ -266,5 +266,5 @@
     pFmt->wFormatTag      = WAVE_FORMAT_PCM;
     pFmt->nChannels       = pCfg->Props.cChannels;
-    pFmt->wBitsPerSample  = pCfg->Props.cBits;
+    pFmt->wBitsPerSample  = pCfg->Props.cBytes * 8;
     pFmt->nSamplesPerSec  = pCfg->Props.uHz;
     pFmt->nBlockAlign     = pFmt->nChannels * pFmt->wBitsPerSample / 8;
@@ -621,5 +621,5 @@
            pCfgReq->Props.uHz,
            pCfgReq->Props.cChannels,
-           pCfgReq->Props.cBits,
+           pCfgReq->Props.cBytes * 8,
            pCfgReq->Props.fSigned));
 
@@ -1337,5 +1337,5 @@
            pCfgReq->Props.uHz,
            pCfgReq->Props.cChannels,
-           pCfgReq->Props.cBits,
+           pCfgReq->Props.cBytes * 8,
            pCfgReq->Props.fSigned));
 
Index: /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 73529)
@@ -158,25 +158,25 @@
     {
         case AFMT_S8:
-            pProps->cBits   = 8;
+            pProps->cBytes  = 1;
             pProps->fSigned = true;
             break;
 
         case AFMT_U8:
-            pProps->cBits   = 8;
+            pProps->cBytes  = 1;
             pProps->fSigned = false;
             break;
 
         case AFMT_S16_LE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = true;
             break;
 
         case AFMT_U16_LE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = false;
             break;
 
        case AFMT_S16_BE:
-            pProps->cBits   = 16;
+           pProps->cBytes  = 2;
             pProps->fSigned = true;
 #ifdef RT_LITTLE_ENDIAN
@@ -186,5 +186,5 @@
 
         case AFMT_U16_BE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = false;
 #ifdef RT_LITTLE_ENDIAN
@@ -239,11 +239,11 @@
 
         int iFormat;
-        switch (pOSSReq->Props.cBits)
-        {
-            case 8:
+        switch (pOSSReq->Props.cBytes)
+        {
+            case 1:
                 iFormat = pOSSReq->Props.fSigned ? AFMT_S8 : AFMT_U8;
                 break;
 
-            case 16:
+            case 2:
                 iFormat = pOSSReq->Props.fSigned ? AFMT_S16_LE : AFMT_U16_LE;
                 break;
@@ -319,5 +319,5 @@
             pOSSAcq->Props.cChannels = cChannels;
             pOSSAcq->Props.uHz       = freq;
-            pOSSAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pOSSAcq->Props.cBits, pOSSAcq->Props.cChannels);
+            pOSSAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pOSSAcq->Props.cBytes, pOSSAcq->Props.cChannels);
 
             pOSSAcq->cFragments      = abinfo.fragstotal;
Index: /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 73529)
@@ -200,12 +200,12 @@
 static pa_sample_format_t paAudioPropsToPulse(PPDMAUDIOPCMPROPS pProps)
 {
-    switch (pProps->cBits)
-    {
-        case 8:
+    switch (pProps->cBytes)
+    {
+        case 1:
             if (!pProps->fSigned)
                 return PA_SAMPLE_U8;
             break;
 
-        case 16:
+        case 2:
             if (pProps->fSigned)
                 return PA_SAMPLE_S16LE;
@@ -213,5 +213,5 @@
 
 #ifdef PA_SAMPLE_S32LE
-        case 32:
+        case 4:
             if (pProps->fSigned)
                 return PA_SAMPLE_S32LE;
@@ -223,5 +223,5 @@
     }
 
-    AssertMsgFailed(("%RU8%s not supported\n", pProps->cBits, pProps->fSigned ? "S" : "U"));
+    AssertMsgFailed(("%RU8%s not supported\n", pProps->cBytes, pProps->fSigned ? "S" : "U"));
     return PA_SAMPLE_INVALID;
 }
@@ -233,15 +233,15 @@
     {
         case PA_SAMPLE_U8:
-            pProps->cBits   = 8;
+            pProps->cBytes  = 1;
             pProps->fSigned = false;
             break;
 
         case PA_SAMPLE_S16LE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = true;
             break;
 
         case PA_SAMPLE_S16BE:
-            pProps->cBits   = 16;
+            pProps->cBytes  = 2;
             pProps->fSigned = true;
             /** @todo Handle Endianess. */
@@ -250,5 +250,5 @@
 #ifdef PA_SAMPLE_S32LE
         case PA_SAMPLE_S32LE:
-            pProps->cBits   = 32;
+            pProps->cBytes  = 4;
             pProps->fSigned = true;
             break;
@@ -257,5 +257,5 @@
 #ifdef PA_SAMPLE_S32BE
         case PA_SAMPLE_S32BE:
-            pProps->cBits   = 32;
+            pProps->cBytes  = 4;
             pProps->fSigned = true;
             /** @todo Handle Endianess. */
@@ -769,5 +769,5 @@
     pCfgAcq->Props.uHz       = pStreamPA->SampleSpec.rate;
     pCfgAcq->Props.cChannels = pStreamPA->SampleSpec.channels;
-    pCfgAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBits, pCfgAcq->Props.cChannels);
+    pCfgAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBytes, pCfgAcq->Props.cChannels);
 
     uint32_t cbBuf = RT_MIN(pStreamPA->BufAttr.tlength * 2,
Index: /trunk/src/VBox/Devices/Audio/HDAStream.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStream.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/HDAStream.cpp	(revision 73529)
@@ -245,7 +245,7 @@
 
     /* Set the stream's frame size. */
-    pStream->State.cbFrameSize = pCfg->Props.cChannels * (pCfg->Props.cBits / 8 /* To bytes */);
-    LogFunc(("[SD%RU8] cChannels=%RU8, cBits=%RU8 -> cbFrameSize=%RU32\n",
-             pStream->u8SD, pCfg->Props.cChannels, pCfg->Props.cBits, pStream->State.cbFrameSize));
+    pStream->State.cbFrameSize = pCfg->Props.cChannels * pCfg->Props.cBytes;
+    LogFunc(("[SD%RU8] cChannels=%RU8, cBytes=%RU8 -> cbFrameSize=%RU32\n",
+             pStream->u8SD, pCfg->Props.cChannels, pCfg->Props.cBytes, pStream->State.cbFrameSize));
     Assert(pStream->State.cbFrameSize); /* Frame size must not be 0. */
 
Index: /trunk/src/VBox/Devices/Audio/HDAStreamMap.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStreamMap.cpp	(revision 73528)
+++ /trunk/src/VBox/Devices/Audio/HDAStreamMap.cpp	(revision 73529)
@@ -58,5 +58,5 @@
     int rc = VINF_SUCCESS;
 
-    Assert(RT_IS_POWER_OF_TWO(pProps->cBits));
+    Assert(RT_IS_POWER_OF_TWO(pProps->cBytes * 8));
 
     /** @todo We assume all channels in a stream have the same format. */
@@ -65,5 +65,5 @@
     {
         pChan->uChannel = i;
-        pChan->cbStep   = (pProps->cBits / 8);
+        pChan->cbStep   = pProps->cBytes;
         pChan->cbFrame  = pChan->cbStep * pProps->cChannels;
         pChan->cbFirst  = i * pChan->cbStep;
Index: /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp	(revision 73528)
+++ /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp	(revision 73529)
@@ -87,8 +87,8 @@
     pCfgAcq->Props.uHz         = 22050; /* The VRDP server's internal frequency. */
     pCfgAcq->Props.cChannels   = 2;
-    pCfgAcq->Props.cBits       = 16;
+    pCfgAcq->Props.cBytes      = 2; /* 16 bit. */
     pCfgAcq->Props.fSigned     = true;
     pCfgAcq->Props.fSwapEndian = false;
-    pCfgAcq->Props.cShift      = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBits, pCfgAcq->Props.cChannels);
+    pCfgAcq->Props.cShift      = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBytes, pCfgAcq->Props.cChannels);
 
     /* According to the VRDP docs, the VRDP server stores audio in 200ms chunks. */
@@ -133,7 +133,7 @@
         pCfgAcq->Props.uHz       = 22050; /* The VRDP server's internal frequency. */
         pCfgAcq->Props.cChannels = 2;
-        pCfgAcq->Props.cBits     = 16;
+        pCfgAcq->Props.cBytes    = 2; /* 16 bit. */
         pCfgAcq->Props.fSigned   = true;
-        pCfgAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBits, pCfgAcq->Props.cChannels);
+        pCfgAcq->Props.cShift    = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBytes, pCfgAcq->Props.cChannels);
 
         /* According to the VRDP docs, the VRDP server stores audio in 200ms chunks. */
@@ -174,5 +174,5 @@
                                                                DrvAudioHlpMilliToFrames(200 /* ms */, &pStreamVRDE->pCfg->Props),
                                                                pStreamVRDE->pCfg->Props.uHz, pStreamVRDE->pCfg->Props.cChannels,
-                                                               pStreamVRDE->pCfg->Props.cBits);
+                                                               pStreamVRDE->pCfg->Props.cBytes * 8 /* Bit */);
             if (rc == VERR_NOT_SUPPORTED)
             {
@@ -291,5 +291,5 @@
     VRDEAUDIOFORMAT format = VRDE_AUDIO_FMT_MAKE(pProps->uHz,
                                                  pProps->cChannels,
-                                                 pProps->cBits,
+                                                 pProps->cBytes * 8 /* Bit */,
                                                  pProps->fSigned);
 
Index: /trunk/src/VBox/Main/src-client/DrvAudioVideoRec.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DrvAudioVideoRec.cpp	(revision 73528)
+++ /trunk/src/VBox/Main/src-client/DrvAudioVideoRec.cpp	(revision 73529)
@@ -521,5 +521,5 @@
              * a specific sampling rate Opus is optimized for. */
             pCfgAcq->Props.uHz         = pSink->Codec.Parms.uHz;
-            pCfgAcq->Props.cShift      = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBits, pCfgAcq->Props.cChannels);
+            pCfgAcq->Props.cShift      = PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(pCfgAcq->Props.cBytes, pCfgAcq->Props.cChannels);
 
             /* Every Opus frame marks a period for now. Optimize this later. */
