37 "Could not allocate new auxiliary object", 0, 0);
52 #ifdef Libburn_dvd_always_obs_paD
95 "Out of virtual memory", 0, 0);
99 (*to)->text_packs = NULL;
100 (*to)->num_text_packs = 0;
103 if ((*to)->text_packs == NULL)
152 "Bad combination of write_type and block_type", 0, 0);
158 goto bad_combination;
161 goto bad_combination;
207 int has_mediacatalog)
213 unsigned char mediacatalog[13])
222 opts->
multi = !!multi;
247 unsigned char *text_packs,
248 int num_packs,
int flag)
251 unsigned char *pack_buffer = NULL;
257 "Too many CD-TEXT packs", 0, 0);
278 "CD-TEXT pack CRC mismatch", 0, 0);
280 }
else if (ret < 0) {
283 "CD-TEXT pack CRC mismatch had to be corrected",
289 memcpy(pack_buffer, text_packs, num_packs * 18);
321 int ret, would_do_sao = 0;
328 "MEDIA: unsuitable BD-R Pseudo Overwrite formatting, ");
334 strcat(reasons,
"MEDIA: closed or not recordable, ");
336 strcat(reasons,
"MEDIA: no writeable media detected, ");
341 "No suitable media detected", 0, 0);
347 strcat(reasons,
"cannot recognize job demands, ");
352 strcat(reasons,
"audio track prohibited by non-CD, ");
354 strcat(reasons,
"exotic track prohibited by non-CD, ");
359 reason_pt = reasons + strlen(reasons);
360 strcat(reasons,
"SAO: ");
362 strcat(reasons,
"write type SAO works only on blank media, ");
369 strcat(reasons,
"cannot inquire write mode capabilities, ");
371 }
else if (ret == 0) {
372 strcat(reasons,
"no SAO offered by drive and media, ");
375 if ((opts->
multi || demands.multi_session) &&
377 strcat(reasons,
"multi session capability lacking, ");
378 if (demands.will_append)
379 strcat(reasons,
"appended session capability lacking, ");
381 strcat(reasons,
"multi track capability lacking, ");
382 if (demands.unknown_track_size == 1 &&
384 strcat(reasons,
"track size unpredictable, ");
385 if (demands.mixed_mode)
386 strcat(reasons,
"tracks of different modes mixed, ");
388 strcat(reasons,
"non-data track on non-cd, ");
392 strcat(reasons,
"drive dislikes block type, ");
394 strcat(reasons,
"cd sao cannot do media fill up yet, ");
395 if (strcmp(reason_pt,
"SAO: ") != 0)
398 if (demands.unknown_track_size == 2 && (!(flag & 1)) &&
400 strcat(reasons,
"would have to use default track sizes, ");
414 strcat(reasons,
"CD-TEXT: write type SAO required, ");
419 reason_pt = reasons + strlen(reasons);
420 strcat(reasons,
"TAO: ");
426 strcat(reasons,
"no TAO offered by drive and media, ");
430 strcat(reasons,
"multi session capability lacking, ");
432 strcat(reasons,
"multi track capability lacking, ");
434 strcat(reasons,
"non-data track on non-cd, ");
438 strcat(reasons,
"drive dislikes block type, ");
439 if (strcmp(reason_pt,
"TAO: ") != 0)
449 if (would_do_sao && !(flag & 1))
460 reason_pt = reasons + strlen(reasons);
461 strcat(reasons,
"RAW: ");
463 strcat(reasons,
"write type RAW prohibited by non-cd, ");
465 strcat(reasons,
"write type RAW works only on blank media, ");
468 strcat(reasons,
"drive dislikes block type, ");
469 if (strcmp(reason_pt,
"RAW: ") != 0)
483 "simulation of write job not supported by drive and media, ");
492 "Drive offers no suitable write mode with this job",
525 if (obs != 0 && obs != 32 * 1024 && obs != 64 * 1024)
543 else if (rhythm == 0)
545 else if (rhythm == 1)
547 else if (rhythm >= 32)
582 int hardware_error_recovery)
588 int report_recovered_errors)
594 int transfer_damaged_blocks)
601 hardware_error_retries)
int burn_cdtext_crc_mismatches(unsigned char *packs, int num_packs, int flag)
int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt, struct burn_multi_caps **caps, int flag)
int burn_drive_get_bd_r_pow(struct burn_drive *d)
int burn_disc_free_multi_caps(struct burn_multi_caps **caps)
int burn_disc_get_write_mode_demands(struct burn_disc *disc, struct burn_write_opts *opts, struct burn_disc_mode_demands *result, int flag)
#define BURN_FREE_MEM(pt)
#define BURN_ALLOC_MEM(pt, typ, count)
int libdax_msgs_submit(struct libdax_msgs *m, int origin, int error_code, int severity, int priority, char *msg_text, int os_errno, int flag)
int libdax_msgs__text_to_sev(char *severity_name, int *severity, int flag)
#define LIBDAX_MSGS_SEV_FATAL
#define LIBDAX_MSGS_PRIO_HIGH
#define LIBDAX_MSGS_SEV_SORRY
#define LIBDAX_MSGS_SEV_WARNING
#define LIBDAX_MSGS_SEV_FAILURE
void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad)
int burn_write_opts_set_simulate(struct burn_write_opts *opts, int sim)
void burn_read_opts_transfer_damaged_blocks(struct burn_read_opts *opts, int transfer_damaged_blocks)
void burn_write_opts_free(struct burn_write_opts *opts)
void burn_write_opts_set_fail21h_sev(struct burn_write_opts *opts, char *severity)
void burn_read_opts_set_hardware_error_retries(struct burn_read_opts *opts, unsigned char hardware_error_retries)
enum burn_write_types burn_write_opts_auto_write_type(struct burn_write_opts *opts, struct burn_disc *disc, char reasons[4096], int flag)
void burn_write_opts_set_has_mediacatalog(struct burn_write_opts *opts, int has_mediacatalog)
void burn_write_opts_set_format(struct burn_write_opts *opts, int format)
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rhythm)
void burn_write_opts_set_stream_recording(struct burn_write_opts *opts, int value)
void burn_write_opts_set_fillup(struct burn_write_opts *opts, int fill_up_media)
int burn_write_opts_set_underrun_proof(struct burn_write_opts *opts, int underrun_proof)
void burn_read_opts_read_subcodes_data(struct burn_read_opts *opts, int subcodes_data)
void burn_read_opts_read_subcodes_audio(struct burn_read_opts *opts, int subcodes_audio)
struct burn_drive * burn_write_opts_get_drive(struct burn_write_opts *opts)
void burn_read_opts_set_c2errors(struct burn_read_opts *opts, int c2errors)
void burn_write_opts_set_dvd_obs(struct burn_write_opts *opts, int obs)
struct libdax_msgs * libdax_messenger
void burn_write_opts_set_toc_entries(struct burn_write_opts *opts, int count, struct burn_toc_entry *toc_entries)
void burn_write_opts_set_force(struct burn_write_opts *opts, int use_force)
void burn_read_opts_set_raw(struct burn_read_opts *opts, int raw)
void burn_write_opts_set_perform_opc(struct burn_write_opts *opts, int opc)
struct burn_read_opts * burn_read_opts_new(struct burn_drive *drive)
void burn_read_opts_set_hardware_error_recovery(struct burn_read_opts *opts, int hardware_error_recovery)
void burn_read_opts_report_recovered_errors(struct burn_read_opts *opts, int report_recovered_errors)
void burn_write_opts_set_start_byte(struct burn_write_opts *opts, off_t value)
int burn_write_opts_clone(struct burn_write_opts *from, struct burn_write_opts **to, int flag)
void burn_write_opts_set_multi(struct burn_write_opts *opts, int multi)
void burn_read_opts_free(struct burn_read_opts *opts)
struct burn_write_opts * burn_write_opts_new(struct burn_drive *drive)
int burn_write_opts_set_leadin_text(struct burn_write_opts *opts, unsigned char *text_packs, int num_packs, int flag)
void burn_write_opts_set_mediacatalog(struct burn_write_opts *opts, unsigned char mediacatalog[13])
int burn_write_opts_set_write_type(struct burn_write_opts *opts, enum burn_write_types write_type, int block_type)
#define Libburn_stdio_fsync_limiT
#define Libburn_leadin_cdtext_packs_maX
int sector_get_outmode(enum burn_write_types write_type, enum burn_block_types block_type)
int spc_block_type(enum burn_block_types b)
enum burn_disc_status status
int current_is_cd_profile
struct scsi_mode_data * mdata
unsigned int transfer_damaged_blocks
unsigned char hardware_error_retries
unsigned int subcodes_audio
unsigned int subcodes_data
unsigned int report_recovered_errors
unsigned int hardware_error_recovery
struct burn_drive * drive
int no_text_pack_crc_check
struct burn_toc_entry * toc_entry
enum burn_block_types block_type
struct burn_drive * drive
unsigned char * text_packs
enum burn_write_types write_type
unsigned int underrun_proof
unsigned char mediacatalog[13]