diff --git a/libisoburn/isoburn.c b/libisoburn/isoburn.c index 07df6ab6..742734e2 100644 --- a/libisoburn/isoburn.c +++ b/libisoburn/isoburn.c @@ -417,6 +417,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d, iso_write_opts_set_always_gmt(wopts, opts->always_gmt); iso_write_opts_set_rrip_version_1_10(wopts, opts->rrip_version_1_10); iso_write_opts_set_dir_rec_mtime(wopts, opts->dir_rec_mtime); + iso_write_opts_set_aaip_susp_1_10(wopts, opts->aaip_susp_1_10); iso_write_opts_set_sort_files(wopts, opts->sort_files); iso_write_opts_set_replace_mode(wopts, opts->replace_dir_mode, opts->replace_file_mode, opts->replace_uid, opts->replace_gid); @@ -787,6 +788,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag) o->always_gmt= 0; o->rrip_version_1_10= 0; o->dir_rec_mtime= 0; + o->aaip_susp_1_10= 0; o->sort_files= 0; o->replace_dir_mode= 0; o->replace_file_mode= 0; @@ -858,6 +860,7 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax) o->always_gmt= !!(relax & isoburn_igopt_always_gmt); o->rrip_version_1_10= !!(relax & isoburn_igopt_rrip_version_1_10); o->dir_rec_mtime= !!(relax & isoburn_igopt_dir_rec_mtime); + o->aaip_susp_1_10= !!(relax & isoburn_igopt_aaip_susp_1_10); return(1); } @@ -867,7 +870,9 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax) *relax= (!!o->omit_version_numbers) | ((!!o->allow_deep_paths)<<1) | ((!!o->allow_longer_paths)<<2) | ((!!o->max_37_char_filenames)<<3) | ((!!o->no_force_dots)<<4) | ((!!o->allow_lowercase)<<5) | - ((!!o->allow_full_ascii)<<6) | ((!!o->joliet_longer_paths)<<7); + ((!!o->allow_full_ascii)<<6) | ((!!o->joliet_longer_paths)<<7) | + ((!!o->always_gmt)<<8) | ((!!o->rrip_version_1_10)<<9) | + ((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11); return(1); } diff --git a/libisoburn/isoburn.h b/libisoburn/isoburn.h index d61a878c..a1e5a216 100644 --- a/libisoburn/isoburn.h +++ b/libisoburn/isoburn.h @@ -384,6 +384,13 @@ struct isoburn_imgen_opts { */ unsigned int dir_rec_mtime :1; + /** + * Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12. + * I.e. without announcing it by an ER field and thus without the need + * to preceed the RRIP fields by an ES and to preceed the AA field by ES. + */ + unsigned int aaip_susp_1_10 :1; + unsigned int sort_files:1; /**< If files should be sorted based on their weight. */ diff --git a/libisoburn/libisoburn.h b/libisoburn/libisoburn.h index d71f9c28..c645bcbf 100644 --- a/libisoburn/libisoburn.h +++ b/libisoburn/libisoburn.h @@ -921,6 +921,12 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); bit10= dir_rec_mtime Store as ECMA-119 Directory Record timestamp the mtime of the source rather than the image creation time. + bit11= aaip_susp_1_10 + Write AAIP fields without announcing AAIP by an ER field and + without distinguishing RRIP fields from the AAIP field by + prefixed ES fields. This saves 5 to 10 bytes per file and + might avoid problems with readers which only accept RRIP. + SUSP-1.10 allows it, SUSP-1.12 frowns on it. @return 1 success, <=0 failure */ @@ -935,6 +941,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); #define isoburn_igopt_always_gmt 256 #define isoburn_igopt_rrip_version_1_10 512 #define isoburn_igopt_dir_rec_mtime 1024 +#define isoburn_igopt_aaip_susp_1_10 2048 int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax); int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index decf642f..70c07b29 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.01.25.141124" +#define Xorriso_timestamP "2009.01.26.173254"