summaryrefslogtreecommitdiffstats
path: root/libao2
diff options
context:
space:
mode:
Diffstat (limited to 'libao2')
-rw-r--r--libao2/ao_jack.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libao2/ao_jack.c b/libao2/ao_jack.c
index 56a39deb72..ec7d1e5381 100644
--- a/libao2/ao_jack.c
+++ b/libao2/ao_jack.c
@@ -207,6 +207,8 @@ static void print_help ()
"\nOptions:\n"
" port=<port name>\n"
" Connects to the given ports instead of the default physical ones\n"
+ " name=<client name>\n"
+ " Client name to pass to JACK\n"
" estimate\n"
" Estimates the amount of data in buffers (experimental)\n");
}
@@ -214,9 +216,10 @@ static void print_help ()
static int init(int rate, int channels, int format, int flags) {
const char **matching_ports = NULL;
char *port_name = NULL;
- char client_name[40];
+ char *client_name = NULL;
opt_t subopts[] = {
{"port", OPT_ARG_MSTRZ, &port_name, NULL},
+ {"name", OPT_ARG_MSTRZ, &client_name, NULL},
{"estimate", OPT_ARG_BOOL, &estimate, NULL},
{NULL}
};
@@ -231,7 +234,10 @@ static int init(int rate, int channels, int format, int flags) {
mp_msg(MSGT_AO, MSGL_FATAL, "[JACK] Invalid number of channels: %i\n", channels);
goto err_out;
}
+ if (!client_name) {
+ client_name = (char *)malloc(40);
sprintf(client_name, "MPlayer [%d]", getpid());
+ }
client = jack_client_new(client_name);
if (!client) {
mp_msg(MSGT_AO, MSGL_FATAL, "[JACK] cannot open server\n");
@@ -286,11 +292,13 @@ static int init(int rate, int channels, int format, int flags) {
ao_data.outburst = CHUNK_SIZE;
free(matching_ports);
free(port_name);
+ free(client_name);
return 1;
err_out:
free(matching_ports);
free(port_name);
+ free(client_name);
if (client)
jack_client_close(client);
free(buffer);