Mercurial > hg > Applications > mh
comparison miscellany/multi-media/SPARC/SOUND.diff @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bce86c4163a3 |
---|---|
1 *** :raw2audio.c Thu Oct 11 13:12:39 1990 | |
2 --- raw2audio.c Fri Nov 1 17:20:00 1991 | |
3 *************** | |
4 *** 23,29 **** | |
5 /* Local variables */ | |
6 char *prog; | |
7 char prog_desc[] = "Convert raw data to audio file format"; | |
8 ! char prog_opts[] = "o:s:p:e:c:i:f?"; /* getopt() flags */ | |
9 | |
10 char *Stdin = "stdin"; | |
11 char *Stdout = "stdout"; | |
12 --- 23,29 ---- | |
13 /* Local variables */ | |
14 char *prog; | |
15 char prog_desc[] = "Convert raw data to audio file format"; | |
16 ! char prog_opts[] = "o:s:p:e:c:i:fF?"; /* getopt() flags */ | |
17 | |
18 char *Stdin = "stdin"; | |
19 char *Stdout = "stdout"; | |
20 *************** | |
21 *** 34,39 **** | |
22 --- 34,40 ---- | |
23 char *Info = NULL; /* pointer to info data */ | |
24 unsigned Ilen = 0; /* length of info data */ | |
25 int Force = 0; /* rewrite file header, if present */ | |
26 + int Strip = 0; /* strip header */ | |
27 unsigned Offset = 0; /* byte offset into raw data */ | |
28 Audio_hdr Hdr; /* audio header structure */ | |
29 char *ofile; /* output temporary file name */ | |
30 *************** | |
31 *** 139,144 **** | |
32 --- 140,148 ---- | |
33 Info = optarg; /* set information string */ | |
34 Ilen = strlen(Info); | |
35 break; | |
36 + case 'F': | |
37 + Strip++; /* strip header */ | |
38 + /* and fall... */ | |
39 case 'f': | |
40 Force++; /* force header rewrite */ | |
41 break; | |
42 *************** | |
43 *** 161,166 **** | |
44 --- 165,174 ---- | |
45 if (Hdr.bytes_per_unit < 4) | |
46 err++; | |
47 break; | |
48 + case AUDIO_ENCODING_ADPCM: | |
49 + if (Hdr.bytes_per_unit != 1) | |
50 + err++; | |
51 + break; | |
52 } | |
53 if (err > 0) { | |
54 Error(stderr, "%s: encoding/precision mismatch\n", | |
55 *************** | |
56 *** 317,322 **** | |
57 --- 325,331 ---- | |
58 /* Write the audio file header first. */ | |
59 if (Hdr.data_size != AUDIO_UNKNOWN_SIZE) | |
60 Hdr.data_size -= Offset; | |
61 + if (Strip) goto copydata; | |
62 err = audio_write_filehdr(ofd, &Hdr, Info, Ilen); | |
63 if (err != AUDIO_SUCCESS) | |
64 goto writeerror; | |
65 *************** | |
66 *** 435,443 **** | |
67 *dst = AUDIO_ENCODING_LINEAR; | |
68 else if (strncmp(str, "FLOAT", i) == 0) | |
69 *dst = AUDIO_ENCODING_FLOAT; | |
70 else { | |
71 Error(stderr, | |
72 ! "%s: encoding must be one of: ULAW, LINEAR, FLOAT\n", prog); | |
73 return (1); | |
74 } | |
75 return (0); | |
76 --- 444,454 ---- | |
77 *dst = AUDIO_ENCODING_LINEAR; | |
78 else if (strncmp(str, "FLOAT", i) == 0) | |
79 *dst = AUDIO_ENCODING_FLOAT; | |
80 + else if (strncmp(str, "ADPCM", i) == 0) | |
81 + *dst = AUDIO_ENCODING_ADPCM; | |
82 else { | |
83 Error(stderr, | |
84 ! "%s: encoding must be one of: ULAW, LINEAR, FLOAT, ADPCM\n", prog); | |
85 return (1); | |
86 } | |
87 return (0); | |
88 *** multimedia/:audio_hdr.h Thu Oct 11 13:12:45 1990 | |
89 --- multimedia/audio_hdr.h Fri Nov 1 09:47:12 1991 | |
90 *************** | |
91 *** 72,77 **** | |
92 --- 72,78 ---- | |
93 #define AUDIO_ENCODING_ALAW (2) /* ISDN A-law */ | |
94 #define AUDIO_ENCODING_LINEAR (3) /* PCM 2's-complement (0-center) */ | |
95 #define AUDIO_ENCODING_FLOAT (4) /* IEEE float (-1. <-> +1.) */ | |
96 + #define AUDIO_ENCODING_ADPCM (23) /* CCITT G.721*/ | |
97 | |
98 | |
99 /* Value used for indeterminate size (e.g., data passed through a pipe) */ |