Commit a9aa3467 authored by Michael Niedermayer's avatar Michael Niedermayer

change audio volume range so that the very slow division by 100 can be avoided

alternatively we could also use a nicer default = 100 or 1.0 scale and internally change it (patch welcome)

Originally committed as revision 4066 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 7e987c33
...@@ -254,7 +254,7 @@ static char *video_standard = "ntsc"; ...@@ -254,7 +254,7 @@ static char *video_standard = "ntsc";
static char *audio_grab_format = "audio_device"; static char *audio_grab_format = "audio_device";
static char *audio_device = NULL; static char *audio_device = NULL;
static int audio_volume = 100; // static int audio_volume = 256;
static int using_stdin = 0; static int using_stdin = 0;
static int using_vhook = 0; static int using_vhook = 0;
...@@ -1212,12 +1212,11 @@ static int output_packet(AVInputStream *ist, int ist_index, ...@@ -1212,12 +1212,11 @@ static int output_packet(AVInputStream *ist, int ist_index,
// preprocess audio (volume) // preprocess audio (volume)
if (ist->st->codec.codec_type == CODEC_TYPE_AUDIO) { if (ist->st->codec.codec_type == CODEC_TYPE_AUDIO) {
if (audio_volume != 100) { if (audio_volume != 256) {
short *volp; short *volp;
int v;
volp = samples; volp = samples;
for(i=0;i<(data_size / sizeof(short));i++) { for(i=0;i<(data_size / sizeof(short));i++) {
v = (*volp) * audio_volume / 100; int v = ((*volp) * audio_volume + 128) >> 8;
if (v < -32768) v = -32768; if (v < -32768) v = -32768;
if (v > 32767) v = 32767; if (v > 32767) v = 32767;
*volp++ = v; *volp++ = v;
...@@ -4091,7 +4090,7 @@ const OptionDef options[] = { ...@@ -4091,7 +4090,7 @@ const OptionDef options[] = {
{ "an", OPT_BOOL | OPT_AUDIO, {(void*)&audio_disable}, "disable audio" }, { "an", OPT_BOOL | OPT_AUDIO, {(void*)&audio_disable}, "disable audio" },
{ "acodec", HAS_ARG | OPT_AUDIO, {(void*)opt_audio_codec}, "force audio codec ('copy' to copy stream)", "codec" }, { "acodec", HAS_ARG | OPT_AUDIO, {(void*)opt_audio_codec}, "force audio codec ('copy' to copy stream)", "codec" },
{ "atag", HAS_ARG | OPT_EXPERT | OPT_AUDIO, {(void*)opt_audio_tag}, "force audio tag/fourcc", "fourcc/tag" }, { "atag", HAS_ARG | OPT_EXPERT | OPT_AUDIO, {(void*)opt_audio_tag}, "force audio tag/fourcc", "fourcc/tag" },
{ "vol", OPT_INT | HAS_ARG | OPT_AUDIO, {(void*)&audio_volume}, "change audio volume (100=normal)" , "volume" }, // { "vol", OPT_INT | HAS_ARG | OPT_AUDIO, {(void*)&audio_volume}, "change audio volume (256=normal)" , "volume" }, //
/* grab options */ /* grab options */
{ "vd", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB, {(void*)opt_video_device}, "set video grab device", "device" }, { "vd", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB, {(void*)opt_video_device}, "set video grab device", "device" },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment