Changeset 73558 in vbox
- Timestamp:
- Aug 8, 2018 11:41:25 AM (6 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/Devices/Audio/DrvAudio.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DrvAudio.cpp
r73529 r73558 2337 2337 * should have the audio data in the format the guest needs. 2338 2338 */ 2339 uint32_t c ReadTotal = 0;2339 uint32_t cfReadTotal = 0; 2340 2340 2341 2341 uint32_t cfToRead = RT_MIN(AUDIOMIXBUF_B2F(&pStream->Guest.MixBuf, cbBuf), AudioMixBufUsed(&pStream->Guest.MixBuf)); 2342 2342 while (cfToRead) 2343 2343 { 2344 uint32_t c Read;2344 uint32_t cfRead; 2345 2345 rc = AudioMixBufAcquireReadBlock(&pStream->Guest.MixBuf, 2346 (uint8_t *)pvBuf + AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, c ReadTotal),2347 AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfToRead), &c Read);2346 (uint8_t *)pvBuf + AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfReadTotal), 2347 AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfToRead), &cfRead); 2348 2348 if (RT_FAILURE(rc)) 2349 2349 break; 2350 2350 2351 2351 #ifdef VBOX_WITH_STATISTICS 2352 const uint32_t cbRead = AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, c Read);2352 const uint32_t cbRead = AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfRead); 2353 2353 2354 2354 STAM_COUNTER_ADD(&pThis->Stats.TotalBytesRead, cbRead); 2355 2355 STAM_COUNTER_ADD(&pStream->In.Stats.BytesTotalRead, cbRead); 2356 2356 #endif 2357 Assert(cfToRead >= c Read);2358 cfToRead -= c Read;2359 2360 c ReadTotal += cRead;2361 2362 AudioMixBufReleaseReadBlock(&pStream->Guest.MixBuf, c Read);2363 } 2364 2365 if (c ReadTotal)2357 Assert(cfToRead >= cfRead); 2358 cfToRead -= cfRead; 2359 2360 cfReadTotal += cfRead; 2361 2362 AudioMixBufReleaseReadBlock(&pStream->Guest.MixBuf, cfRead); 2363 } 2364 2365 if (cfReadTotal) 2366 2366 { 2367 2367 if (pThis->In.Cfg.Dbg.fEnabled) 2368 2368 DrvAudioHlpFileWrite(pStream->In.Dbg.pFileStreamRead, 2369 pvBuf, AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, c ReadTotal), 0 /* fFlags */);2370 2371 AudioMixBufFinish(&pStream->Guest.MixBuf, c ReadTotal);2372 2373 cbReadTotal = AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, c ReadTotal);2369 pvBuf, AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfReadTotal), 0 /* fFlags */); 2370 2371 AudioMixBufFinish(&pStream->Guest.MixBuf, cfReadTotal); 2372 2373 cbReadTotal = AUDIOMIXBUF_F2B(&pStream->Guest.MixBuf, cfReadTotal); 2374 2374 } 2375 2375
Note:
See TracChangeset
for help on using the changeset viewer.

