ref: 736d934754c8fc7c765c24f80ba74ed675454039
parent: d60075951a3154f3cb7b5a201701e44c94df2834
author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
date: Thu Aug 4 06:32:49 EDT 2011
Implements --speech and --music
--- a/src/opusenc.c
+++ b/src/opusenc.c
@@ -223,6 +223,8 @@
printf (" - stdout\n"); printf ("\n"); printf ("Options:\n");+ printf (" --speech Optimize for speech\n"); + printf (" --music Optimize for music\n"); printf (" --bitrate n Encoding bit-rate in kbit/sec\n"); printf (" --cbr Use constant bitrate encoding\n"); printf (" --comp n Encoding complexity (0-10)\n");@@ -283,6 +285,8 @@
{"mono", no_argument, NULL, 0}, {"stereo", no_argument, NULL, 0}, {"rate", required_argument, NULL, 0},+ {"music", no_argument, NULL, 0},+ {"speech", no_argument, NULL, 0}, {"version", no_argument, NULL, 0}, {"version-short", no_argument, NULL, 0}, {"comment", required_argument, NULL, 0},@@ -316,6 +320,7 @@
const char *opus_version;
SpeexResamplerState *resampler=NULL;
int extra_samples;
+ int signal = OPUS_SIGNAL_AUTO;
opus_version = opus_get_version_string();
snprintf(vendor_string, sizeof(vendor_string), "%s\n",opus_version);
@@ -377,6 +382,12 @@
} else if (strcmp(long_options[option_index].name,"rate")==0)
{rate=atoi (optarg);
+ } else if (strcmp(long_options[option_index].name,"music")==0)
+ {+ signal = OPUS_SIGNAL_MUSIC;
+ } else if (strcmp(long_options[option_index].name,"speech")==0)
+ {+ signal = OPUS_SIGNAL_VOICE;
} else if (strcmp(long_options[option_index].name,"comp")==0)
{complexity=atoi (optarg);
@@ -488,6 +499,7 @@
/*Initialize OPUS encoder*/
st = opus_encoder_create(48000, chan, OPUS_APPLICATION_AUDIO);
+ opus_encoder_ctl(st, OPUS_SET_SIGNAL(signal));
header.channels = chan;
opus_encoder_ctl(st, OPUS_GET_LOOKAHEAD(&lookahead));
header.preskip = lookahead;
--
⑨