summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <eradicator@gentoo.org>2004-04-05 07:20:53 +0000
committerJeremy Huddleston <eradicator@gentoo.org>2004-04-05 07:20:53 +0000
commit949c899ad9d6512f7eca7a75fff78543c8dca0f8 (patch)
treefa930ad6f4e21edbce97095c11df5a466e24a9c3 /media-libs/audiofile/files/sfconvert-eradicator.patch
parentmanifest (diff)
downloadgentoo-2-949c899ad9d6512f7eca7a75fff78543c8dca0f8.tar.gz
gentoo-2-949c899ad9d6512f7eca7a75fff78543c8dca0f8.tar.bz2
gentoo-2-949c899ad9d6512f7eca7a75fff78543c8dca0f8.zip
Added functionality to sfconvert. Patch sent upstream.
Diffstat (limited to 'media-libs/audiofile/files/sfconvert-eradicator.patch')
-rw-r--r--media-libs/audiofile/files/sfconvert-eradicator.patch144
1 files changed, 144 insertions, 0 deletions
diff --git a/media-libs/audiofile/files/sfconvert-eradicator.patch b/media-libs/audiofile/files/sfconvert-eradicator.patch
new file mode 100644
index 000000000000..d25b79cff81e
--- /dev/null
+++ b/media-libs/audiofile/files/sfconvert-eradicator.patch
@@ -0,0 +1,144 @@
+--- sfconvert.c.orig 2004-04-04 23:39:56.000000000 -0700
++++ sfconvert.c 2004-04-05 00:00:25.000000000 -0700
+@@ -66,12 +66,14 @@
+
+ AFfilehandle infile, outfile;
+ AFfilesetup outfilesetup;
+- int sampleFormat, sampleWidth, channelCount;
+- double sampleRate;
++ int sampleFormat, sampleWidth, channelCount, byteOrder;
++ double sampleRate, outSampleRate;
++ int outSampleRateInt = -1;
+ int outSampleFormat = -1, outSampleWidth = -1,
+- outChannelCount = -1;
++ outChannelCount = -1, outByteOrder = -1;
+ double outMaxAmp = 1.0;
+
++
+ AFframecount totalFrames;
+
+ if (argc < 3)
+@@ -88,7 +90,10 @@
+ {
+ if (i + 1 >= argc)
+ usageerror();
+- if (!strcmp(argv[i+1], "aiff"))
++
++ if (!strcmp(argv[i+1], "raw"))
++ outFileFormat = AF_FILE_RAWDATA;
++ else if (!strcmp(argv[i+1], "aiff"))
+ outFileFormat = AF_FILE_AIFF;
+ else if (!strcmp(argv[i+1], "aifc"))
+ outFileFormat = AF_FILE_AIFFC;
+@@ -98,6 +103,12 @@
+ outFileFormat = AF_FILE_NEXTSND;
+ else if (!strcmp(argv[i+1], "bics"))
+ outFileFormat = AF_FILE_BICSF;
++ else if (!strcmp(argv[i+1], "avr"))
++ outFileFormat = AF_FILE_AVR;
++ else if (!strcmp(argv[i+1], "iff"))
++ outFileFormat = AF_FILE_IFF_8SVX;
++ else if (!strcmp(argv[i+1], "nist"))
++ outFileFormat = AF_FILE_NIST_SPHERE;
+ else
+ {
+ fprintf(stderr, "sfconvert: Unknown format %s.\n", argv[i+1]);
+@@ -107,6 +118,22 @@
+ /* Increment for argument. */
+ i++;
+ }
++ else if (!strcmp(argv[i], "byteorder"))
++ {
++ if (i + 1 >= argc)
++ usageerror();
++
++ if(!strcmp("big", argv[i+1])) {
++ outByteOrder = AF_BYTEORDER_BIGENDIAN;
++ } else if(!strcmp("little", argv[i+1])) {
++ outByteOrder = AF_BYTEORDER_LITTLEENDIAN;
++ } else {
++ usageerror();
++ }
++
++ /* Increment for argument. */
++ i++;
++ }
+ else if (!strcmp(argv[i], "channels"))
+ {
+ if (i + 1 >= argc)
+@@ -119,6 +146,20 @@
+ /* Increment for argument. */
+ i++;
+ }
++ else if (!strcmp(argv[i], "rate"))
++ {
++ if (i + 1 >= argc)
++ usageerror();
++
++ outSampleRateInt = atoi(argv[i+1]);
++ if (outSampleRateInt <= 0)
++ usageerror();
++
++ outSampleRate = (double)outSampleRateInt;
++
++ /* Increment for argument. */
++ i++;
++ }
+ else if (!strcmp(argv[i], "float"))
+ {
+ if (i + 1 >= argc)
+@@ -170,6 +211,7 @@
+ totalFrames = afGetFrameCount(infile, AF_DEFAULT_TRACK);
+ channelCount = afGetChannels(infile, AF_DEFAULT_TRACK);
+ sampleRate = afGetRate(infile, AF_DEFAULT_TRACK);
++ byteOrder = afGetByteOrder(infile, AF_DEFAULT_TRACK);
+ afGetSampleFormat(infile, AF_DEFAULT_TRACK, &sampleFormat, &sampleWidth);
+
+ /* Initialize output audio format parameters. */
+@@ -184,14 +226,21 @@
+ outSampleWidth = sampleWidth;
+ }
+
++ if (outByteOrder == -1)
++ outByteOrder = byteOrder;
++
+ if (outChannelCount == -1)
+ outChannelCount = channelCount;
+
++ if (outSampleRateInt == -1)
++ outSampleRate = sampleRate;
++
+ afInitFileFormat(outfilesetup, outFileFormat);
+ afInitSampleFormat(outfilesetup, AF_DEFAULT_TRACK, outSampleFormat,
+ outSampleWidth);
+ afInitChannels(outfilesetup, AF_DEFAULT_TRACK, outChannelCount);
+- afInitRate(outfilesetup, AF_DEFAULT_TRACK, sampleRate);
++ afInitRate(outfilesetup, AF_DEFAULT_TRACK, outSampleRate);
++ afInitByteOrder(outfilesetup, AF_DEFAULT_TRACK, outByteOrder);
+
+ outfile = afOpenFile(outfilename, "w", outfilesetup);
+ if (outfile == AF_NULL_FILEHANDLE)
+@@ -228,6 +277,7 @@
+ printf("\n");
+
+ printf("Where keywords specify format of input or output soundfile:\n");
++ printf(" rate n sample rate (22050, 44100, 48000, etc.)\n");
+ printf(" byteorder e endian (e is big or little)\n");
+ printf(" channels n n-channel file (1 or 2)\n");
+ printf(" format f file format f (see below)\n");
+@@ -239,11 +289,15 @@
+
+ printf("Currently supported formats are:\n");
+ printf("\n");
++ printf(" raw \n");
+ printf(" aiff Audio Interchange File Format\n");
+ printf(" aifc AIFF-C File Format\n");
+ printf(" next NeXT/Sun Format\n");
+ printf(" wave MS RIFF WAVE Format\n");
+ printf(" bics Berkeley/IRCAM/CARL Sound File Format\n");
++ printf(" avr Audio Visual Research File Format\n");
++ printf(" iff Amiga IFF/8SVX Sound File Format\n");
++ printf(" nist NIST SPHERE File Format\n");
+ printf("\n");
+
+ exit(EXIT_FAILURE);