ILMDVRSink::GetTimedFragmentAlignment

Include

#include "ILMDVRSink.h"

Syntax

C Syntax HRESULT ILMDVRSink_GetTimedFragmentAlignment(pILMDVRSink, startOffset, endOffset, timeThreshold, pAlignedStartOffset, pAlignedEndOffset, pAlignedDuration)
C++ Syntax HRESULT GetTimedFragmentAlignment(startOffset, endOffset, timeThreshold, pAlignedStartOffset, pAlignedEndOffset, pAlignedDuration)
ILMDVRSink *pILMDVRSink; pointer to an interface
[in]double startOffset; starting byte offset
[in]double endOffset; ending byte offset
[in]double timeThreshold; minimum time of the fragments to find
[out]double *pAlignedStartOffset; pointer storing offset of first transport fragment
[out]double *pAlignedEndOffset; pointer storing the time of the transport fragments found

Summary

Takes the user-supplied byte range and scans for transport fragment boundaries.

Parameters

Parameter Description
pILMDVRSink; A pointer to an ILMDVRSink interface.
startOffset; Specifies the byte offset at which to begin scanning for transport fragments.
endOffset; Specifies the byte offset at which to stop scanning for transport fragments.
timeThreshold; Specifies the minimum time (in seconds) of the fragments to find.
pAlignedStartOffset; A pointer to a double variable, storing the offset of the start of the first transport fragment found.
pAlignedEndOffset; A pointer to a double variable, storing the offset of the end of the last transport fragment.
pAlignedDuration; A pointer to a double variable, storing the time (in seconds), of the transport fragments found.

Remarks

Takes the user-supplied byte range and scans for transport fragment boundaries. It will only return the minimum number of fragments that meet or exceed the timeThreshold.

Use this function along with ILMDVRSink::CopyBufferToFile to save a completely intact MPEG transport fragment.

Set up the MPEG multiplexer used for recording to DVR by calling put_OutputType(Mpg2MxT_OutputType_HLS). Doing so guarantees that fragment boundaries start with synchronization frames. Specify the boundary time interval by calling put_ResyncInterval(intervalTime).

Returns

S_OK No error.
S_FALSE No transport fragment found: pAlignedStartOffset and pAlignedEndOffset are set equal to startOffset, and indicate an empty search.

Required DLLs and Libraries

LMDVRSink
For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Win32, x64

Example

For a C++ example, refer to ILMDVRSink::GetTimedFragmentAlignment Example For C++

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

LEADTOOLS Multimedia C API Help