ILMDVRSink::SetOffsetToReach Example for C

This example shows how you can wait for the DVR sink to write data past a certain offset. This is useful if you want to wait for the data to become available before reading it.
The error checking has been omitted for clarity.

void WaitForData(ILMDVRSink* pSink, _int64 startOffset, long nBytes) 
{ 
   long registrationId; // set this to a unique value in your application 
   OLE_HANDLE dataWrittenEvent; 
   OLE_HANDLE listChangedEvent; 
   OLE_HANDLE offsetReachedEvent; 
 
   // create the offset reached event 
   ILMDVRSink_CreateEvents2(pSink, registrationId, GetCurrentProcessId(), &dataWrittenEvent, &listChangedEvent, &offsetReachedEvent); 
 
   // instruct the sink to set the offset reached event once it reached nBytes past offset startOffset 
   ILMDVRSink_SetOffsetToReach(pSink, registrationId, (double)(startOffset + nBytes)); 
 
   // wait for the event to be set 
   WaitForSingleObject((HANDLE)offsetReachedEvent, INFINITE); 
 
   // free the events 
   ILMDVRSink_FreeEvents(pSink, registrationId); 
} 

Help Version 21.0.2021.7.19
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Multimedia C API Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.