Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to retrieve and set burn speed using IMAPI2?

Does anyone know how to set CD/DVD burn speed (e.g. 4x, 10x) using IMAPI2?

Also, I first need to get the speeds supported by the media. How can I retrieve them?

like image 515
d.Siva Avatar asked Dec 08 '25 23:12

d.Siva


1 Answers

  1. To set the burn speed you can use the method IDiscFormat2Data::SetWriteSpeed from IDiscFormat2Data interface. It lets you request the maximum speed supported by optical media or specify the wanted burning speed.

  2. In order to retrieve the supported write speeds by the burning device and current media you can use the method IDiscFormat2Data::get_SupportedWriteSpeeds

  3. To check the current write speed you have the IDiscFormat2Data::get_CurrentWriteSpeed method.



Those methods use sectors per second instead of 4x, 10x, etc. You can convert from one to another using the following constants:

  • IMAPI_SECTOR_SIZE Number of bytes in a sector.
  • IMAPI_SECTORS_PER_SECOND_AT_1X_CD Base rate of speed that a CD spins, measured in sectors per second.
  • IMAPI_SECTORS_PER_SECOND_AT_1X_DVD Base rate of speed that a DVD spins, measured in sectors per second.
  • IMAPI_SECTORS_PER_SECOND_AT_1X_BD Base rate of speed that a Blu-ray disc spins, measured in sectors per second.

from imapi2.h header:

#define IMAPI_SECTORS_PER_SECOND_AT_1X_CD      75
#define IMAPI_SECTORS_PER_SECOND_AT_1X_DVD     680
#define IMAPI_SECTORS_PER_SECOND_AT_1X_BD      2195
#define IMAPI_SECTORS_PER_SECOND_AT_1X_HD_DVD  4568
like image 158
rmp Avatar answered Dec 11 '25 13:12

rmp