typedef enum
{
LMDVRSink_EC_ERROR_RECORDING_TO_FILE,
} LMDVRSink_EVENT_NOTIFICATIONS;
Lists the possible values of the additional MediaEvents that can be notified by the filter.
LMDVRSink_EC_ERROR_RECORDING_TO_FILE | Writing to file specified in StartBackupToFile failed. |
typedef enum
{
DVRStatus_Writing = 0,
DVRStatus_Paused = 1,
DVRStatus_Stopped = 2
} DVRStatusConstants;
typedef enum
{
LMDVRSink_APILEVEL_1 = 0
} LMDVRSink_APILEVEL;
Type |
Name |
Description |
long |
FolderCount |
Gets or sets the number of buffer folder locations. Use this to determine the number of DVR buffer folder locations on the system. |
BSTR |
FolderName( long nFolderIndex) |
Gets or sets the name of the fully qualified folder path for the specified buffer location. Use this to determine the full pathname of the specified DVR buffer folder location. |
BSTR |
BaseName |
Gets or sets the name of the base file name of the buffer list file and recording chunk files. Use this to determine the file name of the DVR buffer files. |
VARIANT_BOOL |
IsGrowing |
(Read only) Indicates whether the DVR buffer is still growing. If VARIANT_TRUE, the file is still growing and the final duration is unknown. If VARIANT_FALSE, the buffer is not being updated anymore. |
pStartOffset |
A pointer to a double type that receives the first offset of available video. |
pEndOffset |
A pointer to a double type that receives the last offset of available video. |
pTotalSize |
Total size of all video data available. |
Gets the availability information for data for the current playback range.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Unexpected invalid file handle.
LTMM_E_DVR_NO_RECORDINGS = No .LRC recording files exist.
LTMM_E_DVR_CORRUPT_STUB_FILE = Corrupted .LBL file.
nFolderIndex |
The index of the desired buffer location. |
nFiles |
The maximum number of .LRC files allowed to be created in this location. |
fileSize |
The maximum file size (in bytes) of each individual .LRC file. |
Sets the number of buffer (.LRC) files and the allowed size per buffer file for the specified buffer location.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Unexpected invalid file handle
DISP_E_BADINDEX = Index supplied is outside the range of currently valid indexes.
E_INVALIDARG = Either the number of files or file size specified is not valid.
nFolderIndex |
The index of the desired buffer location. |
uFlags |
Flag specifying how to calculate the total size. DVRGetTotalSize_Actual = 0x0000 DVRGetTotalSize_Allowed = 0x0001 |
pnFiles |
Total number of files included in the buffer size calculation. |
pnTotalFileSize |
The total calculated buffer file size. |
Sets the number of buffer (.LRC) files and the allowed size per buffer file for the specified buffer location.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Unexpected invalid file handle
DISP_E_BADINDEX = Index supplied is outside the range of currently valid indexes.
pszTargetFile |
Fully qualified pathname of destination file. |
startOffset |
Starting offset of data to copy. |
endOffset |
Ending offset of data to copy. |
Copies the buffered recording data to the specified fully qualified file pathname.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Starting offset not found.
DISP_E_BADINDEX = Index supplied is outside the range of currently valid indexes.
LTMM_E_DVR_NO_RECORDINGS = No .LRC recording files exist.
E_INVALIDARG = Either the number of files or file size specified is not valid.
pStatus |
A pointer to an enumeration type that will receive the current DVR status. Returned values can be: DVRStatus_Stopped DVRStatus_Paused DVRStatus_Writing |
pnCurrentFolderIndex |
A pointer to a long type that will receive the current location index. |
pnCurrentRecordingIndex |
A pointer to a long type that will receive the current recording index. This index is the number of the current LRC file. |
pnCurrentRecordingSize |
A pointer to double type that will receive the current recording size in bytes. |
Gets the DVRSink status, buffer files location and buffer file index, and total current recording size.
S_OK if successful, S_FALSE otherwise.
nRegistrationID |
A unique identifier for this event registration. |
TargetProcessID |
The process id of the event subscriber. |
pDataWrittenEvent |
A handle to the write event. |
pRecordingListChangedEvent |
A handle to the list changed event. |
Creates the Windows Event objects used to signal data write and recording list changed events.
Note: This method is now deprecated. Use CreateEvents2 instead.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_OUTOFMEMORY = Memory allocation error was encountered.
nRegistrationID |
A unique identifier for this event registration. |
TargetProcessID |
The process id of the event subscriber. |
pDataWrittenEvent |
A handle to the write event. |
pRecordingListChangedEvent |
A handle to the list changed event. |
pOffsetReachedEvent |
A handle to the offset reached event. |
Creates the Windows Event objects used to signal the Data Was Written, the Recording List Changed, and the Offset Reached events. This method is used internally by the LEAD DVR Source Filter.
The Offset Reached event is designed to work together with the SetOffsetToReach method.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_OUTOFMEMORY = Memory allocation error was encountered.
nRegistrationID |
A unique identifier for this event registration. |
Frees the windows event objects used by to signal data write and recording list changed events.
S_OK if successful, S_FALSE otherwise.
ApiLevel |
The desired API Level for reset. Value can be:
|
Resets the DVRSink interface object to the default settings for the API level specified.
S_OK if successful, S_FALSE otherwise.
nBufferIndex |
The index of the buffer file for which to get information. |
pszFileName |
A pointer to a string type that will receive the filename of the related buffer recording file. |
pnUsefulSize |
A pointer to a double type that will receive the used file size of this recording chunk file. |
pnFileSize |
A pointer to a double type that will receive the physical file size of this recording chunk file. |
pnPlayIndex |
A pointer to a long type that will receive the index in the play order (the first index might not be 0, but all files should have sequential and incrementing indexes after the first index value) |
pnFlags |
A pointer to a long type that will receive a DVRBufferFlagConstant setting. Value can be: DVRBuffer_Empty = 0x0001, DVRBuffer_Writing = 0x0002, DVRBuffer_Finished = 0x0004 |
Gets the buffer information associated with the buffer file index specified.
S_OK if successful; otherwise, a return code indicating the reason for failure:
E_INVALIDARG = Buffer index supplied is outside the range of currently valid indexes.
LTMM_E_DVR_NO_RECORDINGS = No .LRC recording files exist.
E_OUTOFMEMORY = A memory allocation error occurred.
Either the number of files or file size specified is not valid.
nRegistrationID |
The identifier passed to CreateEvents2 when the Offset Reached event was created. |
Offset |
The offset to reach (in bytes). The Offset Reached event will be set when the DVR sink has written data past this offset. Must be > 0. |
Use this method to instruct the DVR sink object to set the offset reached event once it has written data past a certain offset. This method is used internally by the DVR source object.
For example, if an application wants to read N bytes from offset X, then it will do the following:
Reset the offset reached event
Call SetOffsetToReach(X + N)
Use a windows waiting function and wait for the offset reached event to be set. (This of course, assumes the event was created through an earlier call to CreateEvents2.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_INVALIDARG = the registration identifier is invalid or the offset is invalid.
This method is used to change the DVRSink attributes.
S_OK if successful, S_FALSE otherwise.
bCancelChanges |
A BOOL value type specifying whether to cancel or apply the pending attribute changes. |
Sets the DVRSink attributes. Set to VARIANT_FALSE to set the attributes. Use VARIANT_TRUE to discard changes and reset the attributes to their previous settings.
S_OK if successful, S_FALSE otherwise.
pszFileName |
Fully qualified pathname of destination backup file. |
Flags |
Reserved for future use. Set value to 0. |
Starts writing the DVR recording data to the specified fully qualified backup filename.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Unexpected invalid file handle.
Stops writing the DVR recording data to the backup file.
S_OK if successful, otherwise a return code indicating the reason for failure:
E_UNEXPECTED = Unexpected invalid file handle.
Parameter | Description |
---|---|
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. |
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. |
Takes the user-supplied byte range and scans for transport fragment boundaries.
Use this function along with 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).
S_OK if no error.
S_FALSE if no transport fragment is found: pAlignedStartOffset and pAlignedEndOffset are set equal to startOffset, and indicate an empty search.
Parameter | Description |
---|---|
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. |
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 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).
S_OK if no error.
S_FALSE if no transport fragment is found: pAlignedStartOffset and pAlignedEndOffset are set equal to startOffset, and indicate an empty search.