The Client Side Example for C
#include "ltmm.h"
#include "ILMNetDmx.h"
void main()
{
IltmmPlay* pPlay ;
IUnknown* pUnk = NULL;
ILMNetDmx* pDmx;
long bitrate = 0;
BSTR Message;
BSTR sServer;
BSTR szFileName;
CoInitialize(NULL);
CoCreateInstance(&CLSID_ltmmPlay, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmPlay, (void**) &pPlay);
// set the player source:
sServer = SysAllocString(L"ltsf://10.0.4.23");
IltmmPlay__put_SourceFile(pPlay , sServer);
SysFreeString(sServer);
// you can monitor the incoming bit rate by checking the BitRate property of
// the demultiplexer object:
IltmmPlay_GetSubObject (pPlay, ltmmPlay_Object_Splitter, &pUnk);
IUnknown_QueryInterface(pUnk, &IID_ILMNetDmx, (void**) &pDmx);
IUnknown_Release(pUnk);
ILMNetDmx_get_BitRate(pDmx, &bitrate); // you may display the value
// Get the output file name
ILMNetDmx__get_OutputFileName(pDmx, &szFileName);
if (szFileName == NULL)
{
// Set the output file name to record the incoming stream
szFileName = SysAllocString(L"c:\\output.avi");
ILMNetDmx__put_OutputFileName(pDmx, szFileName);
}
SysFreeString(szFileName);
// if the AutoStart property is not TRUE, you need to run the player:
IltmmPlay_Run(pPlay);
// To give a chance to receive some data
Sleep(20000);
/* to receive a text message sent by the server, use the ReadMessage method: */
/* first, get the demux interface again (you might want to keep it for the life of
the communication session:
read the message: */
ILMNetDmx_ReadMessage(pDmx, &Message);
ILMNetDmx_Release(pDmx);
IltmmPlay_Release(pPlay);
CoUninitialize();
/* do something with the message. */
/* You need to call ReadMessage continuously to check for new messages.*/
}