Changeset 87267 in vbox
- Timestamp:
- Jan 15, 2021 12:43:52 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142226
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/HDAStream.cpp
r83298 r87267 1018 1018 uint32_t cbLeft = cbToProcess; 1019 1019 1020 uint8_t abChunk[HDA_FIFO_MAX + 1];1021 1020 while (cbLeft) 1022 1021 { … … 1040 1039 uint32_t cbDMA = 0; 1041 1040 PRTCIRCBUF pCircBuf = pStreamR3->State.pCircBuf; 1041 uint8_t *pabFIFO = pStreamShared->abFIFO; 1042 1042 1043 1043 if (hdaGetDirFromSD(uSD) == PDMAUDIODIR_IN) /* Input (SDI). */ … … 1059 1059 break; 1060 1060 1061 memcpy( abChunk+ cbDMAWritten, pvBuf, cbBuf);1061 memcpy(pabFIFO + cbDMAWritten, pvBuf, cbBuf); 1062 1062 1063 1063 RTCircBufReleaseReadBlock(pCircBuf, cbBuf); … … 1074 1074 1075 1075 Assert(cbChunk == cbDMAWritten + cbDMAToWrite); 1076 memset((uint8_t *) abChunk+ cbDMAWritten, 0, cbDMAToWrite);1076 memset((uint8_t *)pabFIFO + cbDMAWritten, 0, cbDMAToWrite); 1077 1077 cbDMAWritten = cbChunk; 1078 1078 } 1079 1079 1080 rc = hdaR3DMAWrite(pDevIns, pThis, pStreamShared, pStreamR3, abChunk, cbDMAWritten, &cbDMA /* pcbWritten */);1080 rc = hdaR3DMAWrite(pDevIns, pThis, pStreamShared, pStreamR3, pabFIFO, cbDMAWritten, &cbDMA /* pcbWritten */); 1081 1081 if (RT_FAILURE(rc)) 1082 1082 LogRel(("HDA: Writing to stream #%RU8 DMA failed with %Rrc\n", uSD, rc)); … … 1088 1088 STAM_PROFILE_START(&pThis->StatOut, a); 1089 1089 1090 rc = hdaR3DMARead(pDevIns, pThis, pStreamShared, pStreamR3, abChunk, cbChunk, &cbDMA /* pcbRead */);1090 rc = hdaR3DMARead(pDevIns, pThis, pStreamShared, pStreamR3, pabFIFO, cbChunk, &cbDMA /* pcbRead */); 1091 1091 if (RT_SUCCESS(rc)) 1092 1092 { … … 1112 1112 if (cbBuf) 1113 1113 { 1114 memcpy(pvBuf, abChunk+ cbDMARead, cbBuf);1114 memcpy(pvBuf, pabFIFO + cbDMARead, cbBuf); 1115 1115 cbDMARead += (uint32_t)cbBuf; 1116 1116 cbDMALeft -= (uint32_t)cbBuf; … … 1160 1160 } 1161 1161 1162 uint8_t *pbSrcBuf = abChunk;1162 uint8_t *pbSrcBuf = pabFIFO; 1163 1163 size_t cbSrcOff = pMap->offNext; 1164 1164 … … 1558 1558 if (cbSinkReadable) 1559 1559 { 1560 uint8_t abFIFO[HDA_FIFO_MAX + 1]; 1560 uint8_t *pabFIFO = pStreamShared->abFIFO; 1561 1561 1562 while (cbSinkReadable) 1562 1563 { 1563 1564 uint32_t cbRead; 1564 1565 rc2 = AudioMixerSinkRead(pSink, AUDMIXOP_COPY, 1565 abFIFO, RT_MIN(cbSinkReadable, (uint32_t)sizeof(abFIFO)), &cbRead);1566 pabFIFO, RT_MIN(cbSinkReadable, (uint32_t)sizeof(pStreamShared->abFIFO)), &cbRead); 1566 1567 AssertRCBreak(rc2); 1567 1568 … … 1574 1575 /* Write (guest input) data to the stream which was read from stream's sink before. */ 1575 1576 uint32_t cbWritten; 1576 rc2 = hdaR3StreamWrite(pStreamR3, abFIFO, cbRead, &cbWritten);1577 rc2 = hdaR3StreamWrite(pStreamR3, pabFIFO, cbRead, &cbWritten); 1577 1578 AssertRCBreak(rc2); 1578 1579 AssertBreak(cbWritten > 0); /* Should never happen, as we know how much we can write. */ -
trunk/src/VBox/Devices/Audio/HDAStream.h
r82968 r87267 211 211 /** FIFO Watermark. */ 212 212 uint16_t u16FIFOW; 213 /** FIFO scratch buffer, to avoid intermediate (re-)allocations. */ 214 uint8_t abFIFO[HDA_FIFO_MAX + 1]; 213 215 /** Last Valid Index (SDnLVI). 214 216 * Will be updated in hdaR3StreamInit(). */
Note:
See TracChangeset
for help on using the changeset viewer.