Lines Matching defs:pGstStrmOut

405 int drvAudioDestroyGstOut(PDRVAUDIO pThis, PPDMAUDIOGSTSTRMOUT pGstStrmOut)
409 if (pGstStrmOut)
411 drvAudioGstOutFreeRes(pGstStrmOut);
413 if (pGstStrmOut->pHstStrmOut)
416 RTListNodeRemove(&pGstStrmOut->Node);
421 drvAudioDestroyHstOut(pThis, pGstStrmOut->pHstStrmOut);
424 RTMemFree(pGstStrmOut);
478 int drvAudioGstOutInit(PPDMAUDIOGSTSTRMOUT pGstStrmOut, PPDMAUDIOHSTSTRMOUT pHostStrmOut,
481 AssertPtrReturn(pGstStrmOut, VERR_INVALID_POINTER);
486 int rc = drvAudioStreamCfgToProps(pCfg, &pGstStrmOut->Props);
493 rc = audioMixBufInit(&pGstStrmOut->MixBuf, pszTemp, &pGstStrmOut->Props, audioMixBufSize(&pHostStrmOut->MixBuf));
495 rc = audioMixBufLinkTo(&pGstStrmOut->MixBuf, &pHostStrmOut->MixBuf);
501 pGstStrmOut->State.fActive = false;
502 pGstStrmOut->State.fEmpty = true;
504 pGstStrmOut->State.pszName = RTStrDup(pszName);
505 if (!pGstStrmOut->State.pszName)
508 pGstStrmOut->pHstStrmOut = pHostStrmOut;
620 PPDMAUDIOGSTSTRMOUT pGstStrmOut =
622 if (!pGstStrmOut)
637 RTMemFree(pGstStrmOut);
645 rc = drvAudioGstOutInit(pGstStrmOut, pHstStrmOut, pszName, pCfg);
648 RTListPrepend(&pHstStrmOut->lstGstStrmOut, &pGstStrmOut->Node);
651 *ppGstStrmOut = pGstStrmOut;
655 drvAudioDestroyGstOut(pThis, pGstStrmOut);
857 * @param pGstStrmOut
862 int drvAudioWrite(PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOGSTSTRMOUT pGstStrmOut,
868 AssertPtrReturn(pGstStrmOut, VERR_INVALID_POINTER);
876 PPDMAUDIOHSTSTRMOUT pHstStrmOut = pGstStrmOut->pHstStrmOut;
879 AssertMsg(pGstStrmOut->pHstStrmOut->fEnabled,
888 int rc = audioMixBufWriteAt(&pGstStrmOut->MixBuf, 0 /* Offset in samples */, pvBuf, cbBuf, &cWritten);
898 rc = audioMixBufMixToParent(&pGstStrmOut->MixBuf, cWritten, &cMixed);
909 *pcbWritten = AUDIOMIXBUF_S2B(&pGstStrmOut->MixBuf, cMixed);
913 pGstStrmOut->MixBuf.pszName, pHstStrmOut->MixBuf.pszName, pvBuf, cbBuf, cWritten,
914 AUDIOMIXBUF_S2B(&pGstStrmOut->MixBuf, cWritten), cMixed, rc));
1072 PPDMAUDIOGSTSTRMOUT pGstStrmOut;
1074 RTListForEach(&pHstStrmOut->lstGstStrmOut, pGstStrmOut, PDMAUDIOGSTSTRMOUT, Node)
1076 if (pGstStrmOut->State.fActive)
1080 cbFree2 = RT_MIN(cbFree2, AUDIOMIXBUF_S2B_RATIO(&pGstStrmOut->MixBuf,
1081 audioMixBufFree(&pGstStrmOut->MixBuf)));
1083 LogFlowFunc(("\t[%s] cbFree=%RU32\n", pGstStrmOut->MixBuf.pszName, cbFree2));
1190 PPDMAUDIOGSTSTRMOUT pGstStrmOut;
1191 RTListForEach(&pHstStrmOut->lstGstStrmOut, pGstStrmOut, PDMAUDIOGSTSTRMOUT, Node)
1193 if ( !pGstStrmOut->State.fActive
1194 && pGstStrmOut->State.fEmpty)
1197 if (audioMixBufIsEmpty(&pGstStrmOut->MixBuf))
1199 pGstStrmOut->State.fEmpty = true;
1200 fNeedsCleanup |= !pGstStrmOut->State.fActive;
1206 RTListForEach(&pHstStrmOut->lstGstStrmOut, pGstStrmOut, PDMAUDIOGSTSTRMOUT, Node)
1208 if (!pGstStrmOut->State.fActive)
1209 drvAudioDestroyGstOut(pThis, pGstStrmOut);
1447 PPDMAUDIOGSTSTRMOUT pGstStrmOut, bool fEnable)
1450 /* pGstStrmOut is optional. */
1454 if (pGstStrmOut)
1456 PPDMAUDIOHSTSTRMOUT pHstStrmOut = pGstStrmOut->pHstStrmOut;
1459 LogFlowFunc(("%s: fEnable=%RTbool\n", pGstStrmOut->MixBuf.pszName, fEnable));
1461 if (pGstStrmOut->State.fActive != fEnable)
1491 pGstStrmOut->State.fActive = fEnable;
1554 PPDMAUDIOGSTSTRMOUT pGstStrmOut)
1556 return (pGstStrmOut != NULL);
1643 PPDMAUDIOGSTSTRMOUT pGstStrmOut = *ppGstStrmOut;
1644 if ( pGstStrmOut
1645 && drvAudioPCMPropsAreEqual(&pGstStrmOut->Props, pCfg))
1648 pGstStrmOut->MixBuf.pszName));
1659 && pGstStrmOut
1660 && ( !pGstStrmOut->State.fActive
1661 && !pGstStrmOut->State.fEmpty))
1663 cLiveSamples = pGstStrmOut->cTotalSamplesWritten;
1666 pOldGstStrmOut = pGstStrmOut;
1667 pGstStrmOut = NULL;
1672 if ( pGstStrmOut
1675 drvAudioDestroyGstOut(pThis, pGstStrmOut);
1676 pGstStrmOut = NULL;
1680 if (pGstStrmOut)
1682 PPDMAUDIOHSTSTRMOUT pHstStrmOut = pGstStrmOut->pHstStrmOut;
1685 drvAudioGstOutFreeRes(pGstStrmOut);
1687 rc = drvAudioGstOutInit(pGstStrmOut, pHstStrmOut, pszName, pCfg);
1691 rc = drvAudioCreateStreamPairOut(pThis, pszName, pCfg, &pGstStrmOut);
1698 AssertPtr(pGstStrmOut);
1699 *ppGstStrmOut = pGstStrmOut;
1711 pGstStrmOut->cTotalSamplesWritten += cSamplesMixed;
1725 static DECLCALLBACK(bool) drvAudioIsActiveOut(PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOGSTSTRMOUT pGstStrmOut)
1727 return pGstStrmOut ? pGstStrmOut->State.fActive : false;
1737 DECLCALLBACK(void) drvAudioCloseOut(PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOGSTSTRMOUT pGstStrmOut)
1740 if (pGstStrmOut)
1741 drvAudioDestroyGstOut(pThis, pGstStrmOut);