From a88039e2223afbda8d0cc93be01bc09f546baced Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 23 Jan 2012 09:54:20 +0000 Subject: [PATCH] Counting post-gap as part of track with burn_track_get_sectors() --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/libburn.h | 26 +++++++------------------- libburn/structure.c | 6 ++---- libburn/write.c | 6 +++++- 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index f06eca3..6ea7afa 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2012.01.22.194131" +#define Cdrskin_timestamP "2012.01.19.210418" diff --git a/libburn/libburn.h b/libburn/libburn.h index 3091eeba..93d1cc2 100644 --- a/libburn/libburn.h +++ b/libburn/libburn.h @@ -2619,15 +2619,8 @@ struct burn_source *burn_fd_source_new(int datafd, int subfd, off_t size); @param start The byte address where to start reading bytes for the consumer. inp bytes may get skipped to reach this address. @param size The number of bytes to be delivered to the consumer. - If size is <= 0 then it may be set later by a call of method - set_size(). If it is >= 0, then it can only be changed if - flag bit0 was set with burn_offst_source_new(). - @param flag Bitfield for control purposes - bit0 = Prevent set_size() from overriding interval sizes > 0. - If such a size is already set, then the new one will - only affect the reply of get_size(). - See also above struct burn_source. - @since 1.2.0 + @param flag Bitfield for control purposes (unused yet, submit 0). +>>> bit0 = allow set_size() to override existing sizes > 0 @return Pointer to a burn_source object, later to be freed by burn_source_free(). NULL indicates failure. @since 0.8.8 @@ -3622,17 +3615,12 @@ typedef int (*burn_abort_handler_t)(void *handle, int signum, int flag); @param handle Opaque handle eventually pointing to an application provided memory object - @param handler A function to be called on signals, if the handling bits - in parameter mode are set 0. - It will get parameter handle as argument. flag will be 0. + @param handler A function to be called on signals. It will get handle as + argument. flag will be 0. It should finally call burn_abort(). See there. - If the handler function returns 2 or -2, then the wrapping - signal handler of libburn will return and let the program - continue its operations. Any other return value causes - exit(1). - @param mode : bit0 - bit3: Handling of received signals: - 0 Install libburn wrapping signal handler, which will call - handler(handle, signum, 0) on nearly all signals + @param mode : bit0 - bit3: + Receiving signals: + 0 Call handler(handle, signum, 0) on nearly all signals 1 Enable system default reaction on all signals 2 Try to ignore nearly all signals 10 like mode 2 but handle SIGABRT like with mode 0 diff --git a/libburn/structure.c b/libburn/structure.c index 5e0c990..64bf88b 100644 --- a/libburn/structure.c +++ b/libburn/structure.c @@ -1784,7 +1784,7 @@ overlapping_ba:; else inp_src = crs->file_source; src = burn_offst_source_new(inp_src, crs->offst_source, - (off_t) (file_ba * crs->block_size), (off_t) 0, 1); + (off_t) (file_ba * crs->block_size), (off_t) 0, 0); if (src == NULL) goto out_of_mem; @@ -2051,10 +2051,8 @@ cannot_open:; 0, 0); ret = 0; goto ex; } - ret = burn_track_set_size(crs->track, crs->source_size - + burn_track_set_size(crs->track, crs->source_size - (off_t) (crs->current_file_ba * crs->block_size)); - if (ret <= 0) - goto ex; ret = cue_attach_track(session, crs, 0); if (ret <= 0) diff --git a/libburn/write.c b/libburn/write.c index 7389242..bb748a6 100644 --- a/libburn/write.c +++ b/libburn/write.c @@ -301,7 +301,6 @@ int burn_write_close_session(struct burn_write_opts *o) This is useful only when changes about CD SAO get tested. # define Libburn_write_with_function_print_cuE yes */ -#define Libburn_write_with_function_print_cuE yes #ifdef Libburn_write_with_function_print_cuE @@ -611,6 +610,11 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o, */ track_length = burn_track_get_sectors_2(tar[i], 1); if (track_length < 300 && !burn_track_is_open_ended(tar[i])) { + + +/* >>> ??? Does this work properly with burn_offst_source ? */; + + track_length = 300; if (!tar[i]->pad) tar[i]->pad = 1;