Magellan Linux

Contents of /trunk/audiofile/patches/sfconvert-eradicator.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years ago) by niro
File size: 4345 byte(s)
-import

1 --- sfconvert.c.orig 2004-04-04 23:39:56.000000000 -0700
2 +++ sfconvert.c 2004-04-05 00:00:25.000000000 -0700
3 @@ -66,12 +66,14 @@
4
5 AFfilehandle infile, outfile;
6 AFfilesetup outfilesetup;
7 - int sampleFormat, sampleWidth, channelCount;
8 - double sampleRate;
9 + int sampleFormat, sampleWidth, channelCount, byteOrder;
10 + double sampleRate, outSampleRate;
11 + int outSampleRateInt = -1;
12 int outSampleFormat = -1, outSampleWidth = -1,
13 - outChannelCount = -1;
14 + outChannelCount = -1, outByteOrder = -1;
15 double outMaxAmp = 1.0;
16
17 +
18 AFframecount totalFrames;
19
20 if (argc < 3)
21 @@ -88,7 +90,10 @@
22 {
23 if (i + 1 >= argc)
24 usageerror();
25 - if (!strcmp(argv[i+1], "aiff"))
26 +
27 + if (!strcmp(argv[i+1], "raw"))
28 + outFileFormat = AF_FILE_RAWDATA;
29 + else if (!strcmp(argv[i+1], "aiff"))
30 outFileFormat = AF_FILE_AIFF;
31 else if (!strcmp(argv[i+1], "aifc"))
32 outFileFormat = AF_FILE_AIFFC;
33 @@ -98,6 +103,12 @@
34 outFileFormat = AF_FILE_NEXTSND;
35 else if (!strcmp(argv[i+1], "bics"))
36 outFileFormat = AF_FILE_BICSF;
37 + else if (!strcmp(argv[i+1], "avr"))
38 + outFileFormat = AF_FILE_AVR;
39 + else if (!strcmp(argv[i+1], "iff"))
40 + outFileFormat = AF_FILE_IFF_8SVX;
41 + else if (!strcmp(argv[i+1], "nist"))
42 + outFileFormat = AF_FILE_NIST_SPHERE;
43 else
44 {
45 fprintf(stderr, "sfconvert: Unknown format %s.\n", argv[i+1]);
46 @@ -107,6 +118,22 @@
47 /* Increment for argument. */
48 i++;
49 }
50 + else if (!strcmp(argv[i], "byteorder"))
51 + {
52 + if (i + 1 >= argc)
53 + usageerror();
54 +
55 + if(!strcmp("big", argv[i+1])) {
56 + outByteOrder = AF_BYTEORDER_BIGENDIAN;
57 + } else if(!strcmp("little", argv[i+1])) {
58 + outByteOrder = AF_BYTEORDER_LITTLEENDIAN;
59 + } else {
60 + usageerror();
61 + }
62 +
63 + /* Increment for argument. */
64 + i++;
65 + }
66 else if (!strcmp(argv[i], "channels"))
67 {
68 if (i + 1 >= argc)
69 @@ -119,6 +146,20 @@
70 /* Increment for argument. */
71 i++;
72 }
73 + else if (!strcmp(argv[i], "rate"))
74 + {
75 + if (i + 1 >= argc)
76 + usageerror();
77 +
78 + outSampleRateInt = atoi(argv[i+1]);
79 + if (outSampleRateInt <= 0)
80 + usageerror();
81 +
82 + outSampleRate = (double)outSampleRateInt;
83 +
84 + /* Increment for argument. */
85 + i++;
86 + }
87 else if (!strcmp(argv[i], "float"))
88 {
89 if (i + 1 >= argc)
90 @@ -170,6 +211,7 @@
91 totalFrames = afGetFrameCount(infile, AF_DEFAULT_TRACK);
92 channelCount = afGetChannels(infile, AF_DEFAULT_TRACK);
93 sampleRate = afGetRate(infile, AF_DEFAULT_TRACK);
94 + byteOrder = afGetByteOrder(infile, AF_DEFAULT_TRACK);
95 afGetSampleFormat(infile, AF_DEFAULT_TRACK, &sampleFormat, &sampleWidth);
96
97 /* Initialize output audio format parameters. */
98 @@ -184,14 +226,21 @@
99 outSampleWidth = sampleWidth;
100 }
101
102 + if (outByteOrder == -1)
103 + outByteOrder = byteOrder;
104 +
105 if (outChannelCount == -1)
106 outChannelCount = channelCount;
107
108 + if (outSampleRateInt == -1)
109 + outSampleRate = sampleRate;
110 +
111 afInitFileFormat(outfilesetup, outFileFormat);
112 afInitSampleFormat(outfilesetup, AF_DEFAULT_TRACK, outSampleFormat,
113 outSampleWidth);
114 afInitChannels(outfilesetup, AF_DEFAULT_TRACK, outChannelCount);
115 - afInitRate(outfilesetup, AF_DEFAULT_TRACK, sampleRate);
116 + afInitRate(outfilesetup, AF_DEFAULT_TRACK, outSampleRate);
117 + afInitByteOrder(outfilesetup, AF_DEFAULT_TRACK, outByteOrder);
118
119 outfile = afOpenFile(outfilename, "w", outfilesetup);
120 if (outfile == AF_NULL_FILEHANDLE)
121 @@ -228,6 +277,7 @@
122 printf("\n");
123
124 printf("Where keywords specify format of input or output soundfile:\n");
125 + printf(" rate n sample rate (22050, 44100, 48000, etc.)\n");
126 printf(" byteorder e endian (e is big or little)\n");
127 printf(" channels n n-channel file (1 or 2)\n");
128 printf(" format f file format f (see below)\n");
129 @@ -239,11 +289,15 @@
130
131 printf("Currently supported formats are:\n");
132 printf("\n");
133 + printf(" raw \n");
134 printf(" aiff Audio Interchange File Format\n");
135 printf(" aifc AIFF-C File Format\n");
136 printf(" next NeXT/Sun Format\n");
137 printf(" wave MS RIFF WAVE Format\n");
138 printf(" bics Berkeley/IRCAM/CARL Sound File Format\n");
139 + printf(" avr Audio Visual Research File Format\n");
140 + printf(" iff Amiga IFF/8SVX Sound File Format\n");
141 + printf(" nist NIST SPHERE File Format\n");
142 printf("\n");
143
144 exit(EXIT_FAILURE);