Don't error out on handling "NO PRE_EMPHASIS" in cdrdao TOC.

Savannah bug #34826:
This commit is contained in:
R. Bernstein
2011-11-16 20:36:22 -05:00
parent c0315f0d80
commit e0b2ee826d
9 changed files with 22 additions and 12 deletions

View File

@@ -654,6 +654,7 @@ AC_CONFIG_FILES([
src/cd-paranoia/doc/ja/cd-paranoia.1 \
src/cd-paranoia/doc/ja/Makefile \
src/Makefile \
test/check_common_fn \
test/data/Makefile \
test/driver/Makefile \
test/driver/bincue.c \
@@ -662,7 +663,6 @@ AC_CONFIG_FILES([
test/testgetdevices.c \
test/testisocd2.c \
test/testpregap.c \
test/check_common_fn \
test/Makefile \
])

View File

@@ -1,6 +1,6 @@
/* -*- c -*-
Copyright (C) 2005, 2006, 2008, 2009, 2010 Rocky Bernstein
Copyright (C) 2005, 2006, 2008, 2009, 2010, 2011 Rocky Bernstein
<rocky@gnu.org>
This program is free software: you can redistribute it and/or modify

View File

@@ -1,6 +1,4 @@
/*
$Id: cdrdao.c,v 1.27 2008/04/21 18:30:22 karl Exp $
Copyright (C) 2004, 2005, 2006, 2007, 2008 Rocky Bernstein <rocky@gnu.org>
toc reading routine adapted from cuetools
Copyright (C) 2003 Svend Sanjay Sorensen <ssorensen@fastmail.fm>
@@ -612,7 +610,6 @@ parse_tocfile (_img_private_t *cd, const char *psz_cue_name)
} else if (0 == strcmp ("PRE_EMPHASIS", psz_field))
if (NULL != cd) {
cd->tocent[i].flags &= ~CDIO_TRACK_FLAG_PRE_EMPHASIS;
goto err_exit;
}
} else {
goto format_error;

View File

@@ -37,6 +37,7 @@ check_DATA = \
t7.toc \
t8.toc \
t9.toc \
t10.toc \
vcd2.toc \
videocd.nrg \
cdtext.toc \

View File

@@ -5,9 +5,9 @@
CD_ROM_XA
TRACK MODE2_FORM2
FILE "isofs-m1.bin" 00:00:00 00:13:57
FILE "isofs-m1.bin" 00:00:00 00:01:57
TRACK MODE2_FORM1
PREGAP 0:2:0
FILE "isofs-m1.bin" 00:20:71 00:00:00
FILE "isofs-m1.bin" 00:20:71 00:00:10

View File

@@ -5,4 +5,4 @@
CD_ROM
TRACK MODE2
FILE "isofs-m1.bin" 00:00:00 00:13:57
FILE "isofs-m1.bin" 00:00:00 00:01:57

View File

@@ -5,7 +5,7 @@
CD_ROM_XA
TRACK MODE1 // ISO filesystem
FILE "isofs-m1.bin" 00:00:00 00:13:57
FILE "isofs-m1.bin" 00:00:00 00:03:57
TRACK MODE2_FORM_MIX // XA track with form 1 and form 2 sectors
PREGAP 0:2:0

8
test/data/t10.toc Normal file
View File

@@ -0,0 +1,8 @@
// non default CTL flag of track 1
TRACK AUDIO
COPY
NO PRE_EMPHASIS
FOUR_CHANNEL_AUDIO
FILE "cdda.bin" 1:0:0

View File

@@ -44,7 +44,7 @@
#define DATA_DIR "@abs_top_srcdir@/test/data"
#endif
#define NUM_GOOD_TOCS 16
#define NUM_GOOD_TOCS 17
#define NUM_BAD_TOCS 8
int
main(int argc, const char *argv[])
@@ -60,6 +60,7 @@ main(int argc, const char *argv[])
"t7.toc",
"t8.toc",
"t9.toc",
"t10.toc",
"data1.toc",
"data2.toc",
"data5.toc",
@@ -92,13 +93,16 @@ main(int argc, const char *argv[])
cdio_loglevel_default = verbose ? CDIO_LOG_DEBUG : CDIO_LOG_WARN;
for (i=0; i<NUM_GOOD_TOCS; i++) {
CdIo_t *p_cdio;
snprintf(psz_tocfile, sizeof(psz_tocfile)-1,
"%s/%s", DATA_DIR, toc_file[i]);
if (!cdio_is_tocfile(psz_tocfile)) {
if (!cdio_is_tocfile(psz_tocfile) ||
!(p_cdio = cdio_open_cdrdao(psz_tocfile))) {
fprintf(stderr,
"Incorrect: %s doesn't parse as a cdrdao TOC file.\n", toc_file[i]);
ret=i+1;
} else {
cdio_destroy(p_cdio);
if (verbose)
printf("Correct: %s parses as a cdrdao TOC file.\n",
toc_file[i]);