Commit b1ec796b authored by Josh Coalson's avatar Josh Coalson

complete largefile support

parent 6977bda1
......@@ -44,12 +44,12 @@ all default: $(DEFAULT_BUILD)
VERSION=\"CVS\"
ifeq ($(DARWIN_BUILD),yes)
#CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -DFLAC__SYS_DARWIN
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -DFLAC__SYS_DARWIN
#CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN
ICONV_INCLUDE_DIR=$(HOME)/local.i18n/include
ICONV_LIB_DIR=$(HOME)/local.i18n/lib
else
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
endif
OGG_INCLUDE_DIR=$(HOME)/local/include
......
This diff is collapsed.
......@@ -65,7 +65,7 @@
<li>
General:
<ul>
<li>(none)</li>
<li>Large file (&gt;2GB) support everywhere</li>
</ul>
</li>
<li>
......@@ -98,6 +98,7 @@
<ul>
<li>Added a new option <a href="documentation.html#metaflac_shorthand_set_tag_from_file"><span class="argument">--set-tag-from-file</span></a> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
<li>Added shorthand operation <a href="documentation.html#metaflac_shorthand_remove_replay_gain"><span class="argument">--remove-replay-gain</span></a> for removing ReplayGain tags.</li>
<li><a href="documentation.html#metaflac_shorthand_export_cuesheet_to"><span class="argument">--export-cuesheet-to</span></a> now properly specifies the FLAC file name (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1272825&amp;group_id=13478&amp;atid=363478">SF #1272825</a>).</li>
<li>Importing of non-CDDA-compliant cuesheets now issues a warning.</li>
</ul>
</li>
......@@ -105,14 +106,16 @@
plugins:
<ul>
<li>When ReplayGain is on, if tags for the preferred kind of gain (album/track) are not in a stream, the other kind will be used.</li>
<li>Add ReplayGain info to file info box in XMMS plugin</li>
<li>Added ReplayGain info to file info box in XMMS plugin</li>
<li>Fixed UTF-8 decoder to disallow non-shortest-form and surrogate sequences (see <a href="http://www.unicode.org/versions/corrigendum1.html">here</a>).</li>
</ul>
</li>
<li>
build system:
<ul>
<li>Add support for building on OS/2 with EMX (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1229495&group_id=13478&atid=113478">SF #1229495</a>)</li>
<li>Added support for building on OS/2 with EMX (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1229495&group_id=13478&atid=113478">SF #1229495</a>)</li>
<li>Added <span class="argument">--disable-doxygen-docs</span> to <span class="command">configure</span> for disabling Doxygen-based API doc generation (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1365935&group_id=13478&atid=313478">SF #1365935</a>).</li>
<li>Added large file support with <span class="argument">AC_SYS_LARGEFILE</span>; use <span class="argument">--disable-largefile</span> with <span class="command">configure</span> to disable.</li>
</ul>
</li>
<li>
......
......@@ -23,6 +23,11 @@
#ifndef GRABAG__FILE_H
#define GRABAG__FILE_H
/* needed because of off_t */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h> /* for off_t */
#include <stdio.h> /* for FILE */
#include "FLAC/ordinals.h"
......
......@@ -16,6 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
......@@ -208,7 +213,7 @@ FLAC__bool dump_stats(const subframe_stats_t *stats, const char *filename)
outfile = fopen(filename, "w");
if(0 == outfile) {
fprintf(stderr, "ERROR opening %s\n", filename);
fprintf(stderr, "ERROR opening %s: %s\n", filename, strerror(errno));
return false;
}
......
......@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if defined _WIN32 && !defined __CYGWIN__
......@@ -26,10 +26,16 @@
#else
# include <unistd.h>
#endif
#if defined _MSC_VER || defined __MINGW32__
#include <sys/types.h> /* for off_t */
//@@@ [2G limit] hacks for MSVC6
#define fseeko fseek
#define ftello ftell
#endif
#include <errno.h>
#include <math.h> /* for floor() */
#include <stdio.h> /* for FILE et al. */
#include <string.h> /* for strcmp() */
#include <stdio.h> /* for FILE etc. */
#include <string.h> /* for strcmp(), strerror() */
#include "FLAC/all.h"
#include "share/grabbag.h"
#include "share/replaygain_synthesis.h"
......@@ -72,9 +78,9 @@ typedef struct {
struct {
FLAC__bool needs_fixup;
unsigned riff_offset; /* or FORM offset for AIFF */
unsigned data_offset; /* or SSND offset for AIFF */
unsigned frames_offset; /* AIFF only */
off_t riff_offset; /* or FORM offset for AIFF */
off_t data_offset; /* or SSND offset for AIFF */
off_t frames_offset; /* AIFF only */
} wave_chunk_size_fixup;
FLAC__bool is_big_endian;
......@@ -292,7 +298,7 @@ FLAC__bool DecoderSession_construct(DecoderSession *d, FLAC__bool is_ogg, FLAC__
}
else {
if(0 == (d->fout = fopen(outfilename, "wb"))) {
flac__utils_printf(stderr, 1, "%s: ERROR: can't open output file %s\n", d->inbasefilename, outfilename);
flac__utils_printf(stderr, 1, "%s: ERROR: can't open output file %s: %s\n", d->inbasefilename, outfilename, strerror(errno));
DecoderSession_destroy(d, /*error_occurred=*/true);
return false;
}
......@@ -639,7 +645,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.riff_offset = ftell(decoder_session->fout);
decoder_session->wave_chunk_size_fixup.riff_offset = ftello(decoder_session->fout);
if(!write_little_endian_uint32(decoder_session->fout, aligned_data_size+36)) /* filesize-8 */
return false;
......@@ -672,7 +678,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.data_offset = ftell(decoder_session->fout);
decoder_session->wave_chunk_size_fixup.data_offset = ftello(decoder_session->fout);
if(!write_little_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size)) /* data size */
return false;
......@@ -682,7 +688,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.riff_offset = ftell(decoder_session->fout);
decoder_session->wave_chunk_size_fixup.riff_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, aligned_data_size+46)) /* filesize-8 */
return false;
......@@ -697,7 +703,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.frames_offset = ftell(decoder_session->fout);
decoder_session->wave_chunk_size_fixup.frames_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)decoder_session->total_samples))
return false;
......@@ -712,7 +718,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.data_offset = ftell(decoder_session->fout);
decoder_session->wave_chunk_size_fixup.data_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size+8)) /* data size */
return false;
......@@ -805,11 +811,11 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out
{
const char *fmt_desc = (is_wave_out? "WAVE" : "AIFF");
FLAC__bool (*write_it)(FILE *, FLAC__uint32) = (is_wave_out? write_little_endian_uint32 : write_big_endian_uint32);
FILE *f = fopen(outfilename, "r+b");
FLAC__uint32 data_size, aligned_data_size;
FILE *f = fopen(outfilename, "r+b");
if(0 == f) {
flac__utils_printf(stderr, 1, "ERROR, couldn't open file %s while fixing up %s chunk size\n", outfilename, fmt_desc);
flac__utils_printf(stderr, 1, "ERROR, couldn't open file %s while fixing up %s chunk size: %s\n", outfilename, fmt_desc, strerror(errno));
return false;
}
......@@ -817,7 +823,7 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out
if(aligned_data_size & 1)
aligned_data_size++;
if(fseek(f, riff_offset, SEEK_SET) < 0) {
if(fseeko(f, riff_offset, SEEK_SET) < 0) {
flac__utils_printf(stderr, 1, "ERROR, couldn't seek in file %s while fixing up %s chunk size\n", outfilename, fmt_desc);
fclose(f);
return false;
......@@ -828,7 +834,7 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out
return false;
}
if(!is_wave_out) {
if(fseek(f, frames_offset, SEEK_SET) < 0) {
if(fseeko(f, frames_offset, SEEK_SET) < 0) {
flac__utils_printf(stderr, 1, "ERROR, couldn't seek in file %s while fixing up %s chunk size\n", outfilename, fmt_desc);
fclose(f);
return false;
......@@ -839,7 +845,7 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out
return false;
}
}
if(fseek(f, data_offset, SEEK_SET) < 0) {
if(fseeko(f, data_offset, SEEK_SET) < 0) {
flac__utils_printf(stderr, 1, "ERROR, couldn't seek in file %s while fixing up %s chunk size\n", outfilename, fmt_desc);
fclose(f);
return false;
......
......@@ -16,25 +16,32 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if defined _WIN32 && !defined __CYGWIN__
/* where MSVC puts unlink() */
# include <io.h>
#else
# include <unistd.h>
#endif
#if defined _MSC_VER || defined __MINGW32__
#include <sys/types.h> /* for off_t */
//@@@ [2G limit] hacks for MSVC6
#define fseeko fseek
#define ftello ftell
#endif
#include <errno.h>
#include <limits.h> /* for LONG_MAX */
#include <math.h> /* for floor() */
#include <stdio.h> /* for FILE etc. */
#include <stdlib.h> /* for malloc */
#include <string.h> /* for strcmp() */
#include <string.h> /* for strcmp(), strerror( */
#include "FLAC/all.h"
#include "share/grabbag.h"
#include "encode.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef FLAC__HAS_OGG
#include "OggFLAC/stream_encoder.h"
#include "OggFLAC/file_encoder.h"
......@@ -160,7 +167,7 @@ static FLAC__bool fskip_ahead(FILE *f, FLAC__uint64 offset);
/*
* public routines
*/
int flac__encode_aif(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options, FLAC__bool is_aifc)
int flac__encode_aif(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options, FLAC__bool is_aifc)
{
EncoderSession encoder_session;
FLAC__uint16 x;
......@@ -525,7 +532,7 @@ int flac__encode_aif(FILE *infile, long infilesize, const char *infilename, cons
return EncoderSession_finish_ok(&encoder_session, info_align_carry, info_align_zero);
}
int flac__encode_wav(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options)
int flac__encode_wav(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options)
{
EncoderSession encoder_session;
FLAC__bool is_unsigned_samples = false;
......@@ -860,7 +867,7 @@ int flac__encode_wav(FILE *infile, long infilesize, const char *infilename, cons
return EncoderSession_finish_ok(&encoder_session, info_align_carry, info_align_zero);
}
int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, raw_encode_options_t options)
int flac__encode_raw(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, raw_encode_options_t options)
{
EncoderSession encoder_session;
size_t bytes_read;
......@@ -906,7 +913,7 @@ int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, cons
else {
/* *options.common.align_reservoir_samples will be 0 unless --sector-align is used */
FLAC__ASSERT(options.common.sector_align || *options.common.align_reservoir_samples == 0);
total_samples_in_input = (unsigned)infilesize / bytes_per_wide_sample + *options.common.align_reservoir_samples;
total_samples_in_input = (FLAC__uint64)infilesize / bytes_per_wide_sample + *options.common.align_reservoir_samples;
}
/*
......@@ -918,13 +925,13 @@ int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, cons
encoder_session.until = (FLAC__uint64)options.common.until_specification.value.samples;
FLAC__ASSERT(!options.common.sector_align || encoder_session.until == 0);
infilesize -= (unsigned)encoder_session.skip * bytes_per_wide_sample; /*@@@ WATCHOUT: 4GB limit */
infilesize -= (off_t)encoder_session.skip * bytes_per_wide_sample;
encoder_session.total_samples_to_encode = total_samples_in_input - encoder_session.skip;
if(encoder_session.until > 0) {
const FLAC__uint64 trim = total_samples_in_input - encoder_session.until;
FLAC__ASSERT(total_samples_in_input > 0);
FLAC__ASSERT(!options.common.sector_align);
infilesize -= (unsigned int)trim * bytes_per_wide_sample;
infilesize -= (off_t)trim * bytes_per_wide_sample;
encoder_session.total_samples_to_encode -= trim;
}
if(infilesize >= 0 && options.common.sector_align) {
......@@ -979,7 +986,7 @@ int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, cons
}
else {
*options.common.align_reservoir_samples = align_remainder;
infilesize -= (long)((*options.common.align_reservoir_samples) * bytes_per_wide_sample);
infilesize -= (off_t)((*options.common.align_reservoir_samples) * bytes_per_wide_sample);
FLAC__ASSERT(infilesize >= 0);
}
}
......@@ -1024,7 +1031,7 @@ int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, cons
}
}
else {
const FLAC__uint64 max_input_bytes = (FLAC__uint64)infilesize;
const FLAC__uint64 max_input_bytes = infilesize;
FLAC__uint64 total_input_bytes_read = 0;
while(total_input_bytes_read < max_input_bytes) {
{
......@@ -1858,7 +1865,7 @@ FLAC__bool parse_cuesheet_(FLAC__StreamMetadata **cuesheet, const char *cuesheet
}
if(0 == (f = fopen(cuesheet_filename, "r"))) {
flac__utils_printf(stderr, 1, "%s: ERROR opening cuesheet \"%s\" for reading\n", inbasefilename, cuesheet_filename);
flac__utils_printf(stderr, 1, "%s: ERROR opening cuesheet \"%s\" for reading: %s\n", inbasefilename, cuesheet_filename, strerror(errno));
return false;
}
......@@ -2143,7 +2150,7 @@ FLAC__bool fskip_ahead(FILE *f, FLAC__uint64 offset)
while(offset > 0) {
long need = (long)min(offset, LONG_MAX);
if(fseek(f, need, SEEK_CUR) < 0) {
if(fseeko(f, need, SEEK_CUR) < 0) {
need = (long)min(offset, sizeof(dump));
if((long)fread(dump, 1, need, f) < need)
return false;
......
......@@ -19,6 +19,11 @@
#ifndef flac__encode_h
#define flac__encode_h
/* needed because of off_t */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "FLAC/metadata.h"
#include "utils.h"
......@@ -84,8 +89,8 @@ typedef struct {
unsigned sample_rate;
} raw_encode_options_t;
int flac__encode_aif(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options, FLAC__bool is_aifc);
int flac__encode_wav(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options);
int flac__encode_raw(FILE *infile, long infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, raw_encode_options_t options);
int flac__encode_aif(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options, FLAC__bool is_aifc);
int flac__encode_wav(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, wav_encode_options_t options);
int flac__encode_raw(FILE *infile, off_t infilesize, const char *infilename, const char *outfilename, const FLAC__byte *lookahead, unsigned lookahead_length, raw_encode_options_t options);
#endif
/* flac - Command-line FLAC encoder/decoder
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <string.h>
#include "utils.h"
......
......@@ -16,7 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <locale.h>
#include <stdarg.h>
#include <stdio.h>
......@@ -24,10 +29,6 @@
#include <string.h>
#include <time.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#if !defined _MSC_VER && !defined __MINGW32__
/* unlink is in stdio.h in VC++ */
#include <unistd.h> /* for unlink() */
......@@ -245,7 +246,7 @@ static struct {
int format_channels;
int format_bps;
int format_sample_rate;
long format_input_size;
off_t format_input_size;
int blocksize;
int min_residual_partition_order;
int max_residual_partition_order;
......@@ -591,7 +592,7 @@ FLAC__bool init_options()
option_values.format_channels = -1;
option_values.format_bps = -1;
option_values.format_sample_rate = -1;
option_values.format_input_size = -1;
option_values.format_input_size = (off_t)(-1);
option_values.blocksize = -1;
option_values.min_residual_partition_order = -1;
option_values.max_residual_partition_order = -1;
......@@ -682,7 +683,23 @@ int parse_option(int short_option, const char *long_option, const char *option_a
}
else if(0 == strcmp(long_option, "input-size")) {
FLAC__ASSERT(0 != option_argument);
option_values.format_input_size = atol(option_argument);
{
char *end;
#ifdef _MSC_VER
FLAC__int64 i;
i = strtol(option_argument, &end, 10); /* [2G limit] */
#else
long long i;
i = strtoll(option_argument, &end, 10);
#endif
if(0 == strlen(option_argument) || *end)
return usage_error("ERROR: --%s must be a number\n", long_option);
option_values.format_input_size = (off_t)i;
if(option_values.format_input_size != i) /* check if off_t is smaller than long long */
return usage_error("ERROR: --%s too large; this flac does not support filesizes over 2GB\n", long_option);
if(option_values.format_input_size <= 0)
return usage_error("ERROR: --%s must be > 0\n", long_option);
}
}
else if(0 == strcmp(long_option, "cue")) {
FLAC__ASSERT(0 != option_argument);
......@@ -1533,7 +1550,7 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
FileFormat fmt = RAW;
FLAC__bool is_aifc = false;
int retval;
long infilesize;
off_t infilesize;
encode_options_t common_options;
const char *outfilename = get_encoded_outfilename(infilename);
......@@ -1552,13 +1569,13 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
}
if(0 == strcmp(infilename, "-")) {
infilesize = -1;
infilesize = (off_t)(-1);
encode_infile = grabbag__file_get_binary_stdin();
}
else {
infilesize = grabbag__file_get_filesize(infilename);
if(0 == (encode_infile = fopen(infilename, "rb"))) {
flac__utils_printf(stderr, 1, "ERROR: can't open input file %s\n", infilename);
flac__utils_printf(stderr, 1, "ERROR: can't open input file %s: %s\n", infilename, strerror(errno));
return 1;
}
}
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdlib.h> /* for malloc() */
#include <string.h> /* for memcpy(), memset() */
#include "private/bitbuffer.h"
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "private/bitmath.h"
#include "FLAC/assert.h"
......
......@@ -29,14 +29,14 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "private/cpu.h"
#include <stdlib.h>
#include <stdio.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#if defined FLAC__CPU_PPC
# if !defined FLAC__NO_ASM
# if defined FLAC__SYS_DARWIN
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "private/crc.h"
/* CRC-8, poly = x^8 + x^2 + x^1 + x^0, init = 0 */
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h> /* for malloc() */
#include <string.h> /* for strcmp() */
......@@ -36,6 +40,10 @@
#if defined _MSC_VER || defined __MINGW32__
#include <io.h> /* for _setmode() */
#include <fcntl.h> /* for _O_BINARY */
#include <sys/types.h> /* for off_t */
//@@@ [2G limit] hacks for MSVC6
#define fseeko fseek
#define ftello ftell
#elif defined __CYGWIN__
#include <io.h> /* for setmode(), O_BINARY */
#include <fcntl.h> /* for _O_BINARY */
......@@ -606,7 +614,7 @@ FLAC__SeekableStreamDecoderSeekStatus seek_callback_(const FLAC__SeekableStreamD
FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
(void)decoder;
if(fseek(file_decoder->private_->file, (long)absolute_byte_offset, SEEK_SET) < 0)
if(fseeko(file_decoder->private_->file, (off_t)absolute_byte_offset, SEEK_SET) < 0)
return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
else
return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
......@@ -615,10 +623,10 @@ FLAC__SeekableStreamDecoderSeekStatus seek_callback_(const FLAC__SeekableStreamD
FLAC__SeekableStreamDecoderTellStatus tell_callback_(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
{
FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
long pos;
off_t pos;
(void)decoder;
if((pos = ftell(file_decoder->private_->file)) < 0)
if((pos = ftello(file_decoder->private_->file)) < 0)
return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR;
else {
*absolute_byte_offset = (FLAC__uint64)pos;
......
......@@ -29,9 +29,19 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h> /* for malloc() */
#include <string.h> /* for strlen(), strcpy() */
#if defined _MSC_VER || defined __MINGW32__
#include <sys/types.h> /* for off_t */
//@@@ [2G limit] hacks for MSVC6
#define fseeko fseek
#define ftello ftell
#endif
#include "FLAC/assert.h"
#include "protected/file_encoder.h"
......@@ -724,7 +734,7 @@ FLAC__SeekableStreamEncoderSeekStatus seek_callback_(const FLAC__SeekableStreamE
FLAC__ASSERT(0 != file_encoder);
if(fseek(file_encoder->private_->file, (long)absolute_byte_offset, SEEK_SET) < 0)
if(fseeko(file_encoder->private_->file, (off_t)absolute_byte_offset, SEEK_SET) < 0)
return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_ERROR;
else
return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_OK;
......@@ -733,13 +743,13 @@ FLAC__SeekableStreamEncoderSeekStatus seek_callback_(const FLAC__SeekableStreamE
FLAC__SeekableStreamEncoderTellStatus tell_callback_(const FLAC__SeekableStreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
{
FLAC__FileEncoder *file_encoder = (FLAC__FileEncoder*)client_data;
long offset;
off_t offset;
(void)encoder;
FLAC__ASSERT(0 != file_encoder);
offset = ftell(file_encoder->private_->file);
offset = ftello(file_encoder->private_->file);
if(offset < 0) {
return FLAC__SEEKABLE_STREAM_ENCODER_TELL_STATUS_ERROR;
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <math.h>
#include "private/bitmath.h"
#include "private/fixed.h"
......
......@@ -29,6 +29,10 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include "FLAC/assert.h"
#include "private/float.h"
......
......@@ -29,16 +29,16 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h> /* for qsort() */
#include "FLAC/assert.h"
#include "FLAC/format.h"
#include "private/format.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef min
#undef min
#endif
......