How to Play a UDP MPEG2 Stream with DVR Buffer Capturing (C++)

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 do not 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 Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Multimedia C API Help