"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libburn/libburn.h" between
xorriso-1.5.2.tar.gz and xorriso-1.5.4.tar.gz

About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.

libburn.h  (xorriso-1.5.2):libburn.h  (xorriso-1.5.4)
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
/* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens
Copyright (c) 2006 - 2019 Thomas Schmitt <scdbackup@gmx.net> Copyright (c) 2006 - 2021 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
This is the official API definition of libburn. This is the official API definition of libburn.
*/ */
/* Important: If you add a public API function then add its name to file /* Important: If you add a public API function then add its name to file
libburn/libburn.ver libburn/libburn.ver
*/ */
#ifndef LIBBURN_H #ifndef LIBBURN_H
skipping to change at line 31 skipping to change at line 31
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
or take special precautions to interface with the library by 64 bit integers or take special precautions to interface with the library by 64 bit integers
where this .h files prescribe off_t. where this .h files prescribe off_t.
To prevent 64 bit file i/o in the library would keep the application from To prevent 64 bit file i/o in the library would keep the application from
processing tracks of more than 2 GB size. processing tracks of more than 2 GB size.
*/ */
#include <sys/types.h> #include <sys/types.h>
/* For struct timeval */
#include <sys/time.h>
#ifndef DOXYGEN #ifndef DOXYGEN
#if defined(__cplusplus) #if defined(__cplusplus)
#define BURN_BEGIN_DECLS \ #define BURN_BEGIN_DECLS \
namespace burn { \ namespace burn { \
extern "C" { extern "C" {
#define BURN_END_DECLS \ #define BURN_END_DECLS \
} \ } \
} }
#else #else
skipping to change at line 145 skipping to change at line 148
currently unsupported, (for DVD Incremental Streaming use TAO) currently unsupported, (for DVD Incremental Streaming use TAO)
*/ */
BURN_WRITE_PACKET, BURN_WRITE_PACKET,
/** With CD: Track At Once recording /** With CD: Track At Once recording
2s gaps between tracks, no fonky lead-ins 2s gaps between tracks, no fonky lead-ins
With sequential DVD-R[W]: Incremental Streaming With sequential DVD-R[W]: Incremental Streaming
With DVD+R and BD-R: Track of open size With DVD+R and BD-R: Track of open size
With DVD-RAM, DVD+RW, BD-RE: Random Writeable (used sequentially) With DVD-RAM, DVD+RW, BD-RE: Random Writeable (used sequentially)
With overwriteable DVD-RW: Rigid Restricted Overwrite With overwritable DVD-RW: Rigid Restricted Overwrite
*/ */
BURN_WRITE_TAO, BURN_WRITE_TAO,
/** With CD: Session At Once /** With CD: Session At Once
Block type MUST be BURN_BLOCK_SAO Block type MUST be BURN_BLOCK_SAO
ts A70122: Currently not capable of mixing data and audio tracks. ts A70122: Currently not capable of mixing data and audio tracks.
With sequential DVD-R[W]: Disc-at-once, DAO With sequential DVD-R[W]: Disc-at-once, DAO
Single session, single track, fixed size mandatory, (-dvd-compat) Single session, single track, fixed size mandatory, (-dvd-compat)
With other DVD or BD media: same as BURN_WRITE_TAO but may demand With other DVD or BD media: same as BURN_WRITE_TAO but may demand
skipping to change at line 236 skipping to change at line 239
enum burn_disc_status enum burn_disc_status
{ {
/** The current status is not yet known */ /** The current status is not yet known */
BURN_DISC_UNREADY, BURN_DISC_UNREADY,
/** The drive holds a blank disc. It is ready for writing from scratch. /** The drive holds a blank disc. It is ready for writing from scratch.
Unused multi-session media: Unused multi-session media:
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, BD-R CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, BD-R
Blanked multi-session media (i.e. treated by burn_disc_erase()) Blanked multi-session media (i.e. treated by burn_disc_erase())
CD-RW, DVD-RW CD-RW, DVD-RW
Overwriteable media with or without valid data Overwritable media with or without valid data
DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE
*/ */
BURN_DISC_BLANK, BURN_DISC_BLANK,
/** There is no disc at all in the drive */ /** There is no disc at all in the drive */
BURN_DISC_EMPTY, BURN_DISC_EMPTY,
/** There is an incomplete disc in the drive. It is ready for appending /** There is an incomplete disc in the drive. It is ready for appending
another session. another session.
Written but not yet closed multi-session media Written but not yet closed multi-session media
skipping to change at line 661 skipping to change at line 664
/** The total number of sessions */ /** The total number of sessions */
int sessions; int sessions;
/** Current session.*/ /** Current session.*/
int session; int session;
/** The total number of tracks */ /** The total number of tracks */
int tracks; int tracks;
/** Current track. */ /** Current track. */
int track; int track;
/** The total number of indices */ /** The total number of indices */
int indices; int indices;
/** Curent index. */ /** Current index. */
int index; int index;
/** The starting logical block address */ /** The starting logical block address */
int start_sector; int start_sector;
/** On write: The number of sectors. /** On write: The number of sectors.
On blank: 0x10000 as upper limit for relative progress steps */ On blank: 0x10000 as upper limit for relative progress steps */
int sectors; int sectors;
/** On write: The current sector being processed. /** On write: The current sector being processed.
On blank: Relative progress steps 0 to 0x10000 */ On blank: Relative progress steps 0 to 0x10000 */
int sector; int sector;
skipping to change at line 1291 skipping to change at line 1294
libburn will refuse to write to such a medium. libburn will refuse to write to such a medium.
@param drive The drive to query. @param drive The drive to query.
@return 1 if BD-R Pseudo Overwrite , 0 if not BD-R or not POW @return 1 if BD-R Pseudo Overwrite , 0 if not BD-R or not POW
@since 1.4.8 @since 1.4.8
*/ */
int burn_drive_get_bd_r_pow(struct burn_drive *drive); int burn_drive_get_bd_r_pow(struct burn_drive *drive);
/* ts A61020 */ /* ts A61020 */
/** Returns start and end lba of the media which is currently inserted /** Returns start and end lba of the media which is currently inserted
in the given drive. The drive has to be grabbed to have hope for reply. in the given drive. The drive has to be grabbed to have hope for reply.
Shortcomming (not a feature): unless burn_disc_read_atip() was called Shortcoming (not a feature): unless burn_disc_read_atip() was called
only blank media will return valid info. only blank media will return valid info.
@param drive The drive to query. @param drive The drive to query.
@param start_lba Returns the start lba value @param start_lba Returns the start lba value
@param end_lba Returns the end lba value @param end_lba Returns the end lba value
@param flag Bitfield for control purposes (unused yet, submit 0) @param flag Bitfield for control purposes (unused yet, submit 0)
@return 1 if lba values are valid , 0 if invalid @return 1 if lba values are valid , 0 if invalid
@since 0.2.6 @since 0.2.6
*/ */
int burn_drive_get_start_end_lba(struct burn_drive *drive, int burn_drive_get_start_end_lba(struct burn_drive *drive,
int *start_lba, int *end_lba, int flag); int *start_lba, int *end_lba, int flag);
skipping to change at line 1348 skipping to change at line 1351
@param valid Replies bits which indicate the validity of other reply @param valid Replies bits which indicate the validity of other reply
parameters or the state of certain CD info bits: parameters or the state of certain CD info bits:
bit0= disc_type is valid bit0= disc_type is valid
bit1= disc_id is valid bit1= disc_id is valid
bit2= bar_code is valid bit2= bar_code is valid
bit3= disc_app_code is valid bit3= disc_app_code is valid
bit4= Disc is unrestricted (URU bit, 51h READ DISC INFO) bit4= Disc is unrestricted (URU bit, 51h READ DISC INFO)
This seems to be broken with my drives. The bit is This seems to be broken with my drives. The bit is
0 and the validity bit for disc_app_code is 0 too. 0 and the validity bit for disc_app_code is 0 too.
bit5= Disc is nominally erasable (Erasable bit) bit5= Disc is nominally erasable (Erasable bit)
This will be set with overwriteable media which This will be set with overwritable media which
libburn normally considers to be unerasable blank. libburn normally considers to be unerasable blank.
@return 1 success, <= 0 an error occurred @return 1 success, <= 0 an error occurred
@since 0.7.2 @since 0.7.2
*/ */
int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80], int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80],
unsigned int *disc_id, char bar_code[9], int *app_code, unsigned int *disc_id, char bar_code[9], int *app_code,
int *valid); int *valid);
/* ts B11201 */ /* ts B11201 */
/** Read the array of CD-TEXT packs from the Lead-in of an audio CD. /** Read the array of CD-TEXT packs from the Lead-in of an audio CD.
skipping to change at line 1767 skipping to change at line 1770
/** The length of a rejection reasons string for burn_precheck_write() and /** The length of a rejection reasons string for burn_precheck_write() and
burn_write_opts_auto_write_type() . burn_write_opts_auto_write_type() .
*/ */
#define BURN_REASONS_LEN 4096 #define BURN_REASONS_LEN 4096
/* ts A70219 */ /* ts A70219 */
/** Examines a completed setup for burn_disc_write() whether it is permissible /** Examines a completed setup for burn_disc_write() whether it is permissible
with drive and media. This function is called by burn_disc_write() but with drive and media. This function is called by burn_disc_write() but
an application might be interested in this check in advance. an application might be interested in this check in advance.
@param o The options for the writing operation. @param o The options for the writing operation.
@param disc The descrition of the disc to be created @param disc The description of the disc to be created
@param reasons Eventually returns a list of rejection reason statements @param reasons Eventually returns a list of rejection reason statements
@param silent 1= do not issue error messages , 0= report problems @param silent 1= do not issue error messages , 0= report problems
@return 1 ok, -1= no recordable media detected, 0= other failure @return 1 ok, -1= no recordable media detected, 0= other failure
@since 0.3.4 @since 0.3.4
*/ */
int burn_precheck_write(struct burn_write_opts *o, struct burn_disc *disc, int burn_precheck_write(struct burn_write_opts *o, struct burn_disc *disc,
char reasons[BURN_REASONS_LEN], int silent); char reasons[BURN_REASONS_LEN], int silent);
/** Write a disc in the drive. The drive must be grabbed successfully before /** Write a disc in the drive. The drive must be grabbed successfully before
calling this function. Always ensure that the drive reports a status of calling this function. Always ensure that the drive reports a status of
skipping to change at line 2907 skipping to change at line 2910
/** Tells how many source bytes have been read and how many data bytes have /** Tells how many source bytes have been read and how many data bytes have
been written by the track during burn. been written by the track during burn.
@param t The track to inquire @param t The track to inquire
@param read_bytes Number of bytes read from the track source @param read_bytes Number of bytes read from the track source
@param written_bytes Number of bytes written to track @param written_bytes Number of bytes written to track
@since 0.2.6 @since 0.2.6
*/ */
int burn_track_get_counters(struct burn_track *t, int burn_track_get_counters(struct burn_track *t,
off_t *read_bytes, off_t *written_bytes); off_t *read_bytes, off_t *written_bytes);
/** Sets drive read and write speed /** Sets drive read and write speed.
Note: "k" is 1000, not 1024. Note: "k" is 1000, not 1024.
1xCD = 176.4 k/s, 1xDVD = 1385 k/s, 1xBD = 4496 k/s. 1xCD = 176.4 k/s, 1xDVD = 1385 k/s, 1xBD = 4496 k/s.
Fractional speeds should be rounded up. Like 4xCD = 706. Fractional speeds should be rounded up. Like 4xCD = 706.
@param d The drive to set speed for @param d The drive to set speed for
@param read Read speed in k/s (0 is max, -1 is min). @param read Read speed in k/s (0 is max, -1 is min).
@param write Write speed in k/s (0 is max, -1 is min). @param write Write speed in k/s (0 is max, -1 is min).
*/ */
void burn_drive_set_speed(struct burn_drive *d, int read, int write); void burn_drive_set_speed(struct burn_drive *d, int read, int write);
/* ts C00822 */
/** Sets drive read and write speed using the "Exact" bit of SCSI command
SET STREAMING. This command will be used even if a CD medium is present.
MMC specifies that with the Exact bit the desired speed settings shall
either be obeyed by the drive exactly, or that the drive shall indicate
failure and not accept the settings.
But many drives reply no error and nevertheless adjust their read speed
only coarsly or ignore the setting after a few MB of fast read attempts.
The call parameters have the same meaning as with burn_drive_set_speed().
@param d The drive to set speed for. It must be a role 1 drive.
@param read Read speed in k/s (0 is max, -1 is min).
@param write Write speed in k/s (0 is max, -1 is min).
@return 1=success , 0=failure
@since 1.5.4
*/
int burn_drive_set_speed_exact(struct burn_drive *d, int read, int write);
/* ts C00822 */
/** Waits until the time has elapsed since the given previous time to transmit
the given byte count with the given speed in KB/second (KB = 1000 bytes).
This call may be used between random access read operations like
burn_read_data() in order to force a slower speed than the drive is
willing to use if it gets read requests as fast as it delivers data.
The parameter us_corr carries microseconds of time deviations from one
call to the next one. Such deviations may happen because of small
inexactnesses of the sleeper function and because of temporary delays
in the data supply so that sleeping for a negative time span would have
been necessary. The next call will reduce or enlarge its own sleeping
period by this value.
@param kb_per_second the desired speed in 1000 bytes per second.
Supplied by the caller.
@max_corr the maximum backlog in microseconds which shall
be compensated by the next call. Supplied by the
caller. Not more than 1 billion = 1000 seconds.
@param prev_time time keeper updated by burn_nominal_slowdown().
The caller provides the memory and elsewise should
carry it unchanged from call to call.
@param us_corr updated by burn_nominal_slowdown(). See above.
The caller provides the memory and elsewise should
carry it unchanged from call to call.
@param b_since_prev byte count since the previous call. This number
has to be counted and supplied by the caller.
@param flag Bitfield for control purposes:
bit0= initialize *prev_time and *us_corr,
ignore other parameters, do not wait
@return 2=no wait because no usable kb_per_second , 1=success , 0=failure
@since 1.5.4
*/
int burn_nominal_slowdown(int kb_per_second, int max_corr,
struct timeval *prev_time,
int *us_corr, off_t b_since_prev, int flag);
/* ts A70711 */ /* ts A70711 */
/** Controls the behavior with writing when the drive buffer is suspected to /** Controls the behavior with writing when the drive buffer is suspected to
be full. To check and wait for enough free buffer space before writing be full. To check and wait for enough free buffer space before writing
will move the task of waiting from the operating system's device driver will move the task of waiting from the operating system's device driver
to libburn. While writing is going on and waiting is enabled, any write to libburn. While writing is going on and waiting is enabled, any write
operation will be checked whether it will fill the drive buffer up to operation will be checked whether it will fill the drive buffer up to
more than max_percent. If so, then waiting will happen until the buffer more than max_percent. If so, then waiting will happen until the buffer
fill is predicted with at most min_percent. fill is predicted with at most min_percent.
Thus: if min_percent < max_percent then transfer rate will oscillate. Thus: if min_percent < max_percent then transfer rate will oscillate.
This may allow the driver to operate on other devices, e.g. a disk from This may allow the driver to operate on other devices, e.g. a disk from
skipping to change at line 3232 skipping to change at line 3290
@param pad 1 means to pad up in any case, 0 means automatic decision. @param pad 1 means to pad up in any case, 0 means automatic decision.
@since 1.2.4 @since 1.2.4
*/ */
void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad); void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad);
/* ts A91115 */ /* ts A91115 */
/** Sets the rhythm by which stdio pseudo drives force their output data to /** Sets the rhythm by which stdio pseudo drives force their output data to
be consumed by the receiving storage device. This forcing keeps the memory be consumed by the receiving storage device. This forcing keeps the memory
from being clogged with lots of pending data for slow devices. from being clogged with lots of pending data for slow devices.
@param opts The write opts to change @param opts The write opts to change
@param rythm Number of 2KB output blocks after which fsync(2) is @param rhythm Number of 2KB output blocks after which fsync(2) is
performed. performed.
-1 means no fsync() -1 means no fsync()
0 means default 0 means default
1 means fsync() only at end, @since 1.3.8 (noop before 1.3.8) 1 means fsync() only at end, @since 1.3.8 (noop before 1.3.8)
elsewise the value must be >= 32. elsewise the value must be >= 32.
Default is currently 8192 = 16 MB. Default is currently 8192 = 16 MB.
@since 0.7.4 @since 0.7.4
*/ */
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rythm); void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rhythm);
/** Sets whether to read in raw mode or not /** Sets whether to read in raw mode or not
@param opts The read opts to change @param opts The read opts to change
@param raw_mode If non-zero, reading will be done in raw mode, so that every thing in the data tracks on the @param raw_mode If non-zero, reading will be done in raw mode, so that every thing in the data tracks on the
disc is read, including headers. disc is read, including headers.
*/ */
void burn_read_opts_set_raw(struct burn_read_opts *opts, int raw_mode); void burn_read_opts_set_raw(struct burn_read_opts *opts, int raw_mode);
/** Sets whether to report c2 errors or not /** Sets whether to report c2 errors or not
@param opts The read opts to change @param opts The read opts to change
skipping to change at line 3516 skipping to change at line 3574
*/ */
enum burn_write_types advised_write_mode; enum burn_write_types advised_write_mode;
/** Write mode as given by parameter wt of burn_disc_get_multi_caps(). /** Write mode as given by parameter wt of burn_disc_get_multi_caps().
*/ */
enum burn_write_types selected_write_mode; enum burn_write_types selected_write_mode;
/** Profile number which was current when the reply was generated */ /** Profile number which was current when the reply was generated */
int current_profile; int current_profile;
/** Wether the current profile indicates CD media. 1=yes, 0=no */ /** Whether the current profile indicates CD media. 1=yes, 0=no */
int current_is_cd_profile; int current_is_cd_profile;
/* ts A70528 */ /* ts A70528 */
/* @since 0.3.8 */ /* @since 0.3.8 */
/** Wether the current profile is able to perform simulated write */ /** Whether the current profile is able to perform simulated write */
int might_simulate; int might_simulate;
}; };
/** Allocates a struct burn_multi_caps (see above) and fills it with values /** Allocates a struct burn_multi_caps (see above) and fills it with values
which are appropriate for the drive and the loaded media. The drive which are appropriate for the drive and the loaded media. The drive
must be grabbed for this call. The returned structure has to be disposed must be grabbed for this call. The returned structure has to be disposed
via burn_disc_free_multi_caps() when no longer needed. via burn_disc_free_multi_caps() when no longer needed.
@param d The drive to inquire @param d The drive to inquire
@param wt With BURN_WRITE_NONE the best capabilities of all write modes @param wt With BURN_WRITE_NONE the best capabilities of all write modes
get returned. If set to a write mode like BURN_WRITE_SAO the get returned. If set to a write mode like BURN_WRITE_SAO the
skipping to change at line 3640 skipping to change at line 3698
|| (minor == burn_header_version_minor || (minor == burn_header_version_minor
&& micro >= burn_header_version_micro)))) { && micro >= burn_header_version_micro)))) {
... Young enough. Go on with program run .... ... Young enough. Go on with program run ....
} else { } else {
... Too old. Do not use this libburn version ... ... Too old. Do not use this libburn version ...
} }
*/ */
#define burn_header_version_major 1 #define burn_header_version_major 1
#define burn_header_version_minor 5 #define burn_header_version_minor 5
#define burn_header_version_micro 2 #define burn_header_version_micro 4
/** Note: /** Note:
Above version numbers are also recorded in configure.ac because libtool Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time. wants them as parameters at build time.
For the library compatibility check, BURN_*_VERSION in configure.ac For the library compatibility check, BURN_*_VERSION in configure.ac
are not decisive. Only the three numbers above do matter. are not decisive. Only the three numbers above do matter.
*/ */
/** Usage discussion: /** Usage discussion:
Some developers of the libburnia project have differing Some developers of the libburnia project have differing
opinions how to ensure the compatibility of libaries opinions how to ensure the compatibility of libraries
and applications. and applications.
It is about whether to use at compile time and at runtime It is about whether to use at compile time and at runtime
the version numbers isoburn_header_version_* provided here. the version numbers isoburn_header_version_* provided here.
Thomas Schmitt advises to use them. Thomas Schmitt advises to use them.
Vreixo Formoso advises to use other means. Vreixo Formoso advises to use other means.
At compile time: At compile time:
Vreixo Formoso advises to leave proper version matching Vreixo Formoso advises to leave proper version matching
skipping to change at line 3892 skipping to change at line 3950
@return 0 = no abort was triggered @return 0 = no abort was triggered
>0 = action that was triggered (action 0 is reported as 1) >0 = action that was triggered (action 0 is reported as 1)
@since 0.7.8 @since 0.7.8
*/ */
int burn_is_aborting(int flag); int burn_is_aborting(int flag);
/* ts A70811 */ /* ts A70811 */
/** Write data in random access mode. /** Write data in random access mode.
The drive must be grabbed successfully before calling this function which The drive must be grabbed successfully before calling this function which
circumvents usual libburn session processing and rather writes data without circumvents usual libburn session processing and rather writes data without
preparations or finalizing. This will work only with overwriteable media preparations or finalizing. This will work only with overwritable media
which are also suitable for burn_write_opts_set_start_byte(). The same which are also suitable for burn_write_opts_set_start_byte(). The same
address alignment restrictions as with this function apply. I.e. for DVD address alignment restrictions as with this function apply. I.e. for DVD
it is best to align to 32 KiB blocks (= 16 LBA units). The amount of data it is best to align to 32 KiB blocks (= 16 LBA units). The amount of data
to be written is subject to the same media dependent alignment rules. to be written is subject to the same media dependent alignment rules.
Again, 32 KiB is most safe. Again, 32 KiB is most safe.
Call burn_disc_get_multi_caps() can obtain the necessary media info. See Call burn_disc_get_multi_caps() can obtain the necessary media info. See
resulting struct burn_multi_caps elements .start_adr , .start_alignment , resulting struct burn_multi_caps elements .start_adr , .start_alignment ,
.start_range_low , .start_range_high . .start_range_low , .start_range_high .
Other than burn_disc_write() this is a synchronous call which returns Other than burn_disc_write() this is a synchronous call which returns
only after the write transaction has ended (successfully or not). So it is only after the write transaction has ended (successfully or not). So it is
skipping to change at line 3927 skipping to change at line 3985
@param flag Bitfield for control purposes: @param flag Bitfield for control purposes:
bit0 = flush the drive buffer after eventual writing bit0 = flush the drive buffer after eventual writing
@return 1=successful , <=0 : number of transferred bytes * -1 @return 1=successful , <=0 : number of transferred bytes * -1
@since 0.4.0 @since 0.4.0
*/ */
int burn_random_access_write(struct burn_drive *d, off_t byte_address, int burn_random_access_write(struct burn_drive *d, off_t byte_address,
char *data, off_t data_count, int flag); char *data, off_t data_count, int flag);
/* ts A81215 */ /* ts A81215 */
/** Inquire the maximum amount of readable data. /** Inquire the maximum amount of readable data.
It is supposed that all LBAs in the range from 0 to capacity - 1 On DVD and BD it is supposed that all LBAs in the range from 0 to
can be read via burn_read_data() although some of them may never have been capacity - 1 can be read via burn_read_data() although some of them may
recorded. If tracks are recognizable then it is better to only read never have been recorded. With multi-session CD there have to be
LBAs which are part of some track. expected unreadable TAO Run-out blocks.
If tracks are recognizable then it is better to only read LBAs which
are part of some track and on CD to be cautious about the last two blocks
of each track which might be TAO Run-out blocks.
If the drive is actually a large file or block device, then the capacity If the drive is actually a large file or block device, then the capacity
is curbed to a maximum of 0x7ffffff0 blocks = 4 TB - 32 KB. is curbed to a maximum of 0x7ffffff0 blocks = 4 TB - 32 KB.
@param d The drive from which to read @param d The drive from which to read
@param capacity Will return the result if valid @param capacity Will return the result if valid
@param flag Bitfield for control purposes: Unused yet, submit 0. @param flag Bitfield for control purposes: Unused yet, submit 0.
@return 1=successful , <=0 an error occurred @return 1=successful , <=0 an error occurred
@since 0.6.0 @since 0.6.0
*/ */
int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag); int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag);
skipping to change at line 4160 skipping to change at line 4221
/* Maximum size for address paths and fmt_info strings */ /* Maximum size for address paths and fmt_info strings */
#define LIBDAX_AUDIOXTR_STRLEN 4096 #define LIBDAX_AUDIOXTR_STRLEN 4096
/** Extractor object encapsulating intermediate states of extraction. /** Extractor object encapsulating intermediate states of extraction.
The clients of libdax_audioxtr shall only allocate pointers to this The clients of libdax_audioxtr shall only allocate pointers to this
struct and get a storage object via libdax_audioxtr_new(). struct and get a storage object via libdax_audioxtr_new().
Appropriate initial value for the pointer is NULL. Appropriate initial value for the pointer is NULL.
*/ */
struct libdax_audioxtr; struct libdax_audioxtr;
/** Open an audio file, check wether suitable, create extractor object. /** Open an audio file, check whether suitable, create extractor object.
@param xtr Opaque handle to extractor. Gets attached extractor object. @param xtr Opaque handle to extractor. Gets attached extractor object.
@param path Address of the audio file to extract. "-" is stdin (but might @param path Address of the audio file to extract. "-" is stdin (but might
be not suitable for all futurely supported formats). be not suitable for all futurely supported formats).
@param flag Bitfield for control purposes (unused yet, submit 0) @param flag Bitfield for control purposes (unused yet, submit 0)
@return >0 success @return >0 success
0 unsuitable format 0 unsuitable format
-1 severe error -1 severe error
-2 path not found -2 path not found
@since 0.2.4 @since 0.2.4
*/ */
skipping to change at line 4251 skipping to change at line 4312
#ifndef DOXYGEN #ifndef DOXYGEN
BURN_END_DECLS BURN_END_DECLS
#endif #endif
/* ts A91205 */ /* ts A91205 */
/* The following experiments may be interesting in future: /* The following experiments may be interesting in future:
*/ */
/* Perform OPC explicitely. /* Perform OPC explicitly.
# define Libburn_pioneer_dvr_216d_with_opC 1 # define Libburn_pioneer_dvr_216d_with_opC 1
*/ */
/* Load mode page 5 and modify it rather than composing from scratch. /* Load mode page 5 and modify it rather than composing from scratch.
# define Libburn_pioneer_dvr_216d_load_mode5 1 # define Libburn_pioneer_dvr_216d_load_mode5 1
*/ */
/* Inquire drive events and react by reading configuration or starting unit. /* Inquire drive events and react by reading configuration or starting unit.
# define Libburn_pioneer_dvr_216d_get_evenT 1 # define Libburn_pioneer_dvr_216d_get_evenT 1
*/ */
 End of changes. 20 change blocks. 
21 lines changed or deleted 82 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)