Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / miscellany / multi-media / SPARC / SOUND.diff
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) */