HRESULT GetDVRAvailableFragments(ILMDVRSink* pDVR, double* pdFragmentStartPos, double* pdFragmentEndPos)
{
double dStartPos;
double dEndPos;
double dTotal;
// find available range of bytes
HRESULT hr = pDVR->GetAvailabilityInfo(&dStartPos, &dEndPos, &dTotal);
if (FAILED(hr))
return hr;
// align the offset with transport fragment boundaries
return pDVR->GetFragmentAlignment(dStartPos, dEndPos, pdFragmentStartPos, pdFragmentEndPos);
}
HRESULT SaveDVRFragments(ILMDVRSink* pDVR, LPCWSTR pszFile)
{
HRESULT hr;
double dStartPos;
double dEndPos;
// Get fragment aligned boundaries for all available data
hr = GetDVRAvailableFragments(pDVR, &dStartPos, &dEndPos);
if (FAILED(hr))
return hr;
// Save the fragments to a file
return pDVR->CopyBufferToFile(CComBSTR(pszFile), dStartPos, dEndPos);
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET