Adapted -chek_media to peculiarities of DVD and BD
This commit is contained in:
parent
167284e78c
commit
36029c0b23
@ -2610,6 +2610,7 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
|||||||
{
|
{
|
||||||
int i, j, ret, total_count= 0, sectors= -1, sector_size= -1, skip_reading;
|
int i, j, ret, total_count= 0, sectors= -1, sector_size= -1, skip_reading;
|
||||||
int prev_quality= -1, quality= -1, retry= 0, profile_no, is_cd= 0;
|
int prev_quality= -1, quality= -1, retry= 0, profile_no, is_cd= 0;
|
||||||
|
int eccb_size= 16;
|
||||||
int start_sec, end_sec, first_value, fret, suspect_tao_end= 0;
|
int start_sec, end_sec, first_value, fret, suspect_tao_end= 0;
|
||||||
char profile_name[80];
|
char profile_name[80];
|
||||||
int start_lba= 0;
|
int start_lba= 0;
|
||||||
@ -2657,11 +2658,16 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
|||||||
goto ex;
|
goto ex;
|
||||||
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
|
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||||
if(ret > 0) {
|
if(ret > 0) {
|
||||||
if(profile_no >= 0x08 && profile_no <= 0x0a)
|
if(profile_no >= 0x08 && profile_no <= 0x0a) {
|
||||||
is_cd= 1;
|
is_cd= 1;
|
||||||
|
eccb_size= 1;
|
||||||
|
} else if(profile_no >= 0x40 && profile_no <= 0x43) {
|
||||||
|
eccb_size= 32;
|
||||||
|
} else if(burn_drive_get_drive_role(drive) != 1) {
|
||||||
|
eccb_size= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(job->sector_map != NULL) {
|
if(job->sector_map != NULL) {
|
||||||
Sectorbitmap_get_layout(job->sector_map, §ors, §or_size, 0);
|
Sectorbitmap_get_layout(job->sector_map, §ors, §or_size, 0);
|
||||||
sector_size/= 2048;
|
sector_size/= 2048;
|
||||||
@ -2815,7 +2821,6 @@ abort_check:;
|
|||||||
goto ex;
|
goto ex;
|
||||||
data_pt= state.chunk[state.chunk_w_idx];
|
data_pt= state.chunk[state.chunk_w_idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
ret= burn_read_data(drive, ((off_t) (i + from_lba)) * (off_t) 2048,
|
ret= burn_read_data(drive, ((off_t) (i + from_lba)) * (off_t) 2048,
|
||||||
data_pt, to_read * (off_t) 2048, &data_count,
|
data_pt, to_read * (off_t) 2048, &data_count,
|
||||||
(4 * !retry) | (16 * !!suspect_tao_end));
|
(4 * !retry) | (16 * !!suspect_tao_end));
|
||||||
@ -2847,10 +2852,12 @@ abort_check:;
|
|||||||
quality= Xorriso_read_quality_tao_enD;
|
quality= Xorriso_read_quality_tao_enD;
|
||||||
else
|
else
|
||||||
quality= Xorriso_read_quality_unreadablE;
|
quality= Xorriso_read_quality_unreadablE;
|
||||||
if(retry)
|
if(retry) /* skip one eccb_size */
|
||||||
to_read= data_count / 2048 + 1;
|
to_read= data_count / 2048 + eccb_size;
|
||||||
} else
|
|
||||||
|
} else { /* (can hardly happen) */
|
||||||
quality= Xorriso_read_quality_partiaL;
|
quality= Xorriso_read_quality_partiaL;
|
||||||
|
}
|
||||||
fret= Xorriso_eval_problem_status(xorriso, ret, 1|2);
|
fret= Xorriso_eval_problem_status(xorriso, ret, 1|2);
|
||||||
if(fret<0)
|
if(fret<0)
|
||||||
goto ex;
|
goto ex;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRISO 1 "Version 1.3.7, Apr 16, 2014"
|
.TH XORRISO 1 "Version 1.3.7, Apr 19, 2014"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -4067,10 +4067,15 @@ omits all blocks with addresses lower than limit.
|
|||||||
\fBmax_lba=limit\fR
|
\fBmax_lba=limit\fR
|
||||||
switches to what=disc and omits all blocks above limit.
|
switches to what=disc and omits all blocks above limit.
|
||||||
.br
|
.br
|
||||||
|
\fBchunk_size=size\fR
|
||||||
|
sets the number of bytes to be read in one low\-level read operation.
|
||||||
|
This gets rounded down to full blocks of 2048 bytes. 0 means automatic size.
|
||||||
|
.br
|
||||||
\fBretry="on"\fR
|
\fBretry="on"\fR
|
||||||
forces read retries with single blocks when the normal read
|
forces read retries with minimal senseful chunk size when the normal read
|
||||||
chunk produces a read error. By default, retries are only enabled with CD
|
chunk produces a read error. This size is 1s with CD and stdio files,
|
||||||
media. "retry=off" forbits retries for all media types.
|
16s with DVD (1 ECC Block), and 32s with BD (1 Cluster).
|
||||||
|
By default, retries are only enabled with CD media. "retry=off" forbits retries for all media types.
|
||||||
.br
|
.br
|
||||||
\fBabort_file=disk_path\fR
|
\fBabort_file=disk_path\fR
|
||||||
gives the path of the file which may abort a scan run. Abort
|
gives the path of the file which may abort a scan run. Abort
|
||||||
@ -4136,14 +4141,17 @@ sets the highest quality which shall be considered as damage.
|
|||||||
Choose one of "good", "md5_match", "slow", "partial", "valid", "untested",
|
Choose one of "good", "md5_match", "slow", "partial", "valid", "untested",
|
||||||
"invalid", "tao_end", "off_track", "md5_mismatch", "unreadable".
|
"invalid", "tao_end", "off_track", "md5_mismatch", "unreadable".
|
||||||
.br
|
.br
|
||||||
|
"valid" and "invalid" are qualities imported from a sector_map file.
|
||||||
|
"tao_end" and "off_track" are intentionally not readable, but not bad either.
|
||||||
|
"partial" are blocks retrieved from a partially readable chunk. They are
|
||||||
|
supposed to be ok but stem from a suspicious neighborhood.
|
||||||
|
.br
|
||||||
|
"md5_match" and "md5_mismatch" regions overlap with regions of other quality.
|
||||||
|
.br
|
||||||
\fBslow_limit=threshold\fR
|
\fBslow_limit=threshold\fR
|
||||||
sets the time threshold for a single read chunk to be considered
|
sets the time threshold for a single read chunk to be considered
|
||||||
slow. This may be a fractional number like 0.1 or 1.5.
|
slow. This may be a fractional number like 0.1 or 1.5.
|
||||||
.br
|
.br
|
||||||
\fBchunk_size=size\fR
|
|
||||||
sets the number of bytes to be read in one read operation.
|
|
||||||
This gets rounded down to full blocks of 2048 bytes. 0 means automatic size.
|
|
||||||
.br
|
|
||||||
\fBasync_chunks=number\fR
|
\fBasync_chunks=number\fR
|
||||||
enables asynchronous MD5 processing if number is 2 or larger.
|
enables asynchronous MD5 processing if number is 2 or larger.
|
||||||
In this case the given number of read chunks is allocated as fifo buffer.
|
In this case the given number of read chunks is allocated as fifo buffer.
|
||||||
|
@ -3557,11 +3557,16 @@ transmission errors.
|
|||||||
omits all blocks with addresses lower than limit.
|
omits all blocks with addresses lower than limit.
|
||||||
max_lba=limit
|
max_lba=limit
|
||||||
switches to what=disc and omits all blocks above limit.
|
switches to what=disc and omits all blocks above limit.
|
||||||
|
chunk_size=size
|
||||||
|
sets the number of bytes to be read in one low-level read
|
||||||
|
operation. This gets rounded down to full blocks of 2048
|
||||||
|
bytes. 0 means automatic size.
|
||||||
retry="on"
|
retry="on"
|
||||||
forces read retries with single blocks when the normal read
|
forces read retries with minimal senseful chunk size when the
|
||||||
chunk produces a read error. By default, retries are only
|
normal read chunk produces a read error. This size is 1s with
|
||||||
enabled with CD media. "retry=off" forbits retries for all
|
CD and stdio files, 16s with DVD (1 ECC Block), and 32s with
|
||||||
media types.
|
BD (1 Cluster). By default, retries are only enabled with CD
|
||||||
|
media. "retry=off" forbits retries for all media types.
|
||||||
abort_file=disk_path
|
abort_file=disk_path
|
||||||
gives the path of the file which may abort a scan run. Abort
|
gives the path of the file which may abort a scan run. Abort
|
||||||
happens if the file exists and its mtime is not older than
|
happens if the file exists and its mtime is not older than
|
||||||
@ -3622,14 +3627,17 @@ transmission errors.
|
|||||||
Choose one of "good", "md5_match", "slow", "partial",
|
Choose one of "good", "md5_match", "slow", "partial",
|
||||||
"valid", "untested", "invalid", "tao_end", "off_track",
|
"valid", "untested", "invalid", "tao_end", "off_track",
|
||||||
"md5_mismatch", "unreadable".
|
"md5_mismatch", "unreadable".
|
||||||
|
"valid" and "invalid" are qualities imported from a
|
||||||
|
sector_map file. "tao_end" and "off_track" are intentionally
|
||||||
|
not readable, but not bad either. "partial" are blocks
|
||||||
|
retrieved from a partially readable chunk. They are supposed
|
||||||
|
to be ok but stem from a suspicious neighborhood.
|
||||||
|
"md5_match" and "md5_mismatch" regions overlap with regions
|
||||||
|
of other quality.
|
||||||
slow_limit=threshold
|
slow_limit=threshold
|
||||||
sets the time threshold for a single read chunk to be
|
sets the time threshold for a single read chunk to be
|
||||||
considered slow. This may be a fractional number like 0.1 or
|
considered slow. This may be a fractional number like 0.1 or
|
||||||
1.5.
|
1.5.
|
||||||
chunk_size=size
|
|
||||||
sets the number of bytes to be read in one read operation.
|
|
||||||
This gets rounded down to full blocks of 2048 bytes. 0 means
|
|
||||||
automatic size.
|
|
||||||
async_chunks=number
|
async_chunks=number
|
||||||
enables asynchronous MD5 processing if number is 2 or larger.
|
enables asynchronous MD5 processing if number is 2 or larger.
|
||||||
In this case the given number of read chunks is allocated as
|
In this case the given number of read chunks is allocated as
|
||||||
@ -4970,8 +4978,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -cdx sets working directory on disk: Navigate. (line 16)
|
* -cdx sets working directory on disk: Navigate. (line 16)
|
||||||
* -changes_pending overrides change status: Writing. (line 13)
|
* -changes_pending overrides change status: Writing. (line 13)
|
||||||
* -charset sets input/output character set: Charset. (line 54)
|
* -charset sets input/output character set: Charset. (line 54)
|
||||||
* -check_md5 verifies file checksum: Verify. (line 158)
|
* -check_md5 verifies file checksum: Verify. (line 166)
|
||||||
* -check_md5_r verifies file tree checksums: Verify. (line 174)
|
* -check_md5_r verifies file tree checksums: Verify. (line 182)
|
||||||
* -check_media reads media block by block: Verify. (line 21)
|
* -check_media reads media block by block: Verify. (line 21)
|
||||||
* -check_media_defaults sets -check_media options: Verify. (line 41)
|
* -check_media_defaults sets -check_media options: Verify. (line 41)
|
||||||
* -chgrp sets group in ISO image: Manip. (line 57)
|
* -chgrp sets group in ISO image: Manip. (line 57)
|
||||||
@ -5443,8 +5451,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* Verify, compare ISO and disk file, -compare: Navigate. (line 146)
|
* Verify, compare ISO and disk file, -compare: Navigate. (line 146)
|
||||||
* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 159)
|
* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 159)
|
||||||
* Verify, compare ISO and disk, -compare_l: Navigate. (line 164)
|
* Verify, compare ISO and disk, -compare_l: Navigate. (line 164)
|
||||||
* Verify, file checksum, -check_md5: Verify. (line 158)
|
* Verify, file checksum, -check_md5: Verify. (line 166)
|
||||||
* Verify, file tree checksums, -check_md5_r: Verify. (line 174)
|
* Verify, file tree checksums, -check_md5_r: Verify. (line 182)
|
||||||
* Verify, preset -check_media, -check_media_defaults: Verify. (line 41)
|
* Verify, preset -check_media, -check_media_defaults: Verify. (line 41)
|
||||||
* Write, block size, -dvd_obs: SetWrite. (line 333)
|
* Write, block size, -dvd_obs: SetWrite. (line 333)
|
||||||
* Write, bootability, -boot_image: Bootable. (line 27)
|
* Write, bootability, -boot_image: Bootable. (line 27)
|
||||||
@ -5504,32 +5512,32 @@ Node: DialogCtl160283
|
|||||||
Node: Inquiry162881
|
Node: Inquiry162881
|
||||||
Node: Navigate170016
|
Node: Navigate170016
|
||||||
Node: Verify178314
|
Node: Verify178314
|
||||||
Node: Restore187578
|
Node: Restore188141
|
||||||
Node: Emulation194665
|
Node: Emulation195228
|
||||||
Node: Scripting205053
|
Node: Scripting205616
|
||||||
Node: Frontend212824
|
Node: Frontend213387
|
||||||
Node: Examples222431
|
Node: Examples222994
|
||||||
Node: ExDevices223609
|
Node: ExDevices224172
|
||||||
Node: ExCreate224275
|
Node: ExCreate224838
|
||||||
Node: ExDialog225560
|
Node: ExDialog226123
|
||||||
Node: ExGrowing226825
|
Node: ExGrowing227388
|
||||||
Node: ExModifying227630
|
Node: ExModifying228193
|
||||||
Node: ExBootable228134
|
Node: ExBootable228697
|
||||||
Node: ExCharset228686
|
Node: ExCharset229249
|
||||||
Node: ExPseudo229578
|
Node: ExPseudo230141
|
||||||
Node: ExCdrecord230476
|
Node: ExCdrecord231039
|
||||||
Node: ExMkisofs230793
|
Node: ExMkisofs231356
|
||||||
Node: ExGrowisofs232133
|
Node: ExGrowisofs232696
|
||||||
Node: ExException233268
|
Node: ExException233831
|
||||||
Node: ExTime233722
|
Node: ExTime234285
|
||||||
Node: ExIncBackup234181
|
Node: ExIncBackup234744
|
||||||
Node: ExRestore238161
|
Node: ExRestore238724
|
||||||
Node: ExRecovery239094
|
Node: ExRecovery239657
|
||||||
Node: Files239664
|
Node: Files240227
|
||||||
Node: Seealso240963
|
Node: Seealso241526
|
||||||
Node: Bugreport241686
|
Node: Bugreport242249
|
||||||
Node: Legal242267
|
Node: Legal242830
|
||||||
Node: CommandIdx243278
|
Node: CommandIdx243841
|
||||||
Node: ConceptIdx260013
|
Node: ConceptIdx260576
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
@c man .\" First parameter, NAME, should be all caps
|
@c man .\" First parameter, NAME, should be all caps
|
||||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||||
@c man .TH XORRISO 1 "Version 1.3.7, Apr 16, 2014"
|
@c man .TH XORRISO 1 "Version 1.3.7, Apr 19, 2014"
|
||||||
@c man .\" Please adjust this date whenever revising the manpage.
|
@c man .\" Please adjust this date whenever revising the manpage.
|
||||||
@c man .\"
|
@c man .\"
|
||||||
@c man .\" Some roff macros, for reference:
|
@c man .\" Some roff macros, for reference:
|
||||||
@ -4753,10 +4753,15 @@ omits all blocks with addresses lower than limit.
|
|||||||
@item max_lba=limit
|
@item max_lba=limit
|
||||||
switches to what=disc and omits all blocks above limit.
|
switches to what=disc and omits all blocks above limit.
|
||||||
@*
|
@*
|
||||||
|
@item chunk_size=size
|
||||||
|
sets the number of bytes to be read in one low-level read operation.
|
||||||
|
This gets rounded down to full blocks of 2048 bytes. 0 means automatic size.
|
||||||
|
@*
|
||||||
@item retry="on"
|
@item retry="on"
|
||||||
forces read retries with single blocks when the normal read
|
forces read retries with minimal senseful chunk size when the normal read
|
||||||
chunk produces a read error. By default, retries are only enabled with CD
|
chunk produces a read error. This size is 1s with CD and stdio files,
|
||||||
media. "retry=off" forbits retries for all media types.
|
16s with DVD (1 ECC Block), and 32s with BD (1 Cluster).
|
||||||
|
By default, retries are only enabled with CD media. "retry=off" forbits retries for all media types.
|
||||||
@*
|
@*
|
||||||
@item abort_file=disk_path
|
@item abort_file=disk_path
|
||||||
gives the path of the file which may abort a scan run. Abort
|
gives the path of the file which may abort a scan run. Abort
|
||||||
@ -4822,14 +4827,17 @@ sets the highest quality which shall be considered as damage.
|
|||||||
Choose one of "good", "md5_match", "slow", "partial", "valid", "untested",
|
Choose one of "good", "md5_match", "slow", "partial", "valid", "untested",
|
||||||
"invalid", "tao_end", "off_track", "md5_mismatch", "unreadable".
|
"invalid", "tao_end", "off_track", "md5_mismatch", "unreadable".
|
||||||
@*
|
@*
|
||||||
|
"valid" and "invalid" are qualities imported from a sector_map file.
|
||||||
|
"tao_end" and "off_track" are intentionally not readable, but not bad either.
|
||||||
|
"partial" are blocks retrieved from a partially readable chunk. They are
|
||||||
|
supposed to be ok but stem from a suspicious neighborhood.
|
||||||
|
@*
|
||||||
|
"md5_match" and "md5_mismatch" regions overlap with regions of other quality.
|
||||||
|
@*
|
||||||
@item slow_limit=threshold
|
@item slow_limit=threshold
|
||||||
sets the time threshold for a single read chunk to be considered
|
sets the time threshold for a single read chunk to be considered
|
||||||
slow. This may be a fractional number like 0.1 or 1.5.
|
slow. This may be a fractional number like 0.1 or 1.5.
|
||||||
@*
|
@*
|
||||||
@item chunk_size=size
|
|
||||||
sets the number of bytes to be read in one read operation.
|
|
||||||
This gets rounded down to full blocks of 2048 bytes. 0 means automatic size.
|
|
||||||
@*
|
|
||||||
@item async_chunks=number
|
@item async_chunks=number
|
||||||
enables asynchronous MD5 processing if number is 2 or larger.
|
enables asynchronous MD5 processing if number is 2 or larger.
|
||||||
In this case the given number of read chunks is allocated as fifo buffer.
|
In this case the given number of read chunks is allocated as fifo buffer.
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2014.04.16.145517"
|
#define Xorriso_timestamP "2014.04.19.115057"
|
||||||
|
Loading…
Reference in New Issue
Block a user