summaryrefslogtreecommitdiffstats
path: root/audio/out
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-07 15:54:35 +0100
committerwm4 <wm4@nowhere>2014-11-07 15:54:35 +0100
commitb814b7ca84a85a6c17c4ab85ae9855afb62bc237 (patch)
treeced176126a7a58f9b8a6d034d27889f380164d11 /audio/out
parent01141198be2beaec58928355b59ce5882027866e (diff)
downloadmpv-b814b7ca84a85a6c17c4ab85ae9855afb62bc237.tar.bz2
mpv-b814b7ca84a85a6c17c4ab85ae9855afb62bc237.tar.xz
audio: add --audio-client-name option
The main need I see for this is with libmpv - it would be confusing if some application showed up as "mpv" on whateverthehell PulseAudio uses it for (generally it does show up on various PA GUI tools).
Diffstat (limited to 'audio/out')
-rw-r--r--audio/out/ao.c2
-rw-r--r--audio/out/ao_pulse.c7
-rw-r--r--audio/out/internal.h3
3 files changed, 7 insertions, 5 deletions
diff --git a/audio/out/ao.c b/audio/out/ao.c
index b94e459091..baf6db1e45 100644
--- a/audio/out/ao.c
+++ b/audio/out/ao.c
@@ -207,6 +207,8 @@ static struct ao *ao_alloc_pb(bool probing, struct mpv_global *global,
match_ao_driver(ao->driver->name, opts->audio_device, &ao->device);
ao->device = talloc_strdup(ao, ao->device);
+ ao->client_name = talloc_strdup(ao, opts->audio_client_name);
+
return ao;
}
diff --git a/audio/out/ao_pulse.c b/audio/out/ao_pulse.c
index e1f339f20b..f9fe64d84d 100644
--- a/audio/out/ao_pulse.c
+++ b/audio/out/ao_pulse.c
@@ -35,8 +35,6 @@
#include "ao.h"
#include "internal.h"
-#define PULSE_CLIENT_NAME "mpv"
-
#define VOL_PA2MP(v) ((v) * 100 / PA_VOLUME_NORM)
#define VOL_MP2PA(v) ((v) * PA_VOLUME_NORM / 100)
@@ -308,7 +306,7 @@ static int pa_init_boilerplate(struct ao *ao)
locked = true;
if (!(priv->context = pa_context_new(pa_threaded_mainloop_get_api(
- priv->mainloop), PULSE_CLIENT_NAME)))
+ priv->mainloop), ao->client_name)))
{
MP_ERR(ao, "Failed to allocate context\n");
goto fail;
@@ -396,8 +394,7 @@ static int init(struct ao *ao)
goto unlock_and_fail;
}
(void)pa_proplist_sets(proplist, PA_PROP_MEDIA_ROLE, "video");
- (void)pa_proplist_sets(proplist, PA_PROP_MEDIA_ICON_NAME,
- PULSE_CLIENT_NAME);
+ (void)pa_proplist_sets(proplist, PA_PROP_MEDIA_ICON_NAME, ao->client_name);
pa_format_info_set_rate(format, ao->samplerate);
pa_format_info_set_channels(format, ao->channels.num);
diff --git a/audio/out/internal.h b/audio/out/internal.h
index fd45a4a581..8ba789f603 100644
--- a/audio/out/internal.h
+++ b/audio/out/internal.h
@@ -49,6 +49,9 @@ struct ao {
// default device should be used, this is set to NULL.
char *device;
+ // Application name to report to the audio API.
+ char *client_name;
+
// Used during init: if init fails, redirect to this ao
char *redirect;