Index: trunk/src/VBox/Main/src-server/RecordingScreenSettingsImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-server/RecordingScreenSettingsImpl.cpp	(revision 96137)
+++ trunk/src/VBox/Main/src-server/RecordingScreenSettingsImpl.cpp	(revision 96141)
@@ -560,5 +560,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    *aCodec = m->bd->Audio.enmAudioCodec;
+    *aCodec = m->bd->Audio.enmCodec;
 
     return S_OK;
@@ -578,8 +578,8 @@
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    if (m->bd->Audio.enmAudioCodec != aCodec)
-    {
-        m->bd.backup();
-        m->bd->Audio.enmAudioCodec = aCodec;
+    if (m->bd->Audio.enmCodec != aCodec)
+    {
+        m->bd.backup();
+        m->bd->Audio.enmCodec = aCodec;
 
         alock.release();
@@ -624,4 +624,32 @@
 
     return S_OK;
+}
+
+HRESULT RecordingScreenSettings::getAudioRateControlMode(RecordingRateControlMode_T *aMode)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    *aMode = RecordingRateControlMode_VBR; /** @todo Implement CBR. */
+
+    return S_OK;
+}
+
+HRESULT RecordingScreenSettings::setAudioRateControlMode(RecordingRateControlMode_T aMode)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    if (!m->pParent->i_canChangeSettings())
+        return setError(E_INVALIDARG, tr("Cannot change audio rate control mode while recording is enabled"));
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    /** @todo Implement this. */
+    RT_NOREF(aMode);
+
+    return E_NOTIMPL;
 }
 
@@ -909,17 +937,17 @@
 }
 
-HRESULT RecordingScreenSettings::getVideoRateControlMode(RecordingVideoRateControlMode_T *aMode)
-{
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    *aMode = RecordingVideoRateControlMode_CBR; /** @todo Implement VBR. */
-
-    return S_OK;
-}
-
-HRESULT RecordingScreenSettings::setVideoRateControlMode(RecordingVideoRateControlMode_T aMode)
+HRESULT RecordingScreenSettings::getVideoRateControlMode(RecordingRateControlMode_T *aMode)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    *aMode = RecordingRateControlMode_VBR; /** @todo Implement CBR. */
+
+    return S_OK;
+}
+
+HRESULT RecordingScreenSettings::setVideoRateControlMode(RecordingRateControlMode_T aMode)
 {
     AutoCaller autoCaller(this);
@@ -972,23 +1000,23 @@
 }
 
-HRESULT RecordingScreenSettings::getVideoScalingMethod(RecordingVideoScalingMethod_T *aMode)
-{
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    *aMode = RecordingVideoScalingMethod_None; /** @todo Implement this. */
-
-    return S_OK;
-}
-
-HRESULT RecordingScreenSettings::setVideoScalingMethod(RecordingVideoScalingMethod_T aMode)
-{
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    if (!m->pParent->i_canChangeSettings())
-        return setError(E_INVALIDARG, tr("Cannot change video rate scaling method while recording is enabled"));
+HRESULT RecordingScreenSettings::getVideoScalingMode(RecordingVideoScalingMode_T *aMode)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    *aMode = RecordingVideoScalingMode_None; /** @todo Implement this. */
+
+    return S_OK;
+}
+
+HRESULT RecordingScreenSettings::setVideoScalingMode(RecordingVideoScalingMode_T aMode)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    if (!m->pParent->i_canChangeSettings())
+        return setError(E_INVALIDARG, tr("Cannot change video scaling mode while recording is enabled"));
 
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
Index: trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp	(revision 96137)
+++ trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp	(revision 96141)
@@ -1601,5 +1601,10 @@
         RecordingAudioCodec_WavPCM,
 #endif
+#ifdef VBOX_WITH_LIBOPUS
         RecordingAudioCodec_Opus,
+#endif
+#ifdef VBOX_WITH_LIBVORBIS
+        RecordingAudioCodec_OggVorbis,
+#endif
     };
     aSupportedRecordingAudioCodecs.assign(aRecordingAudioCodecs,
@@ -1623,28 +1628,44 @@
 }
 
-HRESULT SystemProperties::getSupportedRecordingVSMethods(std::vector<RecordingVideoScalingMethod_T> &aSupportedRecordingVideoScalingMethods)
-{
-    static const RecordingVideoScalingMethod_T aRecordingVideoScalingMethods[] =
-    {
-        RecordingVideoScalingMethod_None,
+HRESULT SystemProperties::getSupportedRecordingVSModes(std::vector<RecordingVideoScalingMode_T> &aSupportedRecordingVideoScalingModes)
+{
+    static const RecordingVideoScalingMode_T aRecordingVideoScalingModes[] =
+    {
+        RecordingVideoScalingMode_None,
 #ifdef DEBUG
-        RecordingVideoScalingMethod_NearestNeighbor,
-        RecordingVideoScalingMethod_Bilinear,
-        RecordingVideoScalingMethod_Bicubic,
-#endif
-    };
-    aSupportedRecordingVideoScalingMethods.assign(aRecordingVideoScalingMethods,
-                                                  aRecordingVideoScalingMethods + RT_ELEMENTS(aRecordingVideoScalingMethods));
-    return S_OK;
-}
-
-HRESULT SystemProperties::getSupportedRecordingVRCModes(std::vector<RecordingVideoRateControlMode_T> &aSupportedRecordingVideoRateControlModes)
-{
-    static const RecordingVideoRateControlMode_T aRecordingVideoRateControlModes[] =
-    {
-        RecordingVideoRateControlMode_CBR,
+        RecordingVideoScalingMode_NearestNeighbor,
+        RecordingVideoScalingMode_Bilinear,
+        RecordingVideoScalingMode_Bicubic,
+#endif
+    };
+    aSupportedRecordingVideoScalingModes.assign(aRecordingVideoScalingModes,
+                                                aRecordingVideoScalingModes + RT_ELEMENTS(aRecordingVideoScalingModes));
+    return S_OK;
+}
+
+HRESULT SystemProperties::getSupportedRecordingARCModes(std::vector<RecordingRateControlMode_T> &aSupportedRecordingAudioRateControlModes)
+{
+    static const RecordingRateControlMode_T aRecordingAudioRateControlModes[] =
+    {
 #ifdef DEBUG
-        RecordingVideoRateControlMode_VBR,
-#endif
+        RecordingRateControlMode_ABR,
+        RecordingRateControlMode_CBR,
+#endif
+        RecordingRateControlMode_VBR
+    };
+    aSupportedRecordingAudioRateControlModes.assign(aRecordingAudioRateControlModes,
+                                                    aRecordingAudioRateControlModes + RT_ELEMENTS(aRecordingAudioRateControlModes));
+    return S_OK;
+}
+
+HRESULT SystemProperties::getSupportedRecordingVRCModes(std::vector<RecordingRateControlMode_T> &aSupportedRecordingVideoRateControlModes)
+{
+    static const RecordingRateControlMode_T aRecordingVideoRateControlModes[] =
+    {
+#ifdef DEBUG
+        RecordingRateControlMode_ABR,
+        RecordingRateControlMode_CBR,
+#endif
+        RecordingRateControlMode_VBR
     };
     aSupportedRecordingVideoRateControlModes.assign(aRecordingVideoRateControlModes,
