1 *** :raw2audio.c Thu Oct 11 13:12:39 1990
2 --- raw2audio.c Fri Nov 1 17:20:00 1991
7 char prog_desc[] = "Convert raw data to audio file format";
8 ! char prog_opts[] = "o:s:p:e:c:i:f?"; /* getopt() flags */
10 char *Stdin = "stdin";
11 char *Stdout = "stdout";
15 char prog_desc[] = "Convert raw data to audio file format";
16 ! char prog_opts[] = "o:s:p:e:c:i:fF?"; /* getopt() flags */
18 char *Stdin = "stdin";
19 char *Stdout = "stdout";
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 */
33 Info = optarg; /* set information string */
37 + Strip++; /* strip header */
40 Force++; /* force header rewrite */
45 if (Hdr.bytes_per_unit < 4)
48 + case AUDIO_ENCODING_ADPCM:
49 + if (Hdr.bytes_per_unit != 1)
54 Error(stderr, "%s: encoding/precision mismatch\n",
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)
67 *dst = AUDIO_ENCODING_LINEAR;
68 else if (strncmp(str, "FLOAT", i) == 0)
69 *dst = AUDIO_ENCODING_FLOAT;
72 ! "%s: encoding must be one of: ULAW, LINEAR, FLOAT\n", prog);
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;
84 ! "%s: encoding must be one of: ULAW, LINEAR, FLOAT, ADPCM\n", prog);
88 *** multimedia/:audio_hdr.h Thu Oct 11 13:12:45 1990
89 --- multimedia/audio_hdr.h Fri Nov 1 09:47:12 1991
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*/
99 /* Value used for indeterminate size (e.g., data passed through a pipe) */