StarBurn SDK (Software Development Kit)
ContentsIndexHome
PreviousUpNext
StarBurn_CdvdBurnerGrabber_VideoCDEx Function
C++
__stdcall STARBURN_IMPEX_API EXCEPTION_NUMBER StarBurn_CdvdBurnerGrabber_VideoCDEx(IN PVOID p__PVOID__CdvdBurnerGrabber, OUT PCHAR p__PCHAR__ExceptionText, IN ULONG p__ULONG__ExceptionTextSizeInUCHARs, OUT PULONG p__PULONG__SystemError, OUT PCDB_FAILURE_INFORMATION p__PCDB_FAILURE_INFORMATION, IN WRITE_MODE p__WRITE_MODE, IN PCHAR p__PCHAR__MPEG1ImagePathAndFileName, IN PCHAR p__PCHAR__AlbumIdentifier, IN USHORT p__USHORT__NumberOfVolumesInAlbum, IN USHORT p__USHORT__AlbumSetSequenceNumber, IN BOOLEAN p__BOOLEAN__IsTestWrite, IN ULONG p__ULONG__WriteReportDelayInSeconds, IN ULONG p__ULONG__BufferStatusReportDelayInSeconds);
Parameters 
Description 
IN PVOID p__PVOID__CdvdBurnerGrabber 
Pointer to the CdvdBurnerGrabber object that toolkit allocated before.
 
OUT PCHAR p__PCHAR__ExceptionText 
Pointer to array of CHARs that will be used to store formatted exception description message.
 
IN ULONG p__ULONG__ExceptionTextSizeInUCHARs 
Size of the array of CHARs used to be formatted exception message storage.
 
OUT PULONG p__PULONG__SystemError 
Pointer to ULONG that will contain the system error (if some will occur).
 
OUT PCDB_FAILURE_INFORMATION p__PCDB_FAILURE_INFORMATION 
Pointer to CDB_FAILURE_INFORMATION that will be filled with apropriate values.
 
IN WRITE_MODE p__WRITE_MODE 
Write mode to use.
 
IN PCHAR p__PCHAR__MPEG1ImagePathAndFileName 
Pointer to VCD/MPEG1 image file located in a file and stored on the hard disk.
 
IN PCHAR p__PCHAR__AlbumIdentifier 
Pointer to album identifier.
 
IN USHORT p__USHORT__NumberOfVolumesInAlbum 
Number of volumes in album.
 
IN USHORT p__USHORT__AlbumSetSequenceNumber 
Album set sequence number.
 
IN BOOLEAN p__BOOLEAN__IsTestWrite 
BOOLEAN set to TRUE if this is test write, FALSE if this is a real write.
 
IN ULONG p__ULONG__WriteReportDelayInSeconds 
Write report delay in seconds (time between 2 WRITE_PACKET callbacks).
 
IN ULONG p__ULONG__BufferStatusReportDelayInSeconds 
Buffer status report delay in seconds (time between 2 BUFFER_STATUS callbacks). 

Execution status. EN_SUCCESS if the operation completed successfuly. If the exception number will be EN_SYSTEM_CALL_FAILED, variable that SystemError points to will be filled with system error. If something other then EN_SUCCESS will be returned buffer that ExceptionText will point to will be filled with formatted exception message. If the exception number will be EN_SCSI_CDB_FAILED, CDB_FAILURE_INFORMATION will be filled with apropriate values (CDB that faled, CDB size, SCSI sense data, SCSI sense data size, SCSI transport, device and host adapter status codes).

This function records VCD/MPEG1 image located in a file on the hard disk with current write speed on CD/DVD/Blu-Ray/HD-DVD burner device in selected write mode.

Please see the VideoCDEx sample that will demonstrate how VCD/MPEG1 image can be burn on the CD/DVD/Blu-Ray/HD-DVD media and with the help of StarBurn_CdvdBurnerGrabber_VideoCDEx with currently set write speed and currently set optimum power calibration.

This example allocates CdvdBurnerGrabber object, records the VCD/MPEG1 image to the CD/DVD/Blu-Ray/HD-DVD media and destroys the device object after it's not needed any more. 

 

// Somewhere in the data region
PVOID l__PVOID__CdvdBurnerGrabber;
EXCEPTION_NUMBER l__EXCEPTION_NUMBER;
ULONG l__ULONG__SystemError;
CHAR l__CHAR__ExceptionText[ 1024 ];
CDB_FAILURE_INFORMATION l__CDB_FAILURE_INFORMATION;

// Prepare exception text buffer
RtlZeroMemory(
    &l__CHAR__ExceptionText,
    sizeof( l__CHAR__ExceptionText )
    );

// Prepare CDB failure information
RtlZeroMemory(
    &l__CDB_FAILURE_INFORMATION,
    sizeof( l__CDB_FAILURE_INFORMATION )
    );

// Try to create CdvdBurnerGrabber on 0:0:4:0 with 32MB of cache
l__EXCEPTION_NUMBER =
StarBurn_CdvdBurnerGrabber_Create(
    &l__PVOID__CdvdBurnerGrabber,
    ( PCHAR )( &l__CHAR__ExceptionText ),
    sizeof( l__CHAR__ExceptionText ),
    &l__ULONG__SystemError,
    &l__CDB_FAILURE_INFORMATION,
    ( PCALLBACK )( StarBurn_Callback ),
    0,
    0,
    4,
    0,
    32
    );

// Check for correct reply
if (  l__EXCEPTION_NUMBER != EN_SUCCESS )
{
// Handle error here...
}

// Try to record the VCD/MPEG1 image (in Session-At-Once mode)
l__EXCEPTION_NUMBER =
StarBurn_CdvdBurnerGrabber_VideoCDEx(
    l__PVOID__CdvdBurnerGrabber,
    ( PCHAR )( &l__CHAR__ExceptionText ),
    sizeof( l__CHAR__ExceptionText ),
    &l__ULONG__SystemError,
    &l__CDB_FAILURE_INFORMATION,
    WRITE_MODE_SESSION_AT_ONCE,
    "C:\MOVIE.MPEG1",
    "Album",
    0x0001,
    0x0001,
    FALSE,
    WRITE_REPORT_DELAY_IN_SECONDS,
    BUFFER_STATUS_REPORT_DELAY_IN_SECONDS
    );
    
// Check for correct reply
if (  l__EXCEPTION_NUMBER != EN_SUCCESS )
{
// Handle error here...
}

// Do something with CdvdBurnerGrabber device object here...        

// Destroy the CdvdBurnerGrabber
StarBurn_Destroy( &l__PVOID__CdvdBurnerGrabber );

// Just check for pointer (paranoid?)
if ( l__PVOID__CdvdBurnerGrabber != NULL )
{
// Handle error here...
}