IltmmPlay::get_SourceStream Example for C
// This method will fill the source stream with
// data from a buffer
void FillSourceFromMemory(UCHAR *pData, long lSize, IltmmPlay *pPlay)
{
IltmmMemory *pMemSource = NULL;
SAFEARRAY sa;
VARIANT var;
HRESULT hr = IltmmPlay__get_SourceStream(pPlay, (IUnknown**)&pMemSource);
if(FAILED(hr) || pMemSource == NULL)
return;
IltmmMemory__put_BufferSize (pMemSource, lSize);
// pass data
memset(&sa, 0, sizeof(sa));
sa.cbElements = sizeof(unsigned char);
sa.cDims = 1;
sa.fFeatures = (FADF_AUTO | FADF_FIXEDSIZE);
sa.pvData = pData;
sa.rgsabound[0].cElements = lSize;
VariantInit(&var);
V_VT(&var) = (VT_ARRAY | VT_UI1);
V_ARRAY(&var) = &sa;
IltmmMemory_SetData(pMemSource, 0, lSize, var);
IltmmMemory_Release(pMemSource);
}
This method will fill the source stream with data from a buffer.
L_MULTIMEDIATEX_API void IltmmPlay_get_SourceStream_Example (UCHAR *pData, long lSize, IltmmPlay *pPlay) { IltmmMemory *pMemSource = NULL; SAFEARRAY sa; VARIANT var; HRESULT hr = IltmmPlay_get_SourceStream(pPlay, (IUnknown**)&pMemSource); if(FAILED(hr) || pMemSource == NULL) return; IltmmMemory_put_BufferSize (pMemSource, lSize); // pass data memset(&sa, 0, sizeof(sa)); sa.cbElements = sizeof(unsigned char); sa.cDims = 1; sa.fFeatures = (FADF_AUTO | FADF_FIXEDSIZE); sa.pvData = pData; sa.rgsabound[0].cElements = lSize; VariantInit(&var); V_VT(&var) = (VT_ARRAY | VT_UI1); V_ARRAY(&var) = &sa; IltmmMemory_SetData(pMemSource, 0, lSize, var); IltmmMemory_Release(pMemSource); }