Changeset 46667 in vbox
- Timestamp:
- Jun 19, 2013 3:30:23 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
-
include/VBox/settings.h (modified) (1 diff)
-
src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp (modified) (2 diffs)
-
src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp (modified) (1 diff)
-
src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp (modified) (3 diffs)
-
src/VBox/Main/idl/VirtualBox.xidl (modified) (9 diffs)
-
src/VBox/Main/include/MachineImpl.h (modified) (3 diffs)
-
src/VBox/Main/src-client/DisplayImpl.cpp (modified) (3 diffs)
-
src/VBox/Main/src-client/VideoRec.cpp (modified) (2 diffs)
-
src/VBox/Main/src-server/MachineImpl.cpp (modified) (10 diffs)
-
src/VBox/Main/xml/Settings.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/settings.h
r46367 r46667 822 822 fAccelerate2DVideo; // requires settings version 1.8 (VirtualBox 3.1) 823 823 824 uint32_t ulVideoCaptureHorzRes; // requires settings version 1.1 2(VirtualBox 4.3)825 uint32_t ulVideoCaptureVertRes; // requires settings version 1.1 2(VirtualBox 4.3)826 uint32_t ulVideoCaptureRate; // requires settings version 1.1 2(VirtualBox 4.3)827 uint32_t ulVideoCaptureF ps; // requires settings version 1.12(VirtualBox 4.3)828 bool fVideoCaptureEnabled; // requires settings version 1.1 2(VirtualBox 4.3)829 uint64_t u64VideoCaptureScreens; // requires settings version 1.1 2(VirtualBox 4.3)830 com::Utf8Str strVideoCaptureFile; // requires settings version 1.1 2(VirtualBox 4.3)824 uint32_t ulVideoCaptureHorzRes; // requires settings version 1.14 (VirtualBox 4.3) 825 uint32_t ulVideoCaptureVertRes; // requires settings version 1.14 (VirtualBox 4.3) 826 uint32_t ulVideoCaptureRate; // requires settings version 1.14 (VirtualBox 4.3) 827 uint32_t ulVideoCaptureFPS; // requires settings version 1.14 (VirtualBox 4.3) 828 bool fVideoCaptureEnabled; // requires settings version 1.14 (VirtualBox 4.3) 829 uint64_t u64VideoCaptureScreens; // requires settings version 1.14 (VirtualBox 4.3) 830 com::Utf8Str strVideoCaptureFile; // requires settings version 1.14 (VirtualBox 4.3) 831 831 832 832 FirmwareType_T firmwareType; // requires settings version 1.9 (VirtualBox 3.1) -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
r46123 r46667 2315 2315 CHECK_ERROR_RET(machine, COMGETTER(VideoCaptureRate)(&Rate), rc); 2316 2316 ULONG Fps; 2317 CHECK_ERROR_RET(machine, COMGETTER(VideoCaptureF ps)(&Fps), rc);2317 CHECK_ERROR_RET(machine, COMGETTER(VideoCaptureFPS)(&Fps), rc); 2318 2318 Bstr File; 2319 2319 CHECK_ERROR_RET(machine, COMGETTER(VideoCaptureFile)(File.asOutParam()), rc); 2320 2320 if (details == VMINFO_MACHINEREADABLE) 2321 2321 { 2322 RTPrintf(" VideoCaptureEnabled=\"%s\"\n", bActive ? "on" : "off");2323 RTPrintf(" VideoCaptureScreens=");2322 RTPrintf("vcpenabled=\"%s\"\n", bActive ? "on" : "off"); 2323 RTPrintf("vcpscreens="); 2324 2324 bool fComma = false; 2325 2325 for (unsigned i = 0; i < screens.size(); i++) … … 2330 2330 } 2331 2331 RTPrintf("\n"); 2332 RTPrintf(" VideoCaptureWidth=%u\n", (unsigned)Width);2333 RTPrintf(" VideoCaptureFile=\"%ls\"\n", File.raw());2334 RTPrintf(" VideoCaptureHeight=%u\n", (unsigned)Height);2335 RTPrintf(" VideoCaptureRate=%u\n", (unsigned)Rate);2336 RTPrintf(" VideoCaptureFps=%u\n", (unsigned)Fps);2332 RTPrintf("vcpfile=\"%ls\"\n", File.raw()); 2333 RTPrintf("vcpwidth=%u\n", (unsigned)Width); 2334 RTPrintf("vcpheight=%u\n", (unsigned)Height); 2335 RTPrintf("vcprate=%u\n", (unsigned)Rate); 2336 RTPrintf("vcpfps=%u\n", (unsigned)Fps); 2337 2337 } 2338 2338 else -
trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
r46658 r46667 2517 2517 case MODIFYVM_VCP_FPS: 2518 2518 { 2519 CHECK_ERROR(machine, COMSETTER(VideoCaptureF ps)(ValueUnion.u32));2519 CHECK_ERROR(machine, COMSETTER(VideoCaptureFPS)(ValueUnion.u32)); 2520 2520 break; 2521 2521 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
r46622 r46667 119 119 displayData.m_iVideoCaptureFrameWidth = m_machine.GetVideoCaptureWidth(); 120 120 displayData.m_iVideoCaptureFrameHeight = m_machine.GetVideoCaptureHeight(); 121 displayData.m_iVideoCaptureFrameRate = m_machine.GetVideoCaptureF ps();121 displayData.m_iVideoCaptureFrameRate = m_machine.GetVideoCaptureFPS(); 122 122 displayData.m_iVideoCaptureBitRate = m_machine.GetVideoCaptureRate(); 123 123 displayData.m_screens = m_machine.GetVideoCaptureScreens(); … … 275 275 m_machine.SetVideoCaptureWidth(displayData.m_iVideoCaptureFrameWidth); 276 276 m_machine.SetVideoCaptureHeight(displayData.m_iVideoCaptureFrameHeight); 277 m_machine.SetVideoCaptureF ps(displayData.m_iVideoCaptureFrameRate);277 m_machine.SetVideoCaptureFPS(displayData.m_iVideoCaptureFrameRate); 278 278 m_machine.SetVideoCaptureRate(displayData.m_iVideoCaptureBitRate); 279 279 m_machine.SetVideoCaptureScreens(displayData.m_screens); … … 290 290 m_machine.SetVideoCaptureWidth(displayData.m_iVideoCaptureFrameWidth); 291 291 m_machine.SetVideoCaptureHeight(displayData.m_iVideoCaptureFrameHeight); 292 m_machine.SetVideoCaptureF ps(displayData.m_iVideoCaptureFrameRate);292 m_machine.SetVideoCaptureFPS(displayData.m_iVideoCaptureFrameRate); 293 293 m_machine.SetVideoCaptureRate(displayData.m_iVideoCaptureBitRate); 294 294 m_machine.SetVideoCaptureScreens(displayData.m_screens); -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r46524 r46667 1380 1380 uuid="03DFD6F7-1B78-48A3-8345-C785281E9523" 1381 1381 wsmap="managed"> 1382 <attribute name=" NetworkName" type="wstring">1382 <attribute name="networkName" type="wstring"> 1383 1383 <desc> 1384 1384 TBD: the idea, technically we can start any number of the NAT networks, … … 4248 4248 </attribute> 4249 4249 4250 <attribute name=" VideoCaptureEnabled" type="boolean" default="false">4250 <attribute name="videoCaptureEnabled" type="boolean" default="false"> 4251 4251 <desc> 4252 4252 This setting determines whether VirtualBox uses video recording to … … 4254 4254 </attribute> 4255 4255 4256 <attribute name=" VideoCaptureScreens" type="boolean" safearray="yes">4256 <attribute name="videoCaptureScreens" type="boolean" safearray="yes"> 4257 4257 <desc> 4258 4258 This setting determines for which screens video recording is … … 4260 4260 </attribute> 4261 4261 4262 <attribute name=" VideoCaptureFile" type="wstring" default="Test.webm">4262 <attribute name="videoCaptureFile" type="wstring"> 4263 4263 <desc> 4264 4264 This setting determines the filename VirtualBox uses to save 4265 4265 the recorded content. This setting cannot be changed while video 4266 capturing is enabled. 4267 </desc> 4268 </attribute> 4269 4270 <attribute name="VideoCaptureWidth" type="unsigned long" default="640"> 4266 capturing is enabled. 4267 <note> 4268 When setting this attribute, the specified path has to be 4269 absolute (full path). When reading this attribute, a full path is 4270 always returned. 4271 </note> 4272 </desc> 4273 </attribute> 4274 4275 <attribute name="videoCaptureWidth" type="unsigned long" default="640"> 4271 4276 <desc> 4272 4277 This setting determines the horizontal resolution of the recorded … … 4276 4281 </attribute> 4277 4282 4278 <attribute name=" VideoCaptureHeight" type="unsigned long" default="480">4283 <attribute name="videoCaptureHeight" type="unsigned long" default="480"> 4279 4284 <desc> 4280 4285 This setting determines the vertical resolution of the recorded … … 4284 4289 </attribute> 4285 4290 4286 <attribute name=" VideoCaptureRate" type="unsigned long" default="512">4291 <attribute name="videoCaptureRate" type="unsigned long" default="512"> 4287 4292 <desc> 4288 4293 This setting determines the bitrate in kilobits per second. … … 4293 4298 </attribute> 4294 4299 4295 <attribute name=" VideoCaptureFps" type="unsigned long" default="25">4300 <attribute name="videoCaptureFPS" type="unsigned long" default="25"> 4296 4301 <desc> 4297 4302 This setting determines the maximum number of frames per second. 4298 4303 Frames with a higher frequency will be skipped. Reducing this 4299 value incre ses the number of skipped frames butreduces the4304 value increases the number of skipped frames and reduces the 4300 4305 file size. This setting cannot be changed while video capturing 4301 4306 is enabled. … … 12749 12754 <desc> 12750 12755 Returns the storage format variant information for this medium 12751 as an a aray of the flags described at <link to="MediumVariant" />.12756 as an array of the flags described at <link to="MediumVariant" />. 12752 12757 Before <link to="#refreshState"/> is called this method returns 12753 12758 an undefined value. … … 20942 20947 > 20943 20948 <!-- network name is common setting for all event types --> 20944 <attribute name=" NetworkName" type="wstring" readonly="yes"/>20949 <attribute name="networkName" type="wstring" readonly="yes"/> 20945 20950 </interface> 20946 20951 <!-- base class for start/stop events --> -
trunk/src/VBox/Main/include/MachineImpl.h
r46465 r46667 262 262 ULONG mVideoCaptureHeight; 263 263 ULONG mVideoCaptureRate; 264 ULONG mVideoCaptureF ps;265 BstrmVideoCaptureFile;264 ULONG mVideoCaptureFPS; 265 Utf8Str mVideoCaptureFile; 266 266 BOOL mVideoCaptureEnabled; 267 267 BOOL maVideoCaptureScreens[SchemaDefs::MaxGuestMonitors]; … … 448 448 STDMETHOD(COMGETTER(VideoCaptureRate))(ULONG *aRate); 449 449 STDMETHOD(COMSETTER(VideoCaptureRate))(ULONG aRate); 450 STDMETHOD(COMGETTER(VideoCaptureF ps))(ULONG *aFps);451 STDMETHOD(COMSETTER(VideoCaptureF ps))(ULONG aFps);450 STDMETHOD(COMGETTER(VideoCaptureFPS))(ULONG *aFPS); 451 STDMETHOD(COMSETTER(VideoCaptureFPS))(ULONG aFPS); 452 452 STDMETHOD(COMGETTER(BIOSSettings))(IBIOSSettings **biosSettings); 453 453 STDMETHOD(COMGETTER(SnapshotFolder))(BSTR *aSavedStateFolder); … … 753 753 void composeSavedStateFilename(Utf8Str &strStateFilePath); 754 754 755 void getDefaultVideoCaptureFile(Utf8Str &strFile); 756 755 757 HRESULT launchVMProcess(IInternalSessionControl *aControl, 756 758 const Utf8Str &strType, -
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r46549 r46667 31 31 #include <iprt/thread.h> 32 32 #include <iprt/asm.h> 33 #include <iprt/time.h> 33 34 #include <iprt/cpp/utils.h> 34 35 … … 2716 2717 hrc = pMachine->COMGETTER(VideoCaptureRate)(&ulRate); 2717 2718 AssertComRCReturn(hrc, VERR_COM_UNEXPECTED); 2718 ULONG ulF ps;2719 hrc = pMachine->COMGETTER(VideoCaptureF ps)(&ulFps);2719 ULONG ulFPS; 2720 hrc = pMachine->COMGETTER(VideoCaptureFPS)(&ulFPS); 2720 2721 AssertComRCReturn(hrc, VERR_COM_UNEXPECTED); 2721 2722 BSTR strFile; … … 2742 2743 } 2743 2744 if (RT_SUCCESS(rc)) 2745 { 2744 2746 rc = VideoRecStrmInit(mpVideoRecCtx, uScreen, 2745 pszName, ulWidth, ulHeight, ulRate, ulFps); 2747 pszName, ulWidth, ulHeight, ulRate, ulFPS); 2748 if (rc == VERR_ALREADY_EXISTS) 2749 { 2750 RTStrFree(pszName); 2751 pszName = NULL; 2752 2753 static RTTIMESPEC ts = { 0 }; 2754 if (!RTTimeSpecGetNano(&ts)) 2755 RTTimeNow(&ts); 2756 RTTIME time; 2757 RTTimeExplode(&time, &ts); 2758 if (mcMonitors > 1) 2759 rc = RTStrAPrintf(&pszName, "%s-%04d-%02u-%02uT%02u-%02u-%02u-%09uZ-%u%s", 2760 pszAbsPath, time.i32Year, time.u8Month, time.u8MonthDay, 2761 time.u8Hour, time.u8Minute, time.u8Second, time.u32Nanosecond, 2762 uScreen+1, pszExt); 2763 else 2764 rc = RTStrAPrintf(&pszName, "%s-%04d-%02u-%02uT%02u-%02u-%02u-%09uZ%s", 2765 pszAbsPath, time.i32Year, time.u8Month, time.u8MonthDay, 2766 time.u8Hour, time.u8Minute, time.u8Second, time.u32Nanosecond, 2767 pszExt); 2768 if (RT_SUCCESS(rc)) 2769 rc = VideoRecStrmInit(mpVideoRecCtx, uScreen, 2770 pszName, ulWidth, ulHeight, ulRate, ulFPS); 2771 } 2772 } 2773 2746 2774 if (RT_SUCCESS(rc)) 2747 2775 LogRel(("WebM/VP8 video recording screen #%u with %ux%u @ %u kbps, %u fps to '%s' enabled.\n", 2748 uScreen, ulWidth, ulHeight, ulRate, ulF ps, pszName));2776 uScreen, ulWidth, ulHeight, ulRate, ulFPS, pszName)); 2749 2777 else 2750 2778 LogRel(("Failed to initialize video recording context #%u (%Rrc)!\n", uScreen, rc)); -
trunk/src/VBox/Main/src-client/VideoRec.cpp
r46578 r46667 474 474 AssertReturn(pStrm->pu8RgbBuf, VERR_NO_MEMORY); 475 475 476 /* Play safe: the file must not exist, overwriting is potentially 477 * hazardous as nothing prevents the user from picking a file name of some 478 * other important file, causing unintentional data loss. */ 476 479 int rc = RTFileOpen(&pStrm->Ebml.file, pszFile, 477 RTFILE_O_CREATE _REPLACE| RTFILE_O_WRITE | RTFILE_O_DENY_NONE);480 RTFILE_O_CREATE | RTFILE_O_WRITE | RTFILE_O_DENY_NONE); 478 481 if (RT_FAILURE(rc)) 479 482 { 480 Log Flow(("Failed to open the video capture output File (%Rrc)\n", rc));483 LogRel(("Failed to create the video capture output file \"%s\" (%Rrc)\n", pszFile, rc)); 481 484 return rc; 482 485 } … … 500 503 /* disable multithreading */ 501 504 pStrm->VpxConfig.g_threads = 0; 502 // pStrm->VpxConfig.kf_max_dist = 1; 505 503 506 pStrm->uDelay = 1000 / uFps; 504 507 -
trunk/src/VBox/Main/src-server/MachineImpl.cpp
r46532 r46667 168 168 mAccelerate2DVideoEnabled = false; 169 169 mMonitorCount = 1; 170 mVideoCaptureFile = "Test.webm";171 170 mVideoCaptureWidth = 1024; 172 171 mVideoCaptureHeight = 768; 173 172 mVideoCaptureRate = 512; 174 mVideoCaptureF ps= 25;173 mVideoCaptureFPS = 25; 175 174 mVideoCaptureEnabled = false; 176 175 for (unsigned i = 0; i < RT_ELEMENTS(maVideoCaptureScreens); i++) … … 1795 1794 1796 1795 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 1797 mHWData->mVideoCaptureFile.cloneTo(apFile); 1796 if (mHWData->mVideoCaptureFile.isEmpty()) 1797 { 1798 Utf8Str defaultFile; 1799 getDefaultVideoCaptureFile(defaultFile); 1800 defaultFile.cloneTo(apFile); 1801 } 1802 else 1803 mHWData->mVideoCaptureFile.cloneTo(apFile); 1798 1804 return S_OK; 1799 1805 } … … 1811 1817 return setError(E_INVALIDARG, tr("Cannot change parameters while capturing is enabled")); 1812 1818 1813 if (strFile.isEmpty()) 1814 strFile = "VideoCap.webm"; 1819 if (!RTPathStartsWithRoot(strFile.c_str())) 1820 return setError(E_INVALIDARG, tr("Video capture file name '%s' is not absolute"), strFile.c_str()); 1821 1822 if (!strFile.isEmpty()) 1823 { 1824 Utf8Str defaultFile; 1825 getDefaultVideoCaptureFile(defaultFile); 1826 if (!RTPathCompare(strFile.c_str(), defaultFile.c_str())) 1827 strFile.setNull(); 1828 } 1815 1829 1816 1830 setModified(IsModified_MachineData); … … 1905 1919 } 1906 1920 1907 STDMETHODIMP Machine::COMGETTER(VideoCaptureF ps)(ULONG *aFps)1921 STDMETHODIMP Machine::COMGETTER(VideoCaptureFPS)(ULONG *aFPS) 1908 1922 { 1909 1923 AutoCaller autoCaller(this); … … 1911 1925 1912 1926 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 1913 *aF ps = mHWData->mVideoCaptureFps;1914 return S_OK; 1915 } 1916 1917 STDMETHODIMP Machine::COMSETTER(VideoCaptureF ps)(ULONG aFps)1927 *aFPS = mHWData->mVideoCaptureFPS; 1928 return S_OK; 1929 } 1930 1931 STDMETHODIMP Machine::COMSETTER(VideoCaptureFPS)(ULONG aFPS) 1918 1932 { 1919 1933 AutoCaller autoCaller(this); … … 1928 1942 setModified(IsModified_MachineData); 1929 1943 mHWData.backup(); 1930 mHWData->mVideoCaptureF ps = aFps;1944 mHWData->mVideoCaptureFPS = aFPS; 1931 1945 1932 1946 return S_OK; … … 7660 7674 time.i32Year, time.u8Month, time.u8MonthDay, 7661 7675 time.u8Hour, time.u8Minute, time.u8Second, time.u32Nanosecond); 7676 } 7677 7678 /** 7679 * Returns the full path to the default video capture file. 7680 */ 7681 void Machine::getDefaultVideoCaptureFile(Utf8Str &strFile) 7682 { 7683 AutoCaller autoCaller(this); 7684 AssertComRCReturnVoid(autoCaller.rc()); 7685 7686 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 7687 7688 strFile = mData->m_strConfigFileFull; // path/to/machinesfolder/vmname/vmname.vbox 7689 strFile.stripExt(); // path/to/machinesfolder/vmname/vmname 7690 strFile.append(".webm"); // path/to/machinesfolder/vmname/vmname.webm 7662 7691 } 7663 7692 … … 9047 9076 AssertCompile(RT_ELEMENTS(mHWData->maVideoCaptureScreens) == sizeof(data.u64VideoCaptureScreens) * 8); 9048 9077 mHWData->mVideoCaptureRate = data.ulVideoCaptureRate; 9049 mHWData->mVideoCaptureFps = data.ulVideoCaptureFps; 9050 mHWData->mVideoCaptureFile = data.strVideoCaptureFile; 9078 mHWData->mVideoCaptureFPS = data.ulVideoCaptureFPS; 9079 if (!data.strVideoCaptureFile.isEmpty()) 9080 calculateFullPath(data.strVideoCaptureFile, mHWData->mVideoCaptureFile); 9081 else 9082 mHWData->mVideoCaptureFile.setNull(); 9051 9083 mHWData->mFirmwareType = data.firmwareType; 9052 9084 mHWData->mPointingHIDType = data.pointingHIDType; … … 10286 10318 data.ulVideoCaptureVertRes = mHWData->mVideoCaptureHeight; 10287 10319 data.ulVideoCaptureRate = mHWData->mVideoCaptureRate; 10288 data.ulVideoCaptureF ps = mHWData->mVideoCaptureFps;10320 data.ulVideoCaptureFPS = mHWData->mVideoCaptureFPS; 10289 10321 data.fVideoCaptureEnabled = !!mHWData->mVideoCaptureEnabled; 10290 10322 for (unsigned i = 0; i < sizeof(data.u64VideoCaptureScreens) * 8; i++) … … 10295 10327 ASMBitClear(&data.u64VideoCaptureScreens, i); 10296 10328 } 10297 data.strVideoCaptureFile = mHWData->mVideoCaptureFile; 10329 /* store relative video capture file if possible */ 10330 copyPathRelativeToMachine(mHWData->mVideoCaptureFile, data.strVideoCaptureFile); 10298 10331 10299 10332 /* VRDEServer settings (optional) */ -
trunk/src/VBox/Main/xml/Settings.cpp
r46367 r46667 1754 1754 ulVideoCaptureVertRes(768), 1755 1755 ulVideoCaptureRate(512), 1756 ulVideoCaptureF ps(25),1756 ulVideoCaptureFPS(25), 1757 1757 fVideoCaptureEnabled(false), 1758 1758 u64VideoCaptureScreens(UINT64_C(0xffffffffffffffff)), 1759 strVideoCaptureFile(" Test.webm"),1759 strVideoCaptureFile(""), 1760 1760 firmwareType(FirmwareType_BIOS), 1761 1761 pointingHIDType(PointingHIDType_PS2Mouse), … … 1832 1832 && (ulVideoCaptureVertRes == h.ulVideoCaptureVertRes) 1833 1833 && (ulVideoCaptureRate == h.ulVideoCaptureRate) 1834 && (ulVideoCaptureF ps == h.ulVideoCaptureFps)1834 && (ulVideoCaptureFPS == h.ulVideoCaptureFPS) 1835 1835 && (firmwareType == h.firmwareType) 1836 1836 && (pointingHIDType == h.pointingHIDType) … … 2731 2731 pelmHwChild->getAttributeValue("enabled", hw.fVideoCaptureEnabled); 2732 2732 pelmHwChild->getAttributeValue("screens", hw.u64VideoCaptureScreens); 2733 pelmHwChild->getAttributeValue ("file",hw.strVideoCaptureFile);2733 pelmHwChild->getAttributeValuePath("file", hw.strVideoCaptureFile); 2734 2734 pelmHwChild->getAttributeValue("horzRes", hw.ulVideoCaptureHorzRes); 2735 2735 pelmHwChild->getAttributeValue("vertRes", hw.ulVideoCaptureVertRes); 2736 2736 pelmHwChild->getAttributeValue("rate", hw.ulVideoCaptureRate); 2737 pelmHwChild->getAttributeValue("fps", hw.ulVideoCaptureF ps);2737 pelmHwChild->getAttributeValue("fps", hw.ulVideoCaptureFPS); 2738 2738 } 2739 2739 else if (pelmHwChild->nameEquals("RemoteDisplay")) … … 3916 3916 xml::ElementNode *pelmVideoCapture = pelmHardware->createChild("VideoCapture"); 3917 3917 3918 if (m->sv >= SettingsVersion_v1_1 2)3918 if (m->sv >= SettingsVersion_v1_14) 3919 3919 { 3920 3920 pelmVideoCapture->setAttribute("enabled", hw.fVideoCaptureEnabled); 3921 3921 pelmVideoCapture->setAttribute("screens", hw.u64VideoCaptureScreens); 3922 pelmVideoCapture->setAttribute("file", hw.strVideoCaptureFile); 3922 if (!hw.strVideoCaptureFile.isEmpty()) 3923 pelmVideoCapture->setAttributePath("file", hw.strVideoCaptureFile); 3923 3924 pelmVideoCapture->setAttribute("horzRes", hw.ulVideoCaptureHorzRes); 3924 3925 pelmVideoCapture->setAttribute("vertRes", hw.ulVideoCaptureVertRes); 3925 3926 pelmVideoCapture->setAttribute("rate", hw.ulVideoCaptureRate); 3926 pelmVideoCapture->setAttribute("fps", hw.ulVideoCaptureF ps);3927 pelmVideoCapture->setAttribute("fps", hw.ulVideoCaptureFPS); 3927 3928 } 3928 3929 … … 5052 5053 { 5053 5054 // VirtualBox 4.3 adds default frontend setting, graphics controller 5054 // setting, explicit long mode setting .5055 // setting, explicit long mode setting and video capturing. 5055 5056 if ( !hardwareMachine.strDefaultFrontend.isEmpty() 5056 5057 || hardwareMachine.graphicsControllerType != GraphicsControllerType_VBoxVGA 5057 5058 || hardwareMachine.enmLongMode != Hardware::LongMode_Legacy 5058 || machineUserData.ovIcon.length() > 0) 5059 || machineUserData.ovIcon.length() > 0 5060 || hardwareMachine.fVideoCaptureEnabled) 5059 5061 m->sv = SettingsVersion_v1_14; 5060 5062 } … … 5097 5099 if (m->sv < SettingsVersion_v1_12) 5098 5100 { 5099 // 4.1: Emulated USB devices. 5100 if (hardwareMachine.fEmulatedUSBCardReader) 5101 m->sv = SettingsVersion_v1_12; 5102 } 5103 5104 if (m->sv < SettingsVersion_v1_12) 5105 { 5106 // VirtualBox 4.1 adds PCI passthrough. 5101 // VirtualBox 4.1 adds PCI passthrough and emulated USB Smart Card reader 5107 5102 if ( hardwareMachine.pciAttachments.size() 5108 || hardwareMachine.f VideoCaptureEnabled)5103 || hardwareMachine.fEmulatedUSBCardReader) 5109 5104 m->sv = SettingsVersion_v1_12; 5110 5105 }
Note:
See TracChangeset
for help on using the changeset viewer.

