Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 73559)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 73560)
@@ -796,4 +796,12 @@
     };
 
+    /** Video-capture modes. */
+    enum UIIndicatorStateVideoCaptureMode
+    {
+        UIIndicatorStateVideoCaptureMode_None   = RT_BIT(0),
+        UIIndicatorStateVideoCaptureMode_Video  = RT_BIT(1),
+        UIIndicatorStateVideoCaptureMode_Audio  = RT_BIT(2)
+    };
+
 public:
 
@@ -803,4 +811,5 @@
         , m_pAnimation(0)
         , m_dRotationAngle(0)
+        , m_eCaptureMode(UIIndicatorStateVideoCaptureMode_None)
     {
         /* Assign state-icons: */
@@ -880,4 +889,6 @@
             setState(UIIndicatorStateVideoCapture_Paused);
 
+        updateCaptureMode();
+
         /* Prepare tool-tip: */
         QString strFullData;
@@ -893,6 +904,15 @@
             case UIIndicatorStateVideoCapture_Paused:
             {
+                QString strToolTip;
+                if ( m_eCaptureMode & UIIndicatorStateVideoCaptureMode_Audio &&
+                    m_eCaptureMode & UIIndicatorStateVideoCaptureMode_Video)
+                    strToolTip = "Video/audio capture file";
+                else if (m_eCaptureMode & UIIndicatorStateVideoCaptureMode_Audio)
+                    strToolTip = "Audio capture file";
+                else if (m_eCaptureMode & UIIndicatorStateVideoCaptureMode_Video)
+                    strToolTip = "Video capture file";
+
                 strFullData += s_strTableRow2
-                    .arg(QApplication::translate("UIIndicatorsPool", "Video capture file", "Video capture tooltip"))
+                    .arg(QApplication::translate("UIIndicatorsPool", strToolTip.toLatin1().constData(), "Video capture tooltip"))
                     .arg(machine.GetVideoCaptureFile());
                 break;
@@ -915,8 +935,35 @@
     void setRotationAngle(double dRotationAngle) { m_dRotationAngle = dRotationAngle; update(); }
 
+    /* Parses CMachine::videoCaptureOptions and updates m_eCaptureMode accordingly. */
+    void updateCaptureMode()
+    {
+        m_eCaptureMode = UIIndicatorStateVideoCaptureMode_None;
+
+        /* Get machine: */
+        if (!m_pSession)
+            return;
+        const CMachine machine = m_pSession->machine();
+        if (machine.isNull())
+            return;
+        QStringList strOptionsPairList = machine.GetVideoCaptureOptions().split(",", QString::SkipEmptyParts);
+
+        for (int i = 0; i < strOptionsPairList.size(); ++i)
+        {
+            if (strOptionsPairList.at(i).contains("vc_enabled", Qt::CaseInsensitive) &&
+                strOptionsPairList.at(i).contains("true", Qt::CaseInsensitive))
+                m_eCaptureMode = (UIIndicatorStateVideoCaptureMode)((int)m_eCaptureMode | (int)UIIndicatorStateVideoCaptureMode_Video);
+
+            if (strOptionsPairList.at(i).contains("ac_enabled", Qt::CaseInsensitive) &&
+                strOptionsPairList.at(i).contains("true", Qt::CaseInsensitive))
+                m_eCaptureMode = (UIIndicatorStateVideoCaptureMode)((int)m_eCaptureMode | (int)UIIndicatorStateVideoCaptureMode_Audio);
+        }
+    }
+
     /** Holds the rotation animation instance. */
     UIAnimationLoop *m_pAnimation;
     /** Holds current rotation angle. */
     double m_dRotationAngle;
+
+    UIIndicatorStateVideoCaptureMode m_eCaptureMode;
 };
 
@@ -1504,3 +1551,2 @@
 
 #include "UIIndicatorsPool.moc"
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 73559)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 73560)
@@ -1592,4 +1592,10 @@
                     fSuccess = m_machine.isOk();
                 }
+                /* Save video capture options: */
+                if (fSuccess && newDisplayData.m_strVideoCaptureOptions != oldDisplayData.m_strVideoCaptureOptions)
+                {
+                    m_machine.SetVideoCaptureOptions(newDisplayData.m_strVideoCaptureOptions);
+                    fSuccess = m_machine.isOk();
+                }
                 /* Save whether video capture is enabled: */
                 if (fSuccess && newDisplayData.m_fVideoCaptureEnabled != oldDisplayData.m_fVideoCaptureEnabled)
@@ -1679,4 +1685,6 @@
     bool fVideoCapture = enmCaptureMode == UIDataSettingsMachineDisplay::CaptureMode_VideoOnly ||
         enmCaptureMode == UIDataSettingsMachineDisplay::CaptureMode_VideoAudio;
+    bool fAudioCapture = enmCaptureMode == UIDataSettingsMachineDisplay::CaptureMode_AudioOnly ||
+        enmCaptureMode == UIDataSettingsMachineDisplay::CaptureMode_VideoAudio;
 
     m_pLabelVideoCaptureSize->setEnabled(fIsVideoCaptureOptionsEnabled && fVideoCapture);
@@ -1694,4 +1702,7 @@
     m_pScrollerVideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fVideoCapture);
 
+    m_pAudioCaptureQualityLabel->setEnabled(fIsVideoCaptureOptionsEnabled && fAudioCapture);
+    m_pContainerSliderAudioCaptureQuality->setEnabled(fIsVideoCaptureOptionsEnabled && fAudioCapture);
+
     m_pLabelVideoCaptureScreens->setEnabled(fIsVideoCaptureScreenOptionEnabled && fVideoCapture);
     m_pLabelVideoCaptureSizeHint->setEnabled(fIsVideoCaptureScreenOptionEnabled && fVideoCapture);
