The following C++ method demonstrates how to use the ltmmPlayControl to play a UDP MPEG2 source stream with modified DVR buffer settings:
void PlayUDPSourceWithDVRBuffer(IltmmPlay *pPlay)
{
USES_CONVERSION;
try
{
// Open the UDP Stream, but dont auto start
pPlay->put_AutoStart(VARIANT_FALSE);
pPlay->put_SourceFile(L"udp://127.0.0.1:9005");
IUnknown *punk = NULL;
HRESULT hr = pPlay->GetSubObject(ltmmPlay_Object_SourceFilter, &punk);
if (SUCCEEDED(hr))
{
ILMDVRSink *pDvrSink;
hr = punk->QueryInterface(IID_ILMDVRSink, (LPVOID*)&pDvrSink);
punk->Release();
if (SUCCEEDED(hr))
{
// Tell the DVR Sink that settings are about to change
pDvrSink->StartChangingAttributes();
// Set only one DVR buffer folder
pDvrSink->put_FolderCount(1);
// Set the buffer base file name to 'Capture.LBL'
pDvrSink->put_BaseName(TEXT("Capture.LBL"));
// Set the buffer folder location to 'C:\Temp'
pDvrSink->put_FolderName(0, TEXT("C:\\Temp"));
// Set the buffer folder to have 5 buffer data files, each at 100MB max size
pDvrSink->SetBufferSize(0, 5, 102400000);
// Commit the changed settings now
pDvrSink->StopChangingAttributes(VARIANT_FALSE);
// release the dvr sink object
pDvrSink->Release();
}
}
// Run the stream
pPlay->Run();
}
catch ( ... )
{
ASSERT(FALSE);
throw;
}
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document