diff options
Diffstat (limited to 'media-sound/wavsplit/files/wavsplit-1.2.1-large-files.patch')
-rw-r--r-- | media-sound/wavsplit/files/wavsplit-1.2.1-large-files.patch | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/media-sound/wavsplit/files/wavsplit-1.2.1-large-files.patch b/media-sound/wavsplit/files/wavsplit-1.2.1-large-files.patch new file mode 100644 index 000000000000..ff27231be65e --- /dev/null +++ b/media-sound/wavsplit/files/wavsplit-1.2.1-large-files.patch @@ -0,0 +1,193 @@ +--- Makefile 2004-11-17 23:19:17.000000000 +0100 ++++ Makefile 2005-01-16 21:23:33.000000000 +0100 +@@ -6,7 +6,7 @@ + version = 1.2.1 + + CC = gcc +-CFLAGS += -Wall ++CFLAGS += -Wall -D_FILE_OFFSET_BITS=64 + LIBS = -lm + + all: wavsplit wavren +--- wavsplit.c 2004-11-17 23:19:17.000000000 +0100 ++++ wavsplit.c 2005-01-16 22:04:39.000000000 +0100 +@@ -269,9 +269,9 @@ + timepos * split) + { + char *buf, *bp_out; +- long to_write, to_read, n_read, pos; ++ off_t to_write, to_read, n_read, pos; + int fnr = 0; +- unsigned long in_blk_size; ++ off_t in_blk_size; + struct stat stat_buf; + + /* Buffer reservieren */ +@@ -282,8 +282,8 @@ + in_blk_size = stat_buf.st_blksize; + buf = malloc (in_blk_size + 1); + if (buf == NULL) { +- fprintf (stderr, "Could not allocate %ld bytes of memory.\n", +- in_blk_size + 1); ++ fprintf (stderr, "Could not allocate %llu bytes of memory.\n", ++ (in_blk_size + 1)); + return 1; + } + /* if (verbose) printf("Allocated %ld bytes for buffer.\n", in_blk_size+1); */ +@@ -295,7 +295,7 @@ + return 1; + + do { +- n_read = (long) stdread (buf, in_blk_size + 1); ++ n_read = stdread (buf, in_blk_size + 1); + if (n_read < 0) { + fprintf (stderr, "Error while reading.\n"); + return 1; +@@ -336,7 +336,7 @@ + else { + if (verbose) + printf +- ("[%02d]\tuntil the end %12ld 100.00%%\n", ++ ("[%02d]\tuntil the end %12llu 100.00%%\n", + fnr + 1, databytes); + } + } +@@ -374,7 +374,7 @@ + int readheader () + { + char ibuffer[BUFFERSIZE]; +- u_long offset; ++ off_t offset; + + if (lseek (ifd, 0L, SEEK_SET)) { + fprintf (stderr, "Could not locate beginning of input file\n"); +@@ -425,9 +425,22 @@ + ptr += 4; /* we move past data */ + memcpy (&databytes, ptr, sizeof (u_long)); + +- offset = (u_long) ptr + 4 - (u_long) ibuffer; ++ struct stat stat_buf; ++ ++ /* Buffer reservieren */ ++ if (fstat (ifd, &stat_buf) < 0) { ++ fprintf (stderr, "Could not read input file state.\n"); ++ return 1; ++ } ++ if(stat_buf.st_size > databytes) { ++ printf("Actual size of file (%llu) is larger than the databytes (%llu), setting to actual size: %llu!\n", ++ stat_buf.st_size, databytes + (ptr - ibuffer) + 4, stat_buf.st_size - (ptr - ibuffer) - 4 ); ++ databytes = stat_buf.st_size - (ptr - ibuffer) - 4 ; ++ } ++ ++ offset = ptr + 4 - ibuffer; + if (lseek (ifd, offset, SEEK_SET) == -1) { +- fprintf (stderr, "Error seeking to WAV data at %lu\n", offset); ++ fprintf (stderr, "Error seeking to WAV data at %llu\n", offset); + return 1; + } + +@@ -435,7 +448,7 @@ + printf ("Channels: %d\n", waveformat.wChannels); + printf ("Samplerate: %ldHz\n", waveformat.dwSamplesPerSec); + printf ("Samplebits: %d\n", waveformat.wBitsPerSample); +- printf ("Databytes: %ld\n\n", databytes); ++ printf ("Databytes: %llu\n\n", databytes); + printf ("Split Hours Mins Seconds Bytes %%\n"); + //printf("Blocks: %ld\n",databytes/waveformat.wBlockAlign); + } +@@ -473,7 +486,7 @@ + return NULL; + } + +-int createout (int num, long datasize) ++int createout (int num, off_t datasize) + { + char ofile[MAX_PATH + 1]; + sprintf (ofile, "%s/%02d.wav", basename, num); +@@ -517,7 +530,7 @@ + TimeFloat = hr* 3600.0 + min * 60.0 + sek + (frames/fps); + + */ +-long calcsplit (unsigned int UseHours, unsigned int UseFrames, ++off_t calcsplit (unsigned int UseHours, unsigned int UseFrames, + unsigned int fps, unsigned int UseTrackLens, + int splitnr, timepos * split) + { +@@ -526,7 +539,7 @@ + + double TimeFloat = 0.0; + double SplitTimeFloat = 0.0; +- long pos; ++ off_t pos; + unsigned int Opt = 2 * UseHours + UseFrames; + + switch (Opt) { +@@ -569,7 +582,7 @@ + /* first calculate to the nearest sample, then scale by the */ + /* block size to avoid getting e.g. half a block */ + +- pos = (long) ((SplitTimeFloat * (double) waveformat.dwSamplesPerSec)); ++ pos = (off_t) ((SplitTimeFloat * (double) waveformat.dwSamplesPerSec)); + pos = pos * waveformat.wBlockAlign; + + if (verbose) { +@@ -581,24 +594,24 @@ + } + } + if (UseFrames) +- printf ("%5d %8.3f %12ld %3.2f%%\n", ++ printf ("%5d %8.3f %12llu %3.2f%%\n", + split[splitnr].min, + (double) split[splitnr].seki + + ((double) split[splitnr].frames / (double) fps), pos, + (float) pos / (float) databytes * 100); + + else +- printf ("%5d %8.3f %12ld %3.2f%%\n", ++ printf ("%5d %8.3f %12llu %3.2f%%\n", + split[splitnr].min, + split[splitnr].sek, pos, (float) pos / (float) databytes * 100); + + return pos; + } + +-long stdread (char *buf, long nchars) ++off_t stdread (char *buf, off_t nchars) + { +- int n_read; +- int to_be_read = nchars; ++ off_t n_read; ++ off_t to_be_read = nchars; + + while (to_be_read) { + n_read = read (ifd, buf, to_be_read); +--- wavsplit.h 2004-11-17 23:19:17.000000000 +0100 ++++ wavsplit.h 2005-01-16 21:23:33.000000000 +0100 +@@ -121,15 +121,15 @@ + static int split (unsigned int UseHours, unsigned int UseFrames, + unsigned int fps, unsigned int UseTrackLens, + int splits, timepos * splitpos); +-static long calcsplit (unsigned int UseHours, unsigned int UseFrames, ++static off_t calcsplit (unsigned int UseHours, unsigned int UseFrames, + unsigned int fps, unsigned int UseTrackLens, + int splitnr, timepos * split); +-static int createout (); ++static int createout (int num, off_t datasize); + int closeout (); + void display (unsigned char avgleft, unsigned char avgright, + unsigned char avgloud); + static void usage (); +-static long stdread (char *buf, long nchars); ++static off_t stdread (char *buf, off_t nchars); + #ifdef __powerpc__ + static _ConvertHeaderFromNative (WAVE_HEADER * hdr); + static _ConvertHeaderToNative (WAVE_HEADER * hdr); +@@ -137,7 +137,7 @@ + + static char *ptr; + static WAVEFORMAT waveformat; +-static u_long databytes, b; ++static off_t databytes, b; + static int ifd, ofd; + static int verbose; + static char basename[MAX_PATH + 1], ifile[MAX_PATH + 1]; |