aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2023-05-31 21:49:44 +0200
committerGitHub <noreply@github.com>2023-05-31 21:49:44 +0200
commitd6974b9702a80bbea7eaee81c60cb491fe81e175 (patch)
treeffb9cd6213dc6b8f5f4864f857b7494d6f3c8505
parent1619af5a36fc0343cdf6b3517bb78d8aee85fe59 (diff)
downloadflac-d6974b9702a80bbea7eaee81c60cb491fe81e175.tar.gz
Remove sector align option
This option has been deprecated since FLAC 1.3.0.
-rw-r--r--man/flac.md6
-rw-r--r--oss-fuzz/tool_flac.c1
-rw-r--r--src/flac/encode.c123
-rw-r--r--src/flac/encode.h4
-rw-r--r--src/flac/main.c55
-rwxr-xr-xtest/test_flac.sh77
6 files changed, 14 insertions, 252 deletions
diff --git a/man/flac.md b/man/flac.md
index a01c6c90..58bb8bf4 100644
--- a/man/flac.md
+++ b/man/flac.md
@@ -384,11 +384,6 @@ the HTML documentation.
FILENAME is just shorthand for "\|\|\|\|FILENAME". For the format of
SPECIFICATION, see the section **picture specification**.
-**\--sector-align**
-: Align encoding of multiple CD format files on sector boundaries. See the
- HTML documentation for more information. This option is DEPRECATED and
- may not exist in future versions of flac.
-
**\--ignore-chunk-sizes**
: When encoding to flac, ignore the file size headers in WAV and AIFF
files to attempt to work around problems with over-sized or malformed
@@ -587,7 +582,6 @@ the HTML documentation.
**\--no-replay-gain**
**\--no-residual-gnuplot**
**\--no-residual-text**
-**\--no-sector-align**
**\--no-seektable**
**\--no-silent**
**\--no-verify**
diff --git a/oss-fuzz/tool_flac.c b/oss-fuzz/tool_flac.c
index 23bab345..ce10a072 100644
--- a/oss-fuzz/tool_flac.c
+++ b/oss-fuzz/tool_flac.c
@@ -56,7 +56,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
flac__utils_verbosity_ = 0;
share__opterr = 0;
share__optind = 0;
- align_reservoir_samples = 0;
if(size < 2)
return 0;
diff --git a/src/flac/encode.c b/src/flac/encode.c
index fc05689a..20bcc235 100644
--- a/src/flac/encode.c
+++ b/src/flac/encode.c
@@ -47,7 +47,6 @@
#endif
#define max(x,y) ((x)>(y)?(x):(y))
-/* this MUST be >= 588 so that sector aligning can take place with one read */
/* this MUST be < 2^sizeof(size_t) / ( FLAC__MAX_CHANNELS * (FLAC__MAX_BITS_PER_SAMPLE/8) ) */
#define CHUNK_OF_SAMPLES 2048
@@ -143,7 +142,7 @@ static FLAC__int32 *input_[FLAC__MAX_CHANNELS];
*/
static FLAC__bool EncoderSession_construct(EncoderSession *e, encode_options_t options, FLAC__off_t infilesize, FILE *infile, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, uint32_t lookahead_length);
static void EncoderSession_destroy(EncoderSession *e);
-static int EncoderSession_finish_ok(EncoderSession *e, int info_align_carry, int info_align_zero, foreign_metadata_t *foreign_metadata, FLAC__bool error_on_compression_fail);
+static int EncoderSession_finish_ok(EncoderSession *e, foreign_metadata_t *foreign_metadata, FLAC__bool error_on_compression_fail);
static int EncoderSession_finish_error(EncoderSession *e);
static FLAC__bool EncoderSession_init_encoder(EncoderSession *e, encode_options_t options);
static FLAC__bool EncoderSession_process(EncoderSession *e, const FLAC__int32 * const buffer[], uint32_t samples);
@@ -482,7 +481,6 @@ static FLAC__bool get_sample_info_wave(EncoderSession *e, encode_options_t optio
data_bytes = ds64_data_size;
}
if(options.ignore_chunk_sizes) {
- FLAC__ASSERT(!options.sector_align);
if(data_bytes) {
flac__utils_printf(stderr, 1, "%s: WARNING: 'data' chunk has non-zero size, using --ignore-chunk-sizes is probably a bad idea\n", e->inbasefilename, chunk_id);
if(e->treat_warnings_as_errors)
@@ -717,7 +715,6 @@ static FLAC__bool get_sample_info_aiff(EncoderSession *e, encode_options_t optio
return false;
data_bytes = xx;
if(options.ignore_chunk_sizes) {
- FLAC__ASSERT(!options.sector_align);
if(data_bytes) {
flac__utils_printf(stderr, 1, "%s: WARNING: 'SSND' chunk has non-zero size, using --ignore-chunk-sizes is probably a bad idea\n", e->inbasefilename, chunk_id);
if(e->treat_warnings_as_errors)
@@ -864,7 +861,6 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
{
EncoderSession encoder_session;
size_t channel_map[FLAC__MAX_CHANNELS];
- int info_align_carry = -1, info_align_zero = -1;
if(!EncoderSession_construct(&encoder_session, options, infilesize, infile, infilename, outfilename, lookahead, lookahead_length))
return 1;
@@ -946,34 +942,19 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
flac__utils_printf(stderr, 1, "%s: ERROR: unsupported bits-per-sample %u\n", encoder_session.inbasefilename, encoder_session.info.bits_per_sample-encoder_session.info.shift);
return EncoderSession_finish_error(&encoder_session);
}
- if(options.sector_align) {
- if(encoder_session.info.channels != 2) {
- flac__utils_printf(stderr, 1, "%s: ERROR: file has %u channels, must be 2 for --sector-align\n", encoder_session.inbasefilename, encoder_session.info.channels);
- return EncoderSession_finish_error(&encoder_session);
- }
- if(encoder_session.info.sample_rate != 44100) {
- flac__utils_printf(stderr, 1, "%s: ERROR: file's sample rate is %u, must be 44100 for --sector-align\n", encoder_session.inbasefilename, encoder_session.info.sample_rate);
- return EncoderSession_finish_error(&encoder_session);
- }
- if(encoder_session.info.bits_per_sample-encoder_session.info.shift != 16) {
- flac__utils_printf(stderr, 1, "%s: ERROR: file has %u bits-per-sample, must be 16 for --sector-align\n", encoder_session.inbasefilename, encoder_session.info.bits_per_sample-encoder_session.info.shift);
- return EncoderSession_finish_error(&encoder_session);
- }
- }
{
FLAC__uint64 total_samples_in_input; /* WATCHOUT: may be 0 to mean "unknown" */
FLAC__uint64 skip;
FLAC__uint64 until; /* a value of 0 mean end-of-stream (i.e. --until=-0) */
uint32_t consecutive_eos_count = 0;
- uint32_t align_remainder = 0;
switch(options.format) {
case FORMAT_RAW:
if(infilesize < 0)
total_samples_in_input = 0;
else
- total_samples_in_input = (FLAC__uint64)infilesize / encoder_session.info.bytes_per_wide_sample + *options.align_reservoir_samples;
+ total_samples_in_input = (FLAC__uint64)infilesize / encoder_session.info.bytes_per_wide_sample;
break;
case FORMAT_WAVE:
case FORMAT_WAVE64:
@@ -981,7 +962,7 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
case FORMAT_AIFF:
case FORMAT_AIFF_C:
/* truncation in the division removes any padding byte that was counted in encoder_session.fmt.iff.data_bytes */
- total_samples_in_input = encoder_session.fmt.iff.data_bytes / encoder_session.info.bytes_per_wide_sample + *options.align_reservoir_samples;
+ total_samples_in_input = encoder_session.fmt.iff.data_bytes / encoder_session.info.bytes_per_wide_sample;
/* check for chunks trailing the audio data */
if(!options.ignore_chunk_sizes && !options.format_options.iff.foreign_metadata
@@ -1004,7 +985,7 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
break;
case FORMAT_FLAC:
case FORMAT_OGGFLAC:
- total_samples_in_input = encoder_session.fmt.flac.client_data.metadata_blocks[0]->data.stream_info.total_samples + *options.align_reservoir_samples;
+ total_samples_in_input = encoder_session.fmt.flac.client_data.metadata_blocks[0]->data.stream_info.total_samples;
break;
default:
FLAC__ASSERT(0);
@@ -1022,9 +1003,6 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
}
FLAC__ASSERT(options.skip_specification.value.samples >= 0);
skip = (FLAC__uint64)options.skip_specification.value.samples;
- FLAC__ASSERT(!options.sector_align || (options.format != FORMAT_FLAC && options.format != FORMAT_OGGFLAC && skip == 0));
- /* *options.align_reservoir_samples will be 0 unless --sector-align is used */
- FLAC__ASSERT(options.sector_align || *options.align_reservoir_samples == 0);
/*
* now that we possibly know the input size, canonicalize the
@@ -1033,7 +1011,6 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
if(!canonicalize_until_specification(&options.until_specification, encoder_session.inbasefilename, encoder_session.info.sample_rate, skip, total_samples_in_input))
return EncoderSession_finish_error(&encoder_session);
until = (FLAC__uint64)options.until_specification.value.samples;
- FLAC__ASSERT(!options.sector_align || until == 0);
/* adjust encoding parameters based on skip and until values */
switch(options.format) {
@@ -1077,21 +1054,12 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
if(until > 0) {
const FLAC__uint64 trim = total_samples_in_input - until;
FLAC__ASSERT(total_samples_in_input > 0);
- FLAC__ASSERT(!options.sector_align);
if(options.format == FORMAT_RAW)
infilesize -= (FLAC__off_t)trim * encoder_session.info.bytes_per_wide_sample;
else if(EncoderSession_format_is_iff(&encoder_session))
encoder_session.fmt.iff.data_bytes -= trim * encoder_session.info.bytes_per_wide_sample;
encoder_session.total_samples_to_encode -= trim;
}
- if(options.sector_align && (options.format != FORMAT_RAW || infilesize >=0)) { /* for RAW, need to know the filesize */
- FLAC__ASSERT(skip == 0); /* asserted above too, but lest we forget */
- align_remainder = (uint32_t)(encoder_session.total_samples_to_encode % 588);
- if(options.is_last_file)
- encoder_session.total_samples_to_encode += (588-align_remainder); /* will pad with zeroes */
- else
- encoder_session.total_samples_to_encode -= align_remainder; /* will stop short and carry over to next file */
- }
switch(options.format) {
case FORMAT_RAW:
encoder_session.unencoded_size = encoder_session.total_samples_to_encode * encoder_session.info.bytes_per_wide_sample;
@@ -1196,36 +1164,6 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
}
/*
- * first do any samples in the reservoir
- */
- if(options.sector_align && *options.align_reservoir_samples > 0) {
- FLAC__ASSERT(options.format != FORMAT_FLAC && options.format != FORMAT_OGGFLAC); /* check again */
- if(!EncoderSession_process(&encoder_session, (const FLAC__int32 * const *)options.align_reservoir, *options.align_reservoir_samples)) {
- print_error_with_state(&encoder_session, "ERROR during encoding");
- return EncoderSession_finish_error(&encoder_session);
- }
- }
-
- /*
- * decrement infilesize or the data_bytes counter if we need to align the file
- */
- if(options.sector_align) {
- if(options.is_last_file) {
- *options.align_reservoir_samples = 0;
- }
- else {
- *options.align_reservoir_samples = align_remainder;
- if(options.format == FORMAT_RAW) {
- FLAC__ASSERT(infilesize >= 0);
- infilesize -= (FLAC__off_t)((*options.align_reservoir_samples) * encoder_session.info.bytes_per_wide_sample);
- FLAC__ASSERT(infilesize >= 0);
- }
- else if(EncoderSession_format_is_iff(&encoder_session))
- encoder_session.fmt.iff.data_bytes -= (*options.align_reservoir_samples) * encoder_session.info.bytes_per_wide_sample;
- }
- }
-
- /*
* now do samples from the file
*/
switch(options.format) {
@@ -1419,53 +1357,10 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena
return EncoderSession_finish_error(&encoder_session);
}
- /*
- * now read unaligned samples into reservoir or pad with zeroes if necessary
- */
- if(options.sector_align) {
- if(options.is_last_file) {
- uint32_t wide_samples = 588 - align_remainder;
- if(wide_samples < 588) {
- uint32_t channel;
-
- info_align_zero = wide_samples;
- for(channel = 0; channel < encoder_session.info.channels; channel++)
- memset(input_[channel], 0, sizeof(input_[0][0]) * wide_samples);
-
- if(!EncoderSession_process(&encoder_session, (const FLAC__int32 * const *)input_, wide_samples)) {
- print_error_with_state(&encoder_session, "ERROR during encoding");
- return EncoderSession_finish_error(&encoder_session);
- }
- }
- }
- else {
- if(*options.align_reservoir_samples > 0) {
- size_t bytes_read;
- FLAC__ASSERT(CHUNK_OF_SAMPLES >= 588);
- bytes_read = fread(ubuffer.u8, sizeof(uint8_t), (*options.align_reservoir_samples) * encoder_session.info.bytes_per_wide_sample, infile);
- if(bytes_read == 0 && ferror(infile)) {
- flac__utils_printf(stderr, 1, "%s: ERROR during read\n", encoder_session.inbasefilename);
- return EncoderSession_finish_error(&encoder_session);
- }
- else if(bytes_read != (*options.align_reservoir_samples) * encoder_session.info.bytes_per_wide_sample) {
- flac__utils_printf(stderr, 1, "%s: WARNING: unexpected EOF; read %" PRIu64 " bytes; expected %" PRIu64 " samples, got %" PRIu64 " samples\n", encoder_session.inbasefilename, bytes_read, encoder_session.total_samples_to_encode, encoder_session.samples_written);
- if(encoder_session.treat_warnings_as_errors)
- return EncoderSession_finish_error(&encoder_session);
- }
- else {
- info_align_carry = *options.align_reservoir_samples;
- if(!format_input(options.align_reservoir, *options.align_reservoir_samples, encoder_session.info.is_big_endian, encoder_session.info.is_unsigned_samples, encoder_session.info.channels, encoder_session.info.bits_per_sample, encoder_session.info.shift, channel_map))
- return EncoderSession_finish_error(&encoder_session);
- }
- }
- }
- }
}
return EncoderSession_finish_ok(
&encoder_session,
- info_align_carry,
- info_align_zero,
EncoderSession_format_is_iff(&encoder_session)? options.format_options.iff.foreign_metadata : 0,
options.error_on_compression_fail
);
@@ -1594,7 +1489,7 @@ void EncoderSession_destroy(EncoderSession *e)
}
}
-int EncoderSession_finish_ok(EncoderSession *e, int info_align_carry, int info_align_zero, foreign_metadata_t *foreign_metadata, FLAC__bool error_on_compression_fail)
+int EncoderSession_finish_ok(EncoderSession *e, foreign_metadata_t *foreign_metadata, FLAC__bool error_on_compression_fail)
{
FLAC__StreamEncoderState fse_state = FLAC__STREAM_ENCODER_OK;
int ret = 0;
@@ -1620,14 +1515,6 @@ int EncoderSession_finish_ok(EncoderSession *e, int info_align_carry, int info_a
print_verify_error(e);
ret = 1;
}
- else {
- if(info_align_carry >= 0) {
- flac__utils_printf(stderr, 1, "%s: INFO: sector alignment causing %d samples to be carried over\n", e->inbasefilename, info_align_carry);
- }
- if(info_align_zero >= 0) {
- flac__utils_printf(stderr, 1, "%s: INFO: sector alignment causing %d zero samples to be appended\n", e->inbasefilename, info_align_zero);
- }
- }
/*@@@@@@ should this go here or somewhere else? */
if(ret == 0 && foreign_metadata) {
diff --git a/src/flac/encode.h b/src/flac/encode.h
index 5cb2cb78..1b13cb85 100644
--- a/src/flac/encode.h
+++ b/src/flac/encode.h
@@ -76,14 +76,10 @@ typedef struct {
FLAC__bool cued_seekpoints;
FLAC__bool channel_map_none; /* --channel-map=none specified, eventually will expand to take actual channel map */
- /* options related to --replay-gain and --sector-align */
FLAC__bool is_first_file;
FLAC__bool is_last_file;
- FLAC__int32 **align_reservoir;
- unsigned *align_reservoir_samples;
FLAC__bool replay_gain;
FLAC__bool ignore_chunk_sizes;
- FLAC__bool sector_align;
FLAC__bool error_on_compression_fail;
FLAC__bool limit_min_bitrate;
FLAC__bool relaxed_foreign_metadata_handling;
diff --git a/src/flac/main.c b/src/flac/main.c
index 2bc30355..8189c230 100644
--- a/src/flac/main.c
+++ b/src/flac/main.c
@@ -151,7 +151,6 @@ static struct share__option long_options_[] = {
{ "lax" , share__no_argument, 0, 0 },
{ "replay-gain" , share__no_argument, 0, 0 },
{ "ignore-chunk-sizes" , share__no_argument, 0, 0 },
- { "sector-align" , share__no_argument, 0, 0 }, /* DEPRECATED */
{ "seekpoint" , share__required_argument, 0, 'S' },
{ "padding" , share__required_argument, 0, 'P' },
#if FLAC__HAS_OGG
@@ -194,7 +193,6 @@ static struct share__option long_options_[] = {
{ "no-keep-foreign-metadata" , share__no_argument, 0, 0 },
{ "no-replay-gain" , share__no_argument, 0, 0 },
{ "no-ignore-chunk-sizes" , share__no_argument, 0, 0 },
- { "no-sector-align" , share__no_argument, 0, 0 }, /* DEPRECATED */
{ "no-utf8-convert" , share__no_argument, 0, 0 },
{ "no-lax" , share__no_argument, 0, 0 },
#if FLAC__HAS_OGG
@@ -257,7 +255,6 @@ static struct {
FLAC__bool keep_foreign_metadata_if_present;
FLAC__bool replay_gain;
FLAC__bool ignore_chunk_sizes;
- FLAC__bool sector_align;
FLAC__bool utf8_convert; /* true by default, to convert tag strings from locale to utf-8, false if --no-utf8-convert used */
const char *cmdline_forced_outfilename;
const char *output_prefix;
@@ -302,10 +299,6 @@ static struct {
* miscellaneous globals
*/
-static FLAC__int32 align_reservoir_0[588], align_reservoir_1[588]; /* for carrying over samples from --sector-align */ /* DEPRECATED */
-static FLAC__int32 *align_reservoir[2] = { align_reservoir_0, align_reservoir_1 };
-static uint32_t align_reservoir_samples = 0; /* 0 .. 587 */
-
#ifndef FUZZ_TOOL_FLAC
int main(int argc, char *argv[])
@@ -441,8 +434,6 @@ int do_it(void)
if(option_values.ignore_chunk_sizes) {
if(option_values.mode_decode)
return usage_error("ERROR: --ignore-chunk-sizes only allowed for encoding\n");
- if(0 != option_values.sector_align)
- return usage_error("ERROR: --ignore-chunk-sizes not allowed with --sector-align\n");
if(0 != option_values.until_specification)
return usage_error("ERROR: --ignore-chunk-sizes not allowed with --until\n");
if(0 != option_values.cue_specification)
@@ -450,22 +441,6 @@ int do_it(void)
if(0 != option_values.cuesheet_filename)
return usage_error("ERROR: --ignore-chunk-sizes not allowed with --cuesheet\n");
}
- if(option_values.sector_align) {
- if(option_values.mode_decode)
- return usage_error("ERROR: --sector-align only allowed for encoding\n");
- if(0 != option_values.skip_specification)
- return usage_error("ERROR: --sector-align not allowed with --skip\n");
- if(0 != option_values.until_specification)
- return usage_error("ERROR: --sector-align not allowed with --until\n");
- if(0 != option_values.cue_specification)
- return usage_error("ERROR: --sector-align not allowed with --cue\n");
- if(option_values.format_channels >= 0 && option_values.format_channels != 2)
- return usage_error("ERROR: --sector-align can only be done with stereo input\n");
- if(option_values.format_bps >= 0 && option_values.format_bps != 16)
- return usage_error("ERROR: --sector-align can only be done with 16-bit samples\n");
- if(option_values.format_sample_rate >= 0 && option_values.format_sample_rate != 44100)
- return usage_error("ERROR: --sector-align can only be done with a sample rate of 44100\n");
- }
if(option_values.replay_gain) {
if(option_values.force_to_stdout)
return usage_error("ERROR: --replay-gain not allowed with -c/--stdout\n");
@@ -605,7 +580,6 @@ FLAC__bool init_options(void)
option_values.keep_foreign_metadata_if_present = false;
option_values.replay_gain = false;
option_values.ignore_chunk_sizes = false;
- option_values.sector_align = false;
option_values.utf8_convert = true;
option_values.cmdline_forced_outfilename = 0;
option_values.output_prefix = 0;
@@ -824,11 +798,6 @@ int parse_option(int short_option, const char *long_option, const char *option_a
else if(0 == strcmp(long_option, "ignore-chunk-sizes")) {
option_values.ignore_chunk_sizes = true;
}
- else if(0 == strcmp(long_option, "sector-align")) {
- flac__utils_printf(stderr, 1, "WARNING: --sector-align is DEPRECATED and may not exist in future versions of flac.\n");
- flac__utils_printf(stderr, 1, " shntool provides similar functionality\n");
- option_values.sector_align = true;
- }
#if FLAC__HAS_OGG
else if(0 == strcmp(long_option, "ogg")) {
option_values.use_ogg = true;
@@ -911,9 +880,6 @@ int parse_option(int short_option, const char *long_option, const char *option_a
else if(0 == strcmp(long_option, "no-ignore-chunk-sizes")) {
option_values.ignore_chunk_sizes = false;
}
- else if(0 == strcmp(long_option, "no-sector-align")) {
- option_values.sector_align = false;
- }
else if(0 == strcmp(long_option, "no-utf8-convert")) {
option_values.utf8_convert = false;
}
@@ -1340,7 +1306,6 @@ void show_help(void)
printf(" -V, --verify Verify a correct encoding\n");
printf(" --lax Allow encoder to generate non-Subset files\n");
printf(" --ignore-chunk-sizes Ignore data chunk sizes in WAVE/AIFF files\n");
- printf(" --sector-align (DEPRECATED) Align multiple files on sector boundaries\n");
printf(" --replay-gain Calculate ReplayGain & store in FLAC tags\n");
printf(" --cuesheet=FILENAME Import cuesheet and store in CUESHEET block\n");
printf(" --picture=SPECIFICATION Import picture and store in PICTURE block\n");
@@ -1406,7 +1371,6 @@ void show_help(void)
printf(" --no-residual-gnuplot\n");
printf(" --no-residual-text\n");
printf(" --no-ignore-chunk-sizes\n");
- printf(" --no-sector-align\n");
printf(" --no-seektable\n");
printf(" --no-silent\n");
printf(" --no-force\n");
@@ -1549,10 +1513,6 @@ void show_explain(void)
printf(" --ignore-chunk-sizes Ignore data chunk sizes in WAVE/AIFF files;\n");
printf(" useful when piping data from programs which\n");
printf(" generate bogus data chunk sizes.\n");
- printf(" --sector-align Align encoding of multiple CD format WAVE files\n");
- printf(" on sector boundaries. This option is DEPRECATED\n");
- printf(" and may not exist in future versions of flac.\n");
- printf(" shntool offers similar functionality.\n");
printf(" --replay-gain Calculate ReplayGain values and store them as\n");
printf(" FLAC tags. Title gains/peaks will be computed\n");
printf(" for each file, and an album gain/peak will be\n");
@@ -1773,7 +1733,6 @@ void show_explain(void)
printf(" --no-residual-gnuplot\n");
printf(" --no-residual-text\n");
printf(" --no-ignore-chunk-sizes\n");
- printf(" --no-sector-align\n");
printf(" --no-seektable\n");
printf(" --no-silent\n");
printf(" --no-force\n");
@@ -1964,17 +1923,6 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
}
}
- if(option_values.sector_align && (input_format == FORMAT_FLAC || input_format == FORMAT_OGGFLAC)) {
- flac__utils_printf(stderr, 1, "ERROR: can't use --sector-align when the input file is FLAC or Ogg FLAC\n");
- conditional_fclose(encode_infile);
- return 1;
- }
- if(option_values.sector_align && input_format == FORMAT_RAW && infilesize < 0) {
- flac__utils_printf(stderr, 1, "ERROR: can't use --sector-align when the input size is unknown\n");
- conditional_fclose(encode_infile);
- return 1;
- }
-
if(input_format == FORMAT_RAW) {
if(option_values.format_is_big_endian < 0 || option_values.format_is_unsigned_samples < 0 || option_values.format_channels < 0 || option_values.format_bps < 0 || option_values.format_sample_rate < 0) {
conditional_fclose(encode_infile);
@@ -2036,11 +1984,8 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
encode_options.channel_map_none = option_values.channel_map_none;
encode_options.is_first_file = is_first_file;
encode_options.is_last_file = is_last_file;
- encode_options.align_reservoir = align_reservoir;
- encode_options.align_reservoir_samples = &align_reservoir_samples;
encode_options.replay_gain = option_values.replay_gain;
encode_options.ignore_chunk_sizes = option_values.ignore_chunk_sizes;
- encode_options.sector_align = option_values.sector_align;
encode_options.vorbis_comment = option_values.vorbis_comment;
FLAC__ASSERT(sizeof(encode_options.pictures) >= sizeof(option_values.pictures));
memcpy(encode_options.pictures, option_values.pictures, sizeof(option_values.pictures));
diff --git a/test/test_flac.sh b/test/test_flac.sh
index befc8dee..cfe51c0c 100755
--- a/test/test_flac.sh
+++ b/test/test_flac.sh
@@ -1092,45 +1092,12 @@ cp shortnoise.raw file0.raw
cp shortnoise.raw file1.raw
cp shortnoise.raw file2.raw
rm -f shortnoise.raw
-# create authoritative sector-aligned files for comparison
-file0_samples=$(( (short_noise_cdda_samples / 588) * 588))
-file0_remainder=$((short_noise_cdda_samples - file0_samples))
-file1_samples=$(( ( ( file0_remainder + short_noise_cdda_samples ) / 588 ) * 588))
-file1_remainder=$((file0_remainder + short_noise_cdda_samples - file1_samples))
-file1_samples=$((file1_samples - file0_remainder))
-file2_samples=$(( ( ( file1_remainder + short_noise_cdda_samples ) / 588 ) * 588))
-file2_remainder=$(( file1_remainder + short_noise_cdda_samples - file2_samples))
-file2_samples=$((file2_samples - file1_remainder))
-if [ $file2_remainder != '0' ] ; then
- file2_samples=$((file2_samples + file2_remainder))
- file2_remainder=$((588 - file2_remainder))
-fi
-
-dd if=file0.raw ibs=4 count=$file0_samples of=file0s.raw 2>/dev/null || $dddie
-dd if=file0.raw ibs=4 count=$file0_remainder of=file1s.raw skip=$file0_samples 2>/dev/null || $dddie
-dd if=file1.raw ibs=4 count=$file1_samples of=z.raw 2>/dev/null || $dddie
-cat z.raw >> file1s.raw || die "ERROR: cat-ing sector-aligned files"
-dd if=file1.raw ibs=4 count=$file1_remainder of=file2s.raw skip=$file1_samples 2>/dev/null || $dddie
-dd if=file2.raw ibs=4 count=$file2_samples of=z.raw 2>/dev/null || $dddie
-cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
-dd if=/dev/zero ibs=4 count=$file2_remainder of=z.raw 2>/dev/null || $dddie
-cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
-rm -f z.raw
-
-convert_to_wav file0s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
-convert_to_wav file1s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
-convert_to_wav file2s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
-
-convert_to_aiff file0s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
-convert_to_aiff file1s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
-convert_to_aiff file2s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
test_multifile ()
{
input_type=$1
streamtype=$2
- sector_align=$3
- encode_options="$4"
+ encode_options="$3"
extra_encode_options=""
extra_decode_options=""
@@ -1150,10 +1117,6 @@ test_multifile ()
suffix=flac
fi
- if [ $sector_align = sector_align ] ; then
- encode_options="$encode_options --sector-align"
- fi
-
if [ $input_type = flac ] || [ $input_type = ogg ] ; then
CMP=md5cmp
else
@@ -1165,15 +1128,9 @@ test_multifile ()
done
run_flac --force $encode_options $extra_encode_options file0x.$input_type file1x.$input_type file2x.$input_type || die "ERROR"
run_flac --force --decode $extra_decode_options file0x.$suffix file1x.$suffix file2x.$suffix || die "ERROR"
- if [ $sector_align != sector_align ] ; then
- for n in 0 1 2 ; do
- $CMP file$n.$input_type file${n}x.$input_type || die "ERROR: file mismatch on file #$n"
- done
- else
- for n in 0 1 2 ; do
- $CMP file${n}s.$input_type file${n}x.$input_type || die "ERROR: file mismatch on file #$n"
- done
- fi
+ for n in 0 1 2 ; do
+ $CMP file$n.$input_type file${n}x.$input_type || die "ERROR: file mismatch on file #$n"
+ done
for n in 0 1 2 ; do
rm -f file${n}x.$suffix file${n}x.$input_type
done
@@ -1186,36 +1143,20 @@ input_types="raw wav aiff flac"
#@@@fi
for input_type in $input_types ; do
echo "Testing multiple $input_type files without verify..."
- test_multifile $input_type flac no_sector_align ""
+ test_multifile $input_type flac ""
echo "Testing multiple $input_type files with verify..."
- test_multifile $input_type flac no_sector_align "--verify"
-
- if [ $input_type != flac ] && [ $input_type != ogg ] ; then # --sector-align not supported for FLAC input
- echo "Testing multiple $input_type files with --sector-align, without verify..."
- test_multifile $input_type flac sector_align ""
-
- echo "Testing multiple $input_type files with --sector-align, with verify..."
- test_multifile $input_type flac sector_align "--verify"
- fi
+ test_multifile $input_type flac "--verify"
if [ $has_ogg = yes ] ; then
echo "Testing multiple $input_type files with --ogg, without verify..."
- test_multifile $input_type ogg no_sector_align ""
+ test_multifile $input_type ogg ""
echo "Testing multiple $input_type files with --ogg, with verify..."
- test_multifile $input_type ogg no_sector_align "--verify"
-
- if [ $input_type != flac ] ; then # --sector-align not supported for FLAC input
- echo "Testing multiple $input_type files with --ogg and --sector-align, without verify..."
- test_multifile $input_type ogg sector_align ""
-
- echo "Testing multiple $input_type files with --ogg and --sector-align, with verify..."
- test_multifile $input_type ogg sector_align "--verify"
- fi
+ test_multifile $input_type ogg "--verify"
echo "Testing multiple $input_type files with --ogg and --serial-number, with verify..."
- test_multifile $input_type ogg no_sector_align "--serial-number=321 --verify"
+ test_multifile $input_type ogg "--serial-number=321 --verify"
fi
done