--- libao2/ao_jack.c.orig 2004-10-06 16:53:57.727391270 +0100 +++ libao2/ao_jack.c 2004-10-06 16:56:38.352316988 +0100 @@ -34,6 +34,7 @@ long JACK_Write(int deviceID, char *data, unsigned long bytes); /* returns the number of bytes written */ long JACK_GetJackLatency(int deviceID); /* return the latency in milliseconds of jack */ int JACK_SetState(int deviceID, enum status_enum state); /* playing, paused, stopped */ +int JACK_SetAllVolume(int deviceID, unsigned int volume); /* returns 0 on success */ int JACK_SetVolumeForChannel(int deviceID, unsigned int channel, unsigned int volume); /* return 0 on success */ void JACK_GetVolumeForChannel(int deviceID, unsigned int channel, unsigned int *volume); // @@ -134,7 +135,14 @@ "AO: [Jack] JACK_Open() failed, error %d\n", err); return 0; } - + + err = JACK_SetAllVolume(driver, 100); + if(err != ERR_SUCCESS) { + // This is not fatal, but would be peculiar... + mp_msg(MSGT_AO, MSGL_ERR, + "AO: [Jack] JACK_SetAllVolume() failed, error %d\n", err); + } + ao_data.format = format; ao_data.channels = channels; ao_data.samplerate = rate;