How to Copy buffered DVR data to a new file (C++)
The following method for C++ shows how to get the DVR Sink object from the ltmmPlayControl object and use it to copy DVR buffered data to a new file.
void CDVRExample::DVRCopyToFile()
{
IUnknown *punk = NULL;
HRESULT hr = m_player->GetSubObject(ltmmPlay_Object_SourceFilter,
&punk);
if(SUCCEEDED(hr) && NULL != punk)
{
ILMDVRSink *pDvrSink;
hr = punk->QueryInterface(IID_ILMDVRSink,
(LPVOID*)&pDvrSink);
punk->Release();
if (SUCCEEDED(hr))
{
double start, stop,
total;
// Get available
range to copy
pDvrSink->GetAvailabilityInfo(&start,
&stop, &total);
// Copy the data
to the new file
pDvrSink->CopyBufferToFile(L"C:\\Temp\\DVR\\Copied_Capture.mpg",
start, stop);
// Release the interface and free string data
pDvrSink->Release();
}
}
}