Mercurial > hg > Applications > mh
diff miscellany/multi-media/SPARC/SOUND.diff @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/miscellany/multi-media/SPARC/SOUND.diff Mon Apr 18 23:46:02 2005 +0900 @@ -0,0 +1,99 @@ +*** :raw2audio.c Thu Oct 11 13:12:39 1990 +--- raw2audio.c Fri Nov 1 17:20:00 1991 +*************** +*** 23,29 **** + /* Local variables */ + char *prog; + char prog_desc[] = "Convert raw data to audio file format"; +! char prog_opts[] = "o:s:p:e:c:i:f?"; /* getopt() flags */ + + char *Stdin = "stdin"; + char *Stdout = "stdout"; +--- 23,29 ---- + /* Local variables */ + char *prog; + char prog_desc[] = "Convert raw data to audio file format"; +! char prog_opts[] = "o:s:p:e:c:i:fF?"; /* getopt() flags */ + + char *Stdin = "stdin"; + char *Stdout = "stdout"; +*************** +*** 34,39 **** +--- 34,40 ---- + char *Info = NULL; /* pointer to info data */ + unsigned Ilen = 0; /* length of info data */ + int Force = 0; /* rewrite file header, if present */ ++ int Strip = 0; /* strip header */ + unsigned Offset = 0; /* byte offset into raw data */ + Audio_hdr Hdr; /* audio header structure */ + char *ofile; /* output temporary file name */ +*************** +*** 139,144 **** +--- 140,148 ---- + Info = optarg; /* set information string */ + Ilen = strlen(Info); + break; ++ case 'F': ++ Strip++; /* strip header */ ++ /* and fall... */ + case 'f': + Force++; /* force header rewrite */ + break; +*************** +*** 161,166 **** +--- 165,174 ---- + if (Hdr.bytes_per_unit < 4) + err++; + break; ++ case AUDIO_ENCODING_ADPCM: ++ if (Hdr.bytes_per_unit != 1) ++ err++; ++ break; + } + if (err > 0) { + Error(stderr, "%s: encoding/precision mismatch\n", +*************** +*** 317,322 **** +--- 325,331 ---- + /* Write the audio file header first. */ + if (Hdr.data_size != AUDIO_UNKNOWN_SIZE) + Hdr.data_size -= Offset; ++ if (Strip) goto copydata; + err = audio_write_filehdr(ofd, &Hdr, Info, Ilen); + if (err != AUDIO_SUCCESS) + goto writeerror; +*************** +*** 435,443 **** + *dst = AUDIO_ENCODING_LINEAR; + else if (strncmp(str, "FLOAT", i) == 0) + *dst = AUDIO_ENCODING_FLOAT; + else { + Error(stderr, +! "%s: encoding must be one of: ULAW, LINEAR, FLOAT\n", prog); + return (1); + } + return (0); +--- 444,454 ---- + *dst = AUDIO_ENCODING_LINEAR; + else if (strncmp(str, "FLOAT", i) == 0) + *dst = AUDIO_ENCODING_FLOAT; ++ else if (strncmp(str, "ADPCM", i) == 0) ++ *dst = AUDIO_ENCODING_ADPCM; + else { + Error(stderr, +! "%s: encoding must be one of: ULAW, LINEAR, FLOAT, ADPCM\n", prog); + return (1); + } + return (0); +*** multimedia/:audio_hdr.h Thu Oct 11 13:12:45 1990 +--- multimedia/audio_hdr.h Fri Nov 1 09:47:12 1991 +*************** +*** 72,77 **** +--- 72,78 ---- + #define AUDIO_ENCODING_ALAW (2) /* ISDN A-law */ + #define AUDIO_ENCODING_LINEAR (3) /* PCM 2's-complement (0-center) */ + #define AUDIO_ENCODING_FLOAT (4) /* IEEE float (-1. <-> +1.) */ ++ #define AUDIO_ENCODING_ADPCM (23) /* CCITT G.721*/ + + + /* Value used for indeterminate size (e.g., data passed through a pipe) */